From e510256c875efe03b27aba92cb5c85faddcffbe7 Mon Sep 17 00:00:00 2001 From: khtsly Date: Wed, 11 Feb 2026 23:20:26 +0700 Subject: [PATCH] feat(deploy): test to upgrade dependencies & migrate to bun --- .github/workflows/deploy.yml | 30 +- aftman.toml | 2 +- bun.lock | 359 + docs/.vitepress/cache/deps/_metadata.json | 30 +- docs/.vitepress/cache/deps/chunk-3YS4HNIT.js | 11367 --- .../cache/deps/chunk-3YS4HNIT.js.map | 7 - docs/.vitepress/cache/deps/chunk-WFT6MZEP.js | 8965 -- .../cache/deps/chunk-WFT6MZEP.js.map | 7 - .../deps/vitepress___@vue_devtools-api.js | 4627 +- .../deps/vitepress___@vue_devtools-api.js.map | 8 +- .../cache/deps/vitepress___@vueuse_core.js | 28 +- ...ess___@vueuse_integrations_useFocusTrap.js | 573 +- ...__@vueuse_integrations_useFocusTrap.js.map | 6 +- .../cache/deps/vitepress___minisearch.js | 3331 +- .../cache/deps/vitepress___minisearch.js.map | 8 +- docs/.vitepress/cache/deps/vue.js | 26 +- docs/.vitepress/dist/404.html | 13 +- docs/.vitepress/dist/api/1.0/client.html | 58 +- docs/.vitepress/dist/api/1.0/ratelimit.html | 31 +- docs/.vitepress/dist/api/1.0/server.html | 81 +- docs/.vitepress/dist/api/1.0/warp.html | 23 +- .../dist/assets/api_1.0_client.md.FTim0Kz_.js | 21 - .../assets/api_1.0_client.md.FTim0Kz_.lean.js | 1 - .../assets/api_1.0_ratelimit.md.gPb2PQ91.js | 10 - .../api_1.0_ratelimit.md.gPb2PQ91.lean.js | 1 - .../dist/assets/api_1.0_server.md.w4zn1XZZ.js | 32 - .../assets/api_1.0_server.md.w4zn1XZZ.lean.js | 1 - .../dist/assets/api_1.0_warp.md.u63PLmMH.js | 3 - .../assets/api_1.0_warp.md.u63PLmMH.lean.js | 1 - docs/.vitepress/dist/assets/app.hWp2if6e.js | 7 - .../dist/assets/chunks/framework.BouBWMxc.js | 1 - .../dist/assets/chunks/theme.makJcAKq.js | 1 - .../dist/assets/guide_example.md.7eqi7edp.js | 59 - .../assets/guide_example.md.7eqi7edp.lean.js | 1 - .../guide_getting-started.md.MBXKETNI.js | 1 - .../guide_getting-started.md.MBXKETNI.lean.js | 1 - .../dist/assets/guide_index.md.xfhCFaBM.js | 1 - .../assets/guide_index.md.xfhCFaBM.lean.js | 1 - .../assets/guide_installation.md.fMU35fgi.js | 1 - .../guide_installation.md.fMU35fgi.lean.js | 1 - .../dist/assets/index.md.Wvz5TWej.js | 1 - .../dist/assets/index.md.Wvz5TWej.lean.js | 1 - .../inter-italic-cyrillic-ext.OVycGSDq.woff2 | Bin 28332 -> 0 bytes .../inter-italic-cyrillic.-nLMcIwj.woff2 | Bin 17824 -> 0 bytes .../inter-italic-greek-ext.hznxWNZO.woff2 | Bin 12188 -> 0 bytes .../assets/inter-italic-greek.PSfer2Kc.woff2 | Bin 23264 -> 0 bytes .../inter-italic-latin-ext.RnFly65-.woff2 | Bin 63552 -> 0 bytes .../assets/inter-italic-latin.27E69YJn.woff2 | Bin 46048 -> 0 bytes .../inter-italic-vietnamese.xzQHe1q1.woff2 | Bin 8784 -> 0 bytes .../inter-roman-cyrillic-ext.8T9wMG5w.woff2 | Bin 26600 -> 0 bytes .../inter-roman-cyrillic.jIZ9REo5.woff2 | Bin 16780 -> 0 bytes .../inter-roman-greek-ext.9JiNzaSO.woff2 | Bin 11808 -> 0 bytes .../assets/inter-roman-greek.Cb5wWeGA.woff2 | Bin 21776 -> 0 bytes .../inter-roman-latin-ext.GZWE-KO4.woff2 | Bin 59608 -> 0 bytes .../assets/inter-roman-latin.bvIUbFQP.woff2 | Bin 42464 -> 0 bytes .../inter-roman-vietnamese.paY3CzEB.woff2 | Bin 8492 -> 0 bytes .../.vitepress/dist/assets/style.vhD-8WCU.css | 1 - docs/.vitepress/dist/guide/example.html | 23 +- .../dist/guide/getting-started.html | 21 +- docs/.vitepress/dist/guide/index.html | 19 +- docs/.vitepress/dist/guide/installation.html | 21 +- docs/.vitepress/dist/hashmap.json | 2 +- docs/.vitepress/dist/header.png | Bin 16774 -> 0 bytes docs/.vitepress/dist/index.html | 19 +- node_modules/.bin/esbuild | 17 +- node_modules/.bin/nanoid | 17 +- node_modules/.bin/parser | 17 +- node_modules/.bin/rollup | 17 +- node_modules/.bin/vite | 17 +- node_modules/.bin/vitepress | 17 +- .../dist/esm/createAutocomplete.js | 66 +- .../dist/esm/getDefaultProps.js | 4 +- .../dist/esm/getPropGetters.js | 81 +- .../autocomplete-core/dist/esm/onInput.js | 20 +- .../autocomplete-core/dist/esm/onKeyDown.js | 7 +- .../autocomplete-core/dist/esm/resolve.d.ts | 3 +- .../dist/esm/stateReducer.js | 1 + .../dist/esm/types/index.d.ts | 12 +- .../dist/esm/utils/index.d.ts | 2 + .../autocomplete-core/dist/esm/utils/index.js | 4 +- .../dist/esm/utils/mapToAlgoliaResponse.d.ts | 3 +- .../dist/umd/index.development.js | 307 +- .../dist/umd/index.development.js.map | 2 +- .../dist/umd/index.production.js | 4 +- .../dist/umd/index.production.js.map | 2 +- .../@algolia/autocomplete-core/package.json | 8 +- .../dist/esm/createAlgoliaInsightsPlugin.d.ts | 12 +- .../dist/esm/createAlgoliaInsightsPlugin.js | 101 +- .../dist/esm/createClickedEvent.js | 3 +- .../dist/esm/createSearchInsightsApi.d.ts | 25 +- .../dist/esm/createSearchInsightsApi.js | 9 + .../esm/types/AutocompleteInsightsApi.d.ts | 1 + .../dist/esm/types/InsightsClient.d.ts | 5 +- .../dist/umd/index.development.js | 115 +- .../dist/umd/index.development.js.map | 2 +- .../dist/umd/index.production.js | 4 +- .../dist/umd/index.production.js.map | 2 +- .../package.json | 4 +- .../esm/highlight/ParseAlgoliaHitParams.d.ts | 2 +- .../dist/esm/search/fetchAlgoliaResults.d.ts | 3 +- .../dist/esm/utils/getAppIdAndApiKey.d.ts | 3 +- .../dist/esm/utils/getAppIdAndApiKey.js | 9 +- .../dist/umd/index.development.js | 13 +- .../dist/umd/index.development.js.map | 2 +- .../dist/umd/index.production.js | 4 +- .../dist/umd/index.production.js.map | 2 +- .../autocomplete-preset-algolia/package.json | 4 +- .../dist/esm/core/AutocompleteOptions.d.ts | 17 + .../esm/core/AutocompletePropGetters.d.ts | 9 +- .../dist/esm/core/AutocompleteSource.d.ts | 5 +- .../dist/esm/getAttributeValueByPath.d.ts | 2 +- .../autocomplete-shared/dist/esm/index.d.ts | 1 + .../autocomplete-shared/dist/esm/index.js | 1 + .../dist/esm/js/AutocompleteTranslations.d.ts | 1 + .../dist/esm/js/HighlightHitParams.d.ts | 2 +- .../esm/preset-algolia/algoliasearch.d.ts | 8 +- .../esm/preset-algolia/createRequester.d.ts | 3 +- .../autocomplete-shared/dist/esm/version.d.ts | 2 +- .../autocomplete-shared/dist/esm/version.js | 2 +- .../@algolia/autocomplete-shared/package.json | 2 +- .../dist/client-analytics.cjs.js | 80 - .../dist/client-analytics.d.ts | 251 - .../dist/client-analytics.esm.js | 71 - .../@algolia/client-analytics/index.js | 3 +- .../@algolia/client-analytics/package.json | 73 +- .../client-common/dist/client-common.cjs.js | 101 - .../client-common/dist/client-common.d.ts | 102 - .../client-common/dist/client-common.esm.js | 89 - node_modules/@algolia/client-common/index.js | 3 +- .../@algolia/client-common/package.json | 53 +- .../dist/client-personalization.cjs.js | 49 - .../dist/client-personalization.d.ts | 93 - .../dist/client-personalization.esm.js | 43 - .../@algolia/client-personalization/index.js | 3 +- .../client-personalization/package.json | 72 +- .../client-search/dist/client-search.cjs.js | 1380 - .../client-search/dist/client-search.d.ts | 2542 - .../client-search/dist/client-search.esm.js | 1287 - node_modules/@algolia/client-search/index.js | 3 +- .../@algolia/client-search/package.json | 72 +- .../dist/requester-browser-xhr.cjs.js | 61 - .../dist/requester-browser-xhr.d.ts | 5 - .../dist/requester-browser-xhr.esm.js | 57 - .../@algolia/requester-browser-xhr/index.js | 3 +- .../requester-browser-xhr/package.json | 51 +- .../dist/requester-node-http.cjs.js | 87 - .../dist/requester-node-http.d.ts | 16 - .../dist/requester-node-http.esm.js | 85 - .../@algolia/requester-node-http/index.js | 3 +- .../@algolia/requester-node-http/package.json | 53 +- .../@babel/parser/bin/babel-parser.js | 2 +- node_modules/@babel/parser/index.cjs | 5 - node_modules/@babel/parser/lib/index.js | 9504 +- node_modules/@babel/parser/lib/index.js.map | 2 +- node_modules/@babel/parser/package.json | 16 +- .../@babel/parser/typings/babel-parser.d.ts | 389 +- .../@docsearch/css/dist/_variables.css | 4 +- node_modules/@docsearch/css/dist/button.css | 4 +- node_modules/@docsearch/css/dist/modal.css | 4 +- node_modules/@docsearch/css/dist/style.css | 4 +- node_modules/@docsearch/css/package.json | 8 +- node_modules/@docsearch/js/README.md | 2 +- .../@docsearch/js/dist/esm/docsearch.d.ts | 7 - .../@docsearch/js/dist/esm/index.d.ts | 10 +- node_modules/@docsearch/js/dist/esm/index.js | 4 +- .../@docsearch/js/dist/esm/index.js.map | 2 +- node_modules/@docsearch/js/dist/umd/index.js | 4 +- .../@docsearch/js/dist/umd/index.js.map | 2 +- node_modules/@docsearch/js/package.json | 22 +- node_modules/@docsearch/react/README.md | 2 +- node_modules/@docsearch/react/button.js | 2 +- .../react/dist/esm/AlgoliaLogo.d.ts | 8 - .../@docsearch/react/dist/esm/AlgoliaLogo.js | 54 - .../@docsearch/react/dist/esm/DocSearch.d.ts | 36 - .../@docsearch/react/dist/esm/DocSearch.js | 62 - .../react/dist/esm/DocSearchButton.d.ts | 9 - .../react/dist/esm/DocSearchButton.js | 68 - .../react/dist/esm/DocSearchModal.d.ts | 14 - .../react/dist/esm/DocSearchModal.js | 418 - .../react/dist/esm/ErrorScreen.d.ts | 9 - .../@docsearch/react/dist/esm/ErrorScreen.js | 19 - .../@docsearch/react/dist/esm/Footer.d.ts | 15 - .../@docsearch/react/dist/esm/Footer.js | 77 - .../@docsearch/react/dist/esm/Hit.d.ts | 8 - node_modules/@docsearch/react/dist/esm/Hit.js | 8 - .../react/dist/esm/NoResultsScreen.d.ts | 13 - .../react/dist/esm/NoResultsScreen.js | 67 - .../@docsearch/react/dist/esm/Results.d.ts | 21 - .../@docsearch/react/dist/esm/Results.js | 123 - .../react/dist/esm/ResultsScreen.d.ts | 5 - .../react/dist/esm/ResultsScreen.js | 55 - .../react/dist/esm/ScreenState.d.ts | 27 - .../@docsearch/react/dist/esm/ScreenState.js | 49 - .../@docsearch/react/dist/esm/SearchBox.d.ts | 20 - .../@docsearch/react/dist/esm/SearchBox.js | 72 - .../@docsearch/react/dist/esm/Snippet.d.ts | 14 - .../@docsearch/react/dist/esm/Snippet.js | 35 - .../react/dist/esm/StartScreen.d.ts | 16 - .../@docsearch/react/dist/esm/StartScreen.js | 119 - .../react/dist/esm/__tests__/api.test.js | 461 - .../@docsearch/react/dist/esm/constants.d.ts | 1 - .../@docsearch/react/dist/esm/constants.js | 1 - .../react/dist/esm/icons/ControlKeyIcon.d.ts | 1 - .../react/dist/esm/icons/ControlKeyIcon.js | 14 - .../react/dist/esm/icons/ErrorIcon.d.ts | 1 - .../react/dist/esm/icons/ErrorIcon.js | 15 - .../dist/esm/icons/GoToExternalIcon.d.ts | 1 - .../react/dist/esm/icons/GoToExternalIcon.js | 11 - .../react/dist/esm/icons/LoadingIcon.d.ts | 1 - .../react/dist/esm/icons/LoadingIcon.js | 28 - .../react/dist/esm/icons/NoResultsIcon.d.ts | 1 - .../react/dist/esm/icons/NoResultsIcon.js | 15 - .../react/dist/esm/icons/RecentIcon.d.ts | 1 - .../react/dist/esm/icons/RecentIcon.js | 18 - .../react/dist/esm/icons/ResetIcon.d.ts | 1 - .../react/dist/esm/icons/ResetIcon.js | 15 - .../react/dist/esm/icons/SearchIcon.d.ts | 1 - .../react/dist/esm/icons/SearchIcon.js | 16 - .../react/dist/esm/icons/SelectIcon.d.ts | 1 - .../react/dist/esm/icons/SelectIcon.js | 19 - .../react/dist/esm/icons/SourceIcon.d.ts | 3 - .../react/dist/esm/icons/SourceIcon.js | 57 - .../react/dist/esm/icons/StarIcon.d.ts | 1 - .../react/dist/esm/icons/StarIcon.js | 14 - .../react/dist/esm/icons/index.d.ts | 10 - .../@docsearch/react/dist/esm/icons/index.js | 10 - .../@docsearch/react/dist/esm/index.d.ts | 213 +- .../@docsearch/react/dist/esm/index.js | 6 +- .../react/dist/esm/stored-searches.d.ts | 12 - .../react/dist/esm/stored-searches.js | 75 - .../react/dist/esm/types/DocSearchHit.d.ts | 75 - .../react/dist/esm/types/DocSearchHit.js | 1 - .../react/dist/esm/types/DocSearchState.d.ts | 10 - .../react/dist/esm/types/DocSearchState.js | 1 - .../dist/esm/types/InternalDocSearchHit.d.ts | 4 - .../dist/esm/types/InternalDocSearchHit.js | 1 - .../dist/esm/types/StoredDocSearchHit.d.ts | 2 - .../dist/esm/types/StoredDocSearchHit.js | 1 - .../react/dist/esm/types/index.d.ts | 4 - .../@docsearch/react/dist/esm/types/index.js | 4 - .../dist/esm/useDocSearchKeyboardEvents.d.ts | 9 - .../dist/esm/useDocSearchKeyboardEvents.js | 55 - .../react/dist/esm/useSearchClient.d.ts | 2 - .../react/dist/esm/useSearchClient.js | 20 - .../react/dist/esm/useTouchEvents.d.ts | 9 - .../react/dist/esm/useTouchEvents.js | 27 - .../react/dist/esm/useTrapFocus.d.ts | 5 - .../@docsearch/react/dist/esm/useTrapFocus.js | 34 - .../react/dist/esm/utils/groupBy.d.ts | 1 - .../react/dist/esm/utils/groupBy.js | 17 - .../react/dist/esm/utils/identity.d.ts | 1 - .../react/dist/esm/utils/identity.js | 3 - .../react/dist/esm/utils/index.d.ts | 5 - .../@docsearch/react/dist/esm/utils/index.js | 5 - .../react/dist/esm/utils/isModifierEvent.d.ts | 5 - .../react/dist/esm/utils/isModifierEvent.js | 8 - .../@docsearch/react/dist/esm/utils/noop.d.ts | 1 - .../@docsearch/react/dist/esm/utils/noop.js | 1 - .../dist/esm/utils/removeHighlightTags.d.ts | 2 - .../dist/esm/utils/removeHighlightTags.js | 16 - .../@docsearch/react/dist/esm/version.d.ts | 1 - .../@docsearch/react/dist/esm/version.js | 1 - .../@docsearch/react/dist/umd/index.js | 4 +- .../@docsearch/react/dist/umd/index.js.map | 2 +- node_modules/@docsearch/react/modal.js | 2 +- node_modules/@docsearch/react/package.json | 31 +- .../@jridgewell/sourcemap-codec/LICENSE | 8 +- .../@jridgewell/sourcemap-codec/README.md | 224 +- .../sourcemap-codec/dist/sourcemap-codec.mjs | 573 +- .../dist/sourcemap-codec.mjs.map | 7 +- .../dist/sourcemap-codec.umd.js | 615 +- .../dist/sourcemap-codec.umd.js.map | 7 +- .../dist/types/sourcemap-codec.d.ts | 6 - .../@jridgewell/sourcemap-codec/package.json | 81 +- node_modules/@types/estree/README.md | 30 +- node_modules/@types/estree/index.d.ts | 23 +- node_modules/@types/estree/package.json | 7 +- node_modules/@types/linkify-it/README.md | 94 +- node_modules/@types/linkify-it/index.d.ts | 59 +- node_modules/@types/linkify-it/package.json | 17 +- node_modules/@types/markdown-it/README.md | 30 +- node_modules/@types/markdown-it/index.d.ts | 4 +- .../markdown-it/lib/common/entities.d.ts | 7 - .../markdown-it/lib/common/html_blocks.d.ts | 3 - .../markdown-it/lib/common/html_re.d.ts | 8 - .../@types/markdown-it/lib/common/utils.d.ts | 70 - .../@types/markdown-it/lib/helpers/index.d.ts | 13 - .../lib/helpers/parse_link_destination.d.ts | 12 - .../lib/helpers/parse_link_label.d.ts | 5 - .../lib/helpers/parse_link_title.d.ts | 5 - .../@types/markdown-it/lib/index.d.ts | 408 - .../@types/markdown-it/lib/parser_block.d.ts | 29 - .../@types/markdown-it/lib/parser_core.d.ts | 19 - .../@types/markdown-it/lib/parser_inline.d.ts | 42 - .../@types/markdown-it/lib/renderer.d.ts | 96 - .../@types/markdown-it/lib/ruler.d.ts | 167 - .../lib/rules_block/state_block.d.ts | 134 - .../lib/rules_core/state_core.d.ts | 20 - .../lib/rules_inline/state_inline.d.ts | 78 - .../@types/markdown-it/lib/token.d.ts | 110 - node_modules/@types/markdown-it/package.json | 21 +- node_modules/@types/mdurl/README.md | 30 +- node_modules/@types/mdurl/decode.d.ts | 7 - node_modules/@types/mdurl/encode.d.ts | 7 - node_modules/@types/mdurl/format.d.ts | 5 - node_modules/@types/mdurl/index.d.ts | 18 +- node_modules/@types/mdurl/package.json | 17 +- node_modules/@types/mdurl/parse.d.ts | 5 - node_modules/@types/web-bluetooth/README.md | 30 +- node_modules/@types/web-bluetooth/index.d.ts | 118 +- .../@types/web-bluetooth/package.json | 12 +- node_modules/@vitejs/plugin-vue/README.md | 122 +- .../@vitejs/plugin-vue/dist/index.cjs | 987 +- .../@vitejs/plugin-vue/dist/index.d.cts | 77 +- .../@vitejs/plugin-vue/dist/index.d.mts | 73 +- .../@vitejs/plugin-vue/dist/index.d.ts | 77 +- .../@vitejs/plugin-vue/dist/index.mjs | 986 +- node_modules/@vitejs/plugin-vue/package.json | 19 +- .../compiler-core/dist/compiler-core.cjs.js | 1066 +- .../dist/compiler-core.cjs.prod.js | 1045 +- .../compiler-core/dist/compiler-core.d.ts | 133 +- .../dist/compiler-core.esm-bundler.js | 882 +- node_modules/@vue/compiler-core/package.json | 12 +- node_modules/@vue/compiler-dom/README.md | 2 +- .../compiler-dom/dist/compiler-dom.cjs.js | 381 +- .../dist/compiler-dom.cjs.prod.js | 196 +- .../@vue/compiler-dom/dist/compiler-dom.d.ts | 24 +- .../dist/compiler-dom.esm-browser.js | 1234 +- .../dist/compiler-dom.esm-browser.prod.js | 14 +- .../dist/compiler-dom.esm-bundler.js | 322 +- .../compiler-dom/dist/compiler-dom.global.js | 1241 +- .../dist/compiler-dom.global.prod.js | 14 +- node_modules/@vue/compiler-dom/package.json | 6 +- node_modules/@vue/compiler-sfc/README.md | 1 - .../compiler-sfc/dist/compiler-sfc.cjs.js | 29514 +++--- .../@vue/compiler-sfc/dist/compiler-sfc.d.ts | 81 +- .../dist/compiler-sfc.esm-browser.js | 77498 ++++++++-------- node_modules/@vue/compiler-sfc/package.json | 34 +- node_modules/@vue/compiler-ssr/README.md | 2 +- .../compiler-ssr/dist/compiler-ssr.cjs.js | 180 +- node_modules/@vue/compiler-ssr/package.json | 6 +- .../@vue/devtools-api/lib/cjs/api/api.js | 2 - .../@vue/devtools-api/lib/cjs/api/app.js | 2 - .../devtools-api/lib/cjs/api/component.js | 2 - .../@vue/devtools-api/lib/cjs/api/context.js | 2 - .../@vue/devtools-api/lib/cjs/api/hooks.js | 2 - .../@vue/devtools-api/lib/cjs/api/index.js | 22 - .../@vue/devtools-api/lib/cjs/api/util.js | 2 - .../@vue/devtools-api/lib/cjs/const.js | 5 - node_modules/@vue/devtools-api/lib/cjs/env.js | 17 - .../@vue/devtools-api/lib/cjs/index.js | 44 - .../@vue/devtools-api/lib/cjs/plugin.js | 2 - .../@vue/devtools-api/lib/cjs/proxy.js | 111 - .../@vue/devtools-api/lib/cjs/time.js | 28 - .../@vue/devtools-api/lib/esm/api/api.d.ts | 108 - .../@vue/devtools-api/lib/esm/api/api.js | 1 - .../@vue/devtools-api/lib/esm/api/app.d.ts | 1 - .../@vue/devtools-api/lib/esm/api/app.js | 1 - .../devtools-api/lib/esm/api/component.d.ts | 78 - .../devtools-api/lib/esm/api/component.js | 1 - .../devtools-api/lib/esm/api/context.d.ts | 5 - .../@vue/devtools-api/lib/esm/api/context.js | 1 - .../@vue/devtools-api/lib/esm/api/hooks.d.ts | 180 - .../@vue/devtools-api/lib/esm/api/hooks.js | 1 - .../@vue/devtools-api/lib/esm/api/index.d.ts | 6 - .../@vue/devtools-api/lib/esm/api/index.js | 6 - .../@vue/devtools-api/lib/esm/api/util.d.ts | 4 - .../@vue/devtools-api/lib/esm/api/util.js | 1 - .../@vue/devtools-api/lib/esm/const.d.ts | 2 - .../@vue/devtools-api/lib/esm/const.js | 2 - .../@vue/devtools-api/lib/esm/env.d.ts | 15 - node_modules/@vue/devtools-api/lib/esm/env.js | 12 - .../@vue/devtools-api/lib/esm/index.d.ts | 18 - .../@vue/devtools-api/lib/esm/index.js | 26 - .../@vue/devtools-api/lib/esm/plugin.d.ts | 47 - .../@vue/devtools-api/lib/esm/plugin.js | 1 - .../@vue/devtools-api/lib/esm/proxy.d.ts | 20 - .../@vue/devtools-api/lib/esm/proxy.js | 107 - .../@vue/devtools-api/lib/esm/time.d.ts | 2 - .../@vue/devtools-api/lib/esm/time.js | 23 - node_modules/@vue/devtools-api/package.json | 49 +- .../@vue/reactivity/dist/reactivity.cjs.js | 1999 +- .../reactivity/dist/reactivity.cjs.prod.js | 1858 +- .../@vue/reactivity/dist/reactivity.d.ts | 529 +- .../reactivity/dist/reactivity.esm-browser.js | 2009 +- .../dist/reactivity.esm-browser.prod.js | 5 +- .../reactivity/dist/reactivity.esm-bundler.js | 1997 +- .../@vue/reactivity/dist/reactivity.global.js | 2023 +- .../reactivity/dist/reactivity.global.prod.js | 5 +- node_modules/@vue/reactivity/package.json | 4 +- node_modules/@vue/runtime-core/README.md | 2 +- .../runtime-core/dist/runtime-core.cjs.js | 6230 +- .../dist/runtime-core.cjs.prod.js | 5107 +- .../@vue/runtime-core/dist/runtime-core.d.ts | 1179 +- .../dist/runtime-core.esm-bundler.js | 6284 +- node_modules/@vue/runtime-core/package.json | 6 +- node_modules/@vue/runtime-dom/README.md | 4 +- .../@vue/runtime-dom/dist/runtime-dom.cjs.js | 758 +- .../runtime-dom/dist/runtime-dom.cjs.prod.js | 696 +- .../@vue/runtime-dom/dist/runtime-dom.d.ts | 1555 +- .../dist/runtime-dom.esm-browser.js | 9092 +- .../dist/runtime-dom.esm-browser.prod.js | 12 +- .../dist/runtime-dom.esm-bundler.js | 782 +- .../runtime-dom/dist/runtime-dom.global.js | 8967 +- .../dist/runtime-dom.global.prod.js | 12 +- node_modules/@vue/runtime-dom/package.json | 12 +- node_modules/@vue/server-renderer/README.md | 16 +- .../dist/server-renderer.cjs.js | 257 +- .../dist/server-renderer.cjs.prod.js | 172 +- .../server-renderer/dist/server-renderer.d.ts | 12 +- .../dist/server-renderer.esm-browser.js | 4803 +- .../dist/server-renderer.esm-browser.prod.js | 5 +- .../dist/server-renderer.esm-bundler.js | 272 +- .../@vue/server-renderer/package.json | 8 +- node_modules/@vue/shared/dist/shared.cjs.js | 123 +- .../@vue/shared/dist/shared.cjs.prod.js | 115 +- node_modules/@vue/shared/dist/shared.d.ts | 59 +- .../@vue/shared/dist/shared.esm-bundler.js | 120 +- node_modules/@vue/shared/package.json | 2 +- node_modules/@vueuse/core/README.md | 124 - node_modules/@vueuse/core/index.cjs | 3348 +- node_modules/@vueuse/core/index.d.cts | 1991 +- node_modules/@vueuse/core/index.d.mts | 1991 +- node_modules/@vueuse/core/index.d.ts | 1991 +- node_modules/@vueuse/core/index.iife.js | 3466 +- node_modules/@vueuse/core/index.iife.min.js | 2 +- node_modules/@vueuse/core/index.mjs | 2658 +- .../core/node_modules/.bin/vue-demi-fix | 16 - .../core/node_modules/.bin/vue-demi-fix.cmd | 17 - .../core/node_modules/.bin/vue-demi-fix.ps1 | 28 - .../core/node_modules/.bin/vue-demi-switch | 16 - .../node_modules/.bin/vue-demi-switch.cmd | 17 - .../node_modules/.bin/vue-demi-switch.ps1 | 28 - .../core/node_modules/vue-demi/LICENSE | 21 - .../core/node_modules/vue-demi/README.md | 228 - .../node_modules/vue-demi/bin/vue-demi-fix.js | 3 - .../vue-demi/bin/vue-demi-switch.js | 3 - .../core/node_modules/vue-demi/lib/index.cjs | 29 - .../core/node_modules/vue-demi/lib/index.d.ts | 22 - .../node_modules/vue-demi/lib/index.iife.js | 115 - .../core/node_modules/vue-demi/lib/index.mjs | 34 - .../node_modules/vue-demi/lib/v2.7/index.cjs | 58 - .../node_modules/vue-demi/lib/v2.7/index.d.ts | 38 - .../node_modules/vue-demi/lib/v2.7/index.mjs | 80 - .../node_modules/vue-demi/lib/v2/index.cjs | 32 - .../node_modules/vue-demi/lib/v2/index.d.ts | 33 - .../node_modules/vue-demi/lib/v2/index.mjs | 49 - .../node_modules/vue-demi/lib/v3/index.cjs | 29 - .../node_modules/vue-demi/lib/v3/index.d.ts | 22 - .../node_modules/vue-demi/lib/v3/index.mjs | 34 - .../core/node_modules/vue-demi/package.json | 47 - .../vue-demi/scripts/postinstall.js | 19 - .../vue-demi/scripts/switch-cli.js | 18 - .../node_modules/vue-demi/scripts/utils.js | 62 - node_modules/@vueuse/core/package.json | 26 +- node_modules/@vueuse/integrations/README.md | 4 +- node_modules/@vueuse/integrations/index.cjs | 231 +- node_modules/@vueuse/integrations/index.d.cts | 156 +- node_modules/@vueuse/integrations/index.d.mts | 156 +- node_modules/@vueuse/integrations/index.d.ts | 156 +- .../@vueuse/integrations/index.iife.js | 341 +- .../@vueuse/integrations/index.iife.min.js | 2 +- node_modules/@vueuse/integrations/index.mjs | 142 +- .../node_modules/.bin/vue-demi-fix | 16 - .../node_modules/.bin/vue-demi-fix.cmd | 17 - .../node_modules/.bin/vue-demi-fix.ps1 | 28 - .../node_modules/.bin/vue-demi-switch | 16 - .../node_modules/.bin/vue-demi-switch.cmd | 17 - .../node_modules/.bin/vue-demi-switch.ps1 | 28 - .../node_modules/vue-demi/LICENSE | 21 - .../node_modules/vue-demi/README.md | 228 - .../node_modules/vue-demi/bin/vue-demi-fix.js | 3 - .../vue-demi/bin/vue-demi-switch.js | 3 - .../node_modules/vue-demi/lib/index.cjs | 29 - .../node_modules/vue-demi/lib/index.d.ts | 22 - .../node_modules/vue-demi/lib/index.iife.js | 115 - .../node_modules/vue-demi/lib/index.mjs | 34 - .../node_modules/vue-demi/lib/v2.7/index.cjs | 58 - .../node_modules/vue-demi/lib/v2.7/index.d.ts | 38 - .../node_modules/vue-demi/lib/v2.7/index.mjs | 80 - .../node_modules/vue-demi/lib/v2/index.cjs | 32 - .../node_modules/vue-demi/lib/v2/index.d.ts | 33 - .../node_modules/vue-demi/lib/v2/index.mjs | 49 - .../node_modules/vue-demi/lib/v3/index.cjs | 29 - .../node_modules/vue-demi/lib/v3/index.d.ts | 22 - .../node_modules/vue-demi/lib/v3/index.mjs | 34 - .../node_modules/vue-demi/package.json | 47 - .../vue-demi/scripts/postinstall.js | 19 - .../vue-demi/scripts/switch-cli.js | 18 - .../node_modules/vue-demi/scripts/utils.js | 62 - .../@vueuse/integrations/package.json | 68 +- .../integrations/useAsyncValidator.cjs | 16 +- .../integrations/useAsyncValidator.d.cts | 13 +- .../integrations/useAsyncValidator.d.mts | 13 +- .../integrations/useAsyncValidator.d.ts | 13 +- .../integrations/useAsyncValidator.iife.js | 134 +- .../useAsyncValidator.iife.min.js | 2 +- .../integrations/useAsyncValidator.mjs | 8 +- .../useAsyncValidator/component.cjs | 20 +- .../useAsyncValidator/component.d.cts | 12 +- .../useAsyncValidator/component.d.mts | 12 +- .../useAsyncValidator/component.d.ts | 12 +- .../useAsyncValidator/component.mjs | 10 +- .../@vueuse/integrations/useAxios.cjs | 34 +- .../@vueuse/integrations/useAxios.d.cts | 40 +- .../@vueuse/integrations/useAxios.d.mts | 40 +- .../@vueuse/integrations/useAxios.d.ts | 40 +- .../@vueuse/integrations/useAxios.iife.js | 152 +- .../@vueuse/integrations/useAxios.iife.min.js | 2 +- .../@vueuse/integrations/useAxios.mjs | 28 +- .../@vueuse/integrations/useChangeCase.cjs | 55 +- .../@vueuse/integrations/useChangeCase.d.cts | 32 +- .../@vueuse/integrations/useChangeCase.d.mts | 32 +- .../@vueuse/integrations/useChangeCase.d.ts | 32 +- .../integrations/useChangeCase.iife.js | 170 +- .../integrations/useChangeCase.iife.min.js | 2 +- .../@vueuse/integrations/useChangeCase.mjs | 34 +- .../@vueuse/integrations/useCookies.cjs | 7 +- .../@vueuse/integrations/useCookies.d.cts | 4 +- .../@vueuse/integrations/useCookies.d.mts | 4 +- .../@vueuse/integrations/useCookies.d.ts | 4 +- .../@vueuse/integrations/useCookies.iife.js | 125 +- .../integrations/useCookies.iife.min.js | 2 +- .../@vueuse/integrations/useCookies.mjs | 7 +- .../@vueuse/integrations/useDrauu.cjs | 20 +- .../@vueuse/integrations/useDrauu.d.cts | 8 +- .../@vueuse/integrations/useDrauu.d.mts | 8 +- .../@vueuse/integrations/useDrauu.d.ts | 8 +- .../@vueuse/integrations/useDrauu.iife.js | 136 +- .../@vueuse/integrations/useDrauu.iife.min.js | 2 +- .../@vueuse/integrations/useDrauu.mjs | 12 +- .../@vueuse/integrations/useFocusTrap.cjs | 24 +- .../@vueuse/integrations/useFocusTrap.d.cts | 10 +- .../@vueuse/integrations/useFocusTrap.d.mts | 10 +- .../@vueuse/integrations/useFocusTrap.d.ts | 10 +- .../@vueuse/integrations/useFocusTrap.iife.js | 141 +- .../integrations/useFocusTrap.iife.min.js | 2 +- .../@vueuse/integrations/useFocusTrap.mjs | 24 +- .../integrations/useFocusTrap/component.cjs | 14 +- .../integrations/useFocusTrap/component.d.cts | 4 +- .../integrations/useFocusTrap/component.d.mts | 4 +- .../integrations/useFocusTrap/component.d.ts | 4 +- .../integrations/useFocusTrap/component.mjs | 6 +- node_modules/@vueuse/integrations/useFuse.cjs | 27 +- .../@vueuse/integrations/useFuse.d.cts | 27 +- .../@vueuse/integrations/useFuse.d.mts | 27 +- .../@vueuse/integrations/useFuse.d.ts | 27 +- .../@vueuse/integrations/useFuse.iife.js | 144 +- .../@vueuse/integrations/useFuse.iife.min.js | 2 +- node_modules/@vueuse/integrations/useFuse.mjs | 3 +- .../@vueuse/integrations/useIDBKeyval.cjs | 16 +- .../@vueuse/integrations/useIDBKeyval.d.cts | 8 +- .../@vueuse/integrations/useIDBKeyval.d.mts | 8 +- .../@vueuse/integrations/useIDBKeyval.d.ts | 8 +- .../@vueuse/integrations/useIDBKeyval.iife.js | 133 +- .../integrations/useIDBKeyval.iife.min.js | 2 +- .../@vueuse/integrations/useIDBKeyval.mjs | 12 +- node_modules/@vueuse/integrations/useJwt.cjs | 11 +- .../@vueuse/integrations/useJwt.d.cts | 3 +- .../@vueuse/integrations/useJwt.d.mts | 3 +- node_modules/@vueuse/integrations/useJwt.d.ts | 3 +- .../@vueuse/integrations/useJwt.iife.js | 126 +- .../@vueuse/integrations/useJwt.iife.min.js | 2 +- node_modules/@vueuse/integrations/useJwt.mjs | 7 +- .../@vueuse/integrations/useNProgress.cjs | 10 +- .../@vueuse/integrations/useNProgress.d.cts | 10 +- .../@vueuse/integrations/useNProgress.d.mts | 10 +- .../@vueuse/integrations/useNProgress.d.ts | 10 +- .../@vueuse/integrations/useNProgress.iife.js | 126 +- .../integrations/useNProgress.iife.min.js | 2 +- .../@vueuse/integrations/useNProgress.mjs | 6 +- .../@vueuse/integrations/useQRCode.cjs | 6 +- .../@vueuse/integrations/useQRCode.d.cts | 6 +- .../@vueuse/integrations/useQRCode.d.mts | 6 +- .../@vueuse/integrations/useQRCode.d.ts | 6 +- .../@vueuse/integrations/useQRCode.iife.js | 124 +- .../integrations/useQRCode.iife.min.js | 2 +- .../@vueuse/integrations/useQRCode.mjs | 4 +- .../@vueuse/integrations/useSortable.cjs | 32 +- .../@vueuse/integrations/useSortable.d.cts | 24 +- .../@vueuse/integrations/useSortable.d.mts | 24 +- .../@vueuse/integrations/useSortable.d.ts | 24 +- .../@vueuse/integrations/useSortable.iife.js | 150 +- .../integrations/useSortable.iife.min.js | 2 +- .../@vueuse/integrations/useSortable.mjs | 28 +- .../integrations/useSortable/component.cjs | 43 +- .../integrations/useSortable/component.d.cts | 14 +- .../integrations/useSortable/component.d.mts | 14 +- .../integrations/useSortable/component.d.ts | 14 +- .../integrations/useSortable/component.mjs | 33 +- node_modules/@vueuse/metadata/index.cjs | 590 +- node_modules/@vueuse/metadata/index.d.cts | 10 +- node_modules/@vueuse/metadata/index.d.mts | 10 +- node_modules/@vueuse/metadata/index.d.ts | 10 +- node_modules/@vueuse/metadata/index.json | 590 +- node_modules/@vueuse/metadata/index.mjs | 590 +- node_modules/@vueuse/metadata/package.json | 17 +- node_modules/@vueuse/shared/index.cjs | 441 +- node_modules/@vueuse/shared/index.d.cts | 260 +- node_modules/@vueuse/shared/index.d.mts | 260 +- node_modules/@vueuse/shared/index.d.ts | 260 +- node_modules/@vueuse/shared/index.iife.js | 559 +- node_modules/@vueuse/shared/index.iife.min.js | 2 +- node_modules/@vueuse/shared/index.mjs | 305 +- .../shared/node_modules/.bin/vue-demi-fix | 16 - .../shared/node_modules/.bin/vue-demi-fix.cmd | 17 - .../shared/node_modules/.bin/vue-demi-fix.ps1 | 28 - .../shared/node_modules/.bin/vue-demi-switch | 16 - .../node_modules/.bin/vue-demi-switch.cmd | 17 - .../node_modules/.bin/vue-demi-switch.ps1 | 28 - .../shared/node_modules/vue-demi/LICENSE | 21 - .../shared/node_modules/vue-demi/README.md | 228 - .../node_modules/vue-demi/bin/vue-demi-fix.js | 3 - .../vue-demi/bin/vue-demi-switch.js | 3 - .../node_modules/vue-demi/lib/index.cjs | 29 - .../node_modules/vue-demi/lib/index.d.ts | 22 - .../node_modules/vue-demi/lib/index.iife.js | 115 - .../node_modules/vue-demi/lib/index.mjs | 34 - .../node_modules/vue-demi/lib/v2.7/index.cjs | 58 - .../node_modules/vue-demi/lib/v2.7/index.d.ts | 38 - .../node_modules/vue-demi/lib/v2.7/index.mjs | 80 - .../node_modules/vue-demi/lib/v2/index.cjs | 32 - .../node_modules/vue-demi/lib/v2/index.d.ts | 33 - .../node_modules/vue-demi/lib/v2/index.mjs | 49 - .../node_modules/vue-demi/lib/v3/index.cjs | 29 - .../node_modules/vue-demi/lib/v3/index.d.ts | 22 - .../node_modules/vue-demi/lib/v3/index.mjs | 34 - .../shared/node_modules/vue-demi/package.json | 47 - .../vue-demi/scripts/postinstall.js | 19 - .../vue-demi/scripts/switch-cli.js | 18 - .../node_modules/vue-demi/scripts/utils.js | 62 - node_modules/@vueuse/shared/package.json | 20 +- node_modules/algoliasearch/README.md | 76 +- .../dist/algoliasearch-lite.d.ts | 49 - .../dist/algoliasearch-lite.esm.browser.js | 940 - .../dist/algoliasearch-lite.umd.js | 2 - .../algoliasearch/dist/algoliasearch.cjs.js | 156 - .../algoliasearch/dist/algoliasearch.d.ts | 247 - .../dist/algoliasearch.esm.browser.js | 2256 - .../algoliasearch/dist/algoliasearch.umd.js | 27 +- node_modules/algoliasearch/index.d.ts | 4 +- node_modules/algoliasearch/index.js | 16 +- node_modules/algoliasearch/lite.d.ts | 4 +- node_modules/algoliasearch/lite.js | 3 +- node_modules/algoliasearch/package.json | 118 +- node_modules/csstype/README.md | 24 +- node_modules/csstype/index.d.ts | 11484 ++- node_modules/csstype/index.js.flow | 1317 +- node_modules/csstype/package.json | 72 +- node_modules/entities/lib/decode.d.ts | 211 - node_modules/entities/lib/decode.d.ts.map | 1 - node_modules/entities/lib/decode.js | 536 - node_modules/entities/lib/decode.js.map | 1 - .../entities/lib/decode_codepoint.d.ts | 19 - .../entities/lib/decode_codepoint.d.ts.map | 1 - node_modules/entities/lib/decode_codepoint.js | 76 - .../entities/lib/decode_codepoint.js.map | 1 - node_modules/entities/lib/encode.d.ts | 22 - node_modules/entities/lib/encode.d.ts.map | 1 - node_modules/entities/lib/encode.js | 77 - node_modules/entities/lib/encode.js.map | 1 - node_modules/entities/lib/escape.d.ts | 43 - node_modules/entities/lib/escape.d.ts.map | 1 - node_modules/entities/lib/escape.js | 122 - node_modules/entities/lib/escape.js.map | 1 - node_modules/entities/lib/esm/decode.d.ts | 211 - node_modules/entities/lib/esm/decode.d.ts.map | 1 - node_modules/entities/lib/esm/decode.js | 496 - node_modules/entities/lib/esm/decode.js.map | 1 - .../entities/lib/esm/decode_codepoint.d.ts | 19 - .../lib/esm/decode_codepoint.d.ts.map | 1 - .../entities/lib/esm/decode_codepoint.js | 71 - .../entities/lib/esm/decode_codepoint.js.map | 1 - node_modules/entities/lib/esm/encode.d.ts | 22 - node_modules/entities/lib/esm/encode.d.ts.map | 1 - node_modules/entities/lib/esm/encode.js | 69 - node_modules/entities/lib/esm/encode.js.map | 1 - node_modules/entities/lib/esm/escape.d.ts | 43 - node_modules/entities/lib/esm/escape.d.ts.map | 1 - node_modules/entities/lib/esm/escape.js | 116 - node_modules/entities/lib/esm/escape.js.map | 1 - .../lib/esm/generated/decode-data-html.d.ts | 3 - .../esm/generated/decode-data-html.d.ts.map | 1 - .../lib/esm/generated/decode-data-html.js | 7 - .../lib/esm/generated/decode-data-html.js.map | 1 - .../lib/esm/generated/decode-data-xml.d.ts | 3 - .../esm/generated/decode-data-xml.d.ts.map | 1 - .../lib/esm/generated/decode-data-xml.js | 7 - .../lib/esm/generated/decode-data-xml.js.map | 1 - .../lib/esm/generated/encode-html.d.ts | 8 - .../lib/esm/generated/encode-html.d.ts.map | 1 - .../entities/lib/esm/generated/encode-html.js | 10 - .../lib/esm/generated/encode-html.js.map | 1 - node_modules/entities/lib/esm/index.d.ts | 96 - node_modules/entities/lib/esm/index.d.ts.map | 1 - node_modules/entities/lib/esm/index.js | 99 - node_modules/entities/lib/esm/index.js.map | 1 - node_modules/entities/lib/esm/package.json | 1 - .../lib/generated/decode-data-html.d.ts | 3 - .../lib/generated/decode-data-html.d.ts.map | 1 - .../lib/generated/decode-data-html.js | 9 - .../lib/generated/decode-data-html.js.map | 1 - .../lib/generated/decode-data-xml.d.ts | 3 - .../lib/generated/decode-data-xml.d.ts.map | 1 - .../entities/lib/generated/decode-data-xml.js | 9 - .../lib/generated/decode-data-xml.js.map | 1 - .../entities/lib/generated/encode-html.d.ts | 8 - .../lib/generated/encode-html.d.ts.map | 1 - .../entities/lib/generated/encode-html.js | 12 - .../entities/lib/generated/encode-html.js.map | 1 - node_modules/entities/lib/index.d.ts | 96 - node_modules/entities/lib/index.d.ts.map | 1 - node_modules/entities/lib/index.js | 126 - node_modules/entities/lib/index.js.map | 1 - node_modules/entities/package.json | 170 +- node_modules/entities/readme.md | 79 +- node_modules/esbuild/bin/esbuild | 8 +- node_modules/esbuild/install.js | 9 +- node_modules/esbuild/lib/main.d.ts | 33 +- node_modules/esbuild/lib/main.js | 706 +- node_modules/esbuild/package.json | 53 +- node_modules/focus-trap/CHANGELOG.md | 65 +- node_modules/focus-trap/README.md | 323 +- .../focus-trap/dist/focus-trap.esm.js | 558 +- .../focus-trap/dist/focus-trap.esm.js.map | 2 +- .../focus-trap/dist/focus-trap.esm.min.js | 4 +- .../focus-trap/dist/focus-trap.esm.min.js.map | 2 +- node_modules/focus-trap/dist/focus-trap.js | 558 +- .../focus-trap/dist/focus-trap.js.map | 2 +- .../focus-trap/dist/focus-trap.min.js | 4 +- .../focus-trap/dist/focus-trap.min.js.map | 2 +- .../focus-trap/dist/focus-trap.umd.js | 558 +- .../focus-trap/dist/focus-trap.umd.js.map | 2 +- .../focus-trap/dist/focus-trap.umd.min.js | 4 +- .../focus-trap/dist/focus-trap.umd.min.js.map | 2 +- node_modules/focus-trap/index.d.ts | 42 +- node_modules/focus-trap/index.js | 434 +- node_modules/focus-trap/package.json | 83 +- node_modules/magic-string/README.md | 116 +- .../magic-string/dist/magic-string.cjs.d.ts | 475 +- .../magic-string/dist/magic-string.cjs.js | 192 +- .../magic-string/dist/magic-string.cjs.js.map | 2 +- .../magic-string/dist/magic-string.es.d.mts | 475 +- .../magic-string/dist/magic-string.es.mjs | 192 +- .../magic-string/dist/magic-string.es.mjs.map | 2 +- .../magic-string/dist/magic-string.umd.js | 354 +- .../magic-string/dist/magic-string.umd.js.map | 2 +- node_modules/magic-string/package.json | 65 +- node_modules/minisearch/CHANGELOG.md | 114 +- node_modules/minisearch/README.md | 19 +- .../minisearch/dist/cjs/SearchableMap.cjs | 534 +- .../minisearch/dist/cjs/SearchableMap.cjs.map | 2 +- node_modules/minisearch/dist/cjs/index.cjs | 2003 +- .../minisearch/dist/cjs/index.cjs.map | 2 +- .../minisearch/dist/es/SearchableMap.js | 534 +- .../minisearch/dist/es/SearchableMap.js.map | 2 +- node_modules/minisearch/dist/es/index.js | 2003 +- node_modules/minisearch/dist/es/index.js.map | 2 +- .../minisearch/dist/es5m/SearchableMap.js | 685 - .../minisearch/dist/es5m/SearchableMap.js.map | 1 - node_modules/minisearch/dist/es5m/index.js | 2526 - .../minisearch/dist/es5m/index.js.map | 1 - .../minisearch/dist/types/SearchableMap.d.ts | 253 - node_modules/minisearch/dist/types/index.d.ts | 1342 - .../minisearch/dist/umd/SearchableMap.js | 534 +- .../minisearch/dist/umd/SearchableMap.js.map | 2 +- node_modules/minisearch/dist/umd/index.js | 2003 +- node_modules/minisearch/dist/umd/index.js.map | 2 +- node_modules/minisearch/package.json | 12 +- .../minisearch/src/MiniSearch.test.js | 176 +- node_modules/minisearch/src/MiniSearch.ts | 323 +- .../src/SearchableMap/SearchableMap.ts | 14 +- .../src/SearchableMap/TreeIterator.ts | 2 +- .../src/SearchableMap/fuzzySearch.ts | 2 +- node_modules/nanoid/async/index.browser.cjs | 39 +- node_modules/nanoid/async/index.browser.js | 4 +- node_modules/nanoid/async/index.cjs | 40 +- node_modules/nanoid/async/index.js | 4 +- node_modules/nanoid/async/index.native.js | 4 +- node_modules/nanoid/bin/nanoid.cjs | 0 node_modules/nanoid/index.browser.cjs | 40 +- node_modules/nanoid/index.browser.js | 2 +- node_modules/nanoid/index.cjs | 44 +- node_modules/nanoid/index.js | 4 +- node_modules/nanoid/non-secure/index.cjs | 17 +- node_modules/nanoid/non-secure/index.js | 4 +- node_modules/nanoid/package.json | 5 +- node_modules/nanoid/url-alphabet/index.cjs | 4 + node_modules/picocolors/LICENSE | 2 +- node_modules/picocolors/package.json | 4 +- node_modules/picocolors/picocolors.browser.js | 2 +- node_modules/picocolors/picocolors.js | 111 +- node_modules/picocolors/types.ts | 30 - node_modules/postcss/README.md | 5 +- node_modules/postcss/lib/at-rule.d.ts | 47 +- node_modules/postcss/lib/comment.d.ts | 11 +- node_modules/postcss/lib/container.d.ts | 135 +- node_modules/postcss/lib/container.js | 44 +- .../postcss/lib/css-syntax-error.d.ts | 2 +- node_modules/postcss/lib/css-syntax-error.js | 61 +- node_modules/postcss/lib/declaration.d.ts | 31 +- node_modules/postcss/lib/declaration.js | 8 +- node_modules/postcss/lib/document.d.ts | 9 +- node_modules/postcss/lib/fromJSON.js | 6 +- node_modules/postcss/lib/input.d.ts | 69 +- node_modules/postcss/lib/input.js | 75 +- node_modules/postcss/lib/lazy-result.d.ts | 80 +- node_modules/postcss/lib/lazy-result.js | 74 +- node_modules/postcss/lib/list.d.ts | 7 +- node_modules/postcss/lib/map-generator.js | 24 +- node_modules/postcss/lib/no-work-result.d.ts | 10 +- node_modules/postcss/lib/no-work-result.js | 156 +- node_modules/postcss/lib/node.d.ts | 54 +- node_modules/postcss/lib/node.js | 128 +- node_modules/postcss/lib/parse.js | 2 +- node_modules/postcss/lib/parser.js | 17 +- node_modules/postcss/lib/postcss.d.mts | 69 +- node_modules/postcss/lib/postcss.d.ts | 33 +- node_modules/postcss/lib/postcss.js | 24 +- node_modules/postcss/lib/previous-map.js | 14 +- node_modules/postcss/lib/processor.d.ts | 2 +- node_modules/postcss/lib/processor.js | 6 +- node_modules/postcss/lib/result.d.ts | 21 +- node_modules/postcss/lib/result.js | 10 +- node_modules/postcss/lib/root.d.ts | 9 +- node_modules/postcss/lib/rule.d.ts | 43 +- node_modules/postcss/lib/rule.js | 12 +- node_modules/postcss/lib/stringifier.d.ts | 4 +- node_modules/postcss/lib/tokenize.js | 4 +- node_modules/postcss/package.json | 12 +- node_modules/rollup/LICENSE.md | 79 +- node_modules/rollup/README.md | 5 +- node_modules/rollup/dist/bin/rollup | 517 +- node_modules/rollup/dist/es/getLogFilter.js | 6 +- node_modules/rollup/dist/es/parseAst.js | 4 +- node_modules/rollup/dist/es/rollup.js | 5 +- .../rollup/dist/es/shared/node-entry.js | 20293 ++-- .../rollup/dist/es/shared/parseAst.js | 1599 +- node_modules/rollup/dist/es/shared/watch.js | 12673 ++- node_modules/rollup/dist/getLogFilter.js | 6 +- node_modules/rollup/dist/loadConfigFile.js | 7 +- node_modules/rollup/dist/native.js | 133 +- node_modules/rollup/dist/parseAst.js | 4 +- node_modules/rollup/dist/rollup.d.ts | 639 +- node_modules/rollup/dist/rollup.js | 35 +- .../rollup/dist/shared/fsevents-importer.js | 4 +- node_modules/rollup/dist/shared/index.js | 12654 ++- .../rollup/dist/shared/loadConfigFile.js | 78 +- node_modules/rollup/dist/shared/parseAst.js | 2345 +- node_modules/rollup/dist/shared/rollup.js | 20368 ++-- node_modules/rollup/dist/shared/watch-cli.js | 50 +- node_modules/rollup/dist/shared/watch.js | 23 +- node_modules/rollup/package.json | 292 +- node_modules/source-map-js/CHANGELOG.md | 320 - node_modules/source-map-js/README.md | 11 +- .../source-map-js/lib/source-map-consumer.js | 10 +- .../source-map-js/lib/source-map-generator.js | 41 +- node_modules/source-map-js/package.json | 2 +- node_modules/source-map-js/source-map.d.ts | 205 +- node_modules/tabbable/CHANGELOG.md | 14 + node_modules/tabbable/README.md | 14 +- node_modules/tabbable/dist/index.esm.js | 82 +- node_modules/tabbable/dist/index.esm.js.map | 2 +- node_modules/tabbable/dist/index.esm.min.js | 4 +- .../tabbable/dist/index.esm.min.js.map | 2 +- node_modules/tabbable/dist/index.js | 84 +- node_modules/tabbable/dist/index.js.map | 2 +- node_modules/tabbable/dist/index.min.js | 4 +- node_modules/tabbable/dist/index.min.js.map | 2 +- node_modules/tabbable/dist/index.umd.js | 84 +- node_modules/tabbable/dist/index.umd.js.map | 2 +- node_modules/tabbable/dist/index.umd.min.js | 4 +- .../tabbable/dist/index.umd.min.js.map | 2 +- node_modules/tabbable/index.d.ts | 16 +- node_modules/tabbable/package.json | 85 +- node_modules/tabbable/src/index.js | 77 +- node_modules/vite/LICENSE.md | 782 +- node_modules/vite/README.md | 8 +- node_modules/vite/bin/vite.js | 0 node_modules/vite/client.d.ts | 20 + node_modules/vite/dist/client/client.mjs | 1183 +- node_modules/vite/dist/client/client.mjs.map | 1 - node_modules/vite/dist/client/env.mjs | 42 +- node_modules/vite/dist/client/env.mjs.map | 1 - .../vite/dist/node-cjs/publicUtils.cjs | 2255 +- .../vite/dist/node/chunks/dep---u6OAyB.js | 7646 -- .../vite/dist/node/chunks/dep-8a-6Quh6.js | 561 - .../vite/dist/node/chunks/dep-9A4-l-43.js | 68439 -------------- .../vite/dist/node/chunks/dep-FrUgnvs5.js | 914 - .../vite/dist/node/chunks/dep-kjUoH5nk.js | 7930 -- node_modules/vite/dist/node/cli.js | 488 +- node_modules/vite/dist/node/constants.js | 180 +- node_modules/vite/dist/node/index.d.ts | 418 +- node_modules/vite/dist/node/index.js | 323 +- node_modules/vite/index.cjs | 33 +- node_modules/vite/index.d.cts | 2 +- node_modules/vite/package.json | 96 +- node_modules/vite/types/customEvent.d.ts | 4 + node_modules/vite/types/hmrPayload.d.ts | 12 +- node_modules/vite/types/importGlob.d.ts | 2 + node_modules/vitepress/README.md | 1 + node_modules/vitepress/bin/vitepress.js | 0 .../dist/client/app/components/ClientOnly.js | 2 +- .../dist/client/app/components/Content.js | 5 +- .../dist/client/app/composables/head.js | 2 +- .../dist/client/app/composables/preFetch.js | 2 +- .../vitepress/dist/client/app/data.js | 34 +- .../vitepress/dist/client/app/devtools.js | 5 +- .../vitepress/dist/client/app/index.js | 24 +- .../vitepress/dist/client/app/router.js | 115 +- node_modules/vitepress/dist/client/app/ssr.js | 4 +- .../vitepress/dist/client/app/utils.js | 6 +- node_modules/vitepress/dist/client/index.d.ts | 28 +- node_modules/vitepress/dist/client/index.js | 4 +- node_modules/vitepress/dist/client/shared.js | 55 +- .../dist/client/theme-default/Layout.vue | 3 + .../dist/client/theme-default/NotFound.vue | 19 +- .../theme-default/components/VPButton.vue | 8 +- .../theme-default/components/VPContent.vue | 3 + .../components/VPDocAsideOutline.vue | 22 +- .../theme-default/components/VPDocFooter.vue | 56 +- .../components/VPDocFooterLastUpdated.vue | 4 +- .../theme-default/components/VPFeature.vue | 7 +- .../theme-default/components/VPFlyout.vue | 34 +- .../theme-default/components/VPHero.vue | 19 +- .../theme-default/components/VPHome.vue | 27 +- .../theme-default/components/VPHomeHero.vue | 3 + .../components/VPHomeSponsors.vue | 42 +- .../theme-default/components/VPLink.vue | 6 +- .../theme-default/components/VPLocalNav.vue | 7 +- .../components/VPLocalNavOutlineDropdown.vue | 46 +- .../components/VPLocalSearchBox.vue | 188 +- .../theme-default/components/VPMenu.vue | 9 +- .../theme-default/components/VPMenuLink.vue | 15 +- .../theme-default/components/VPNavBar.vue | 35 +- .../components/VPNavBarAppearance.vue | 9 +- .../components/VPNavBarExtra.vue | 20 +- .../theme-default/components/VPNavBarMenu.vue | 17 +- .../components/VPNavBarMenuGroup.vue | 14 +- .../components/VPNavBarMenuLink.vue | 1 + .../components/VPNavBarSearchButton.vue | 32 +- .../components/VPNavBarTitle.vue | 4 +- .../components/VPNavBarTranslations.vue | 3 +- .../theme-default/components/VPNavScreen.vue | 4 +- .../components/VPNavScreenAppearance.vue | 9 +- .../components/VPNavScreenMenu.vue | 11 +- .../components/VPNavScreenMenuGroup.vue | 25 +- .../components/VPNavScreenMenuGroupLink.vue | 3 +- .../components/VPNavScreenMenuLink.vue | 7 +- .../components/VPNavScreenTranslations.vue | 10 +- .../theme-default/components/VPSidebar.vue | 37 +- .../components/VPSidebarItem.vue | 18 +- .../theme-default/components/VPSkipLink.vue | 4 +- .../theme-default/components/VPSocialLink.vue | 36 +- .../theme-default/components/VPSwitch.vue | 8 +- .../components/VPSwitchAppearance.vue | 14 +- .../components/VPTeamMembersItem.vue | 7 +- .../theme-default/components/VPTeamPage.vue | 9 +- .../theme-default/composables/flyout.js | 2 +- .../client/theme-default/composables/hash.js | 9 - .../client/theme-default/composables/langs.js | 9 +- .../client/theme-default/composables/nav.js | 2 +- .../theme-default/composables/outline.js | 60 +- .../theme-default/composables/prev-next.js | 15 +- .../theme-default/composables/sidebar.js | 5 +- .../fonts/inter-italic-cyrillic-ext.woff2 | Bin 28332 -> 43112 bytes .../fonts/inter-italic-cyrillic.woff2 | Bin 17824 -> 31300 bytes .../fonts/inter-italic-greek-ext.woff2 | Bin 12188 -> 17404 bytes .../fonts/inter-italic-greek.woff2 | Bin 23264 -> 32564 bytes .../fonts/inter-italic-latin-ext.woff2 | Bin 63552 -> 120840 bytes .../fonts/inter-italic-latin.woff2 | Bin 46048 -> 74784 bytes .../fonts/inter-italic-vietnamese.woff2 | Bin 8784 -> 14884 bytes .../fonts/inter-roman-cyrillic-ext.woff2 | Bin 26600 -> 40488 bytes .../fonts/inter-roman-cyrillic.woff2 | Bin 16780 -> 29164 bytes .../fonts/inter-roman-greek-ext.woff2 | Bin 11808 -> 16272 bytes .../fonts/inter-roman-greek.woff2 | Bin 21776 -> 29920 bytes .../fonts/inter-roman-latin-ext.woff2 | Bin 59608 -> 110160 bytes .../fonts/inter-roman-latin.woff2 | Bin 42464 -> 67792 bytes .../fonts/inter-roman-vietnamese.woff2 | Bin 8492 -> 14072 bytes .../dist/client/theme-default/styles/base.css | 4 +- .../styles/components/vp-doc.css | 23 +- .../styles/components/vp-sponsor.css | 4 +- .../client/theme-default/styles/fonts.css | 210 +- .../dist/client/theme-default/styles/vars.css | 53 +- .../client/theme-default/support/sidebar.js | 2 +- .../theme-default/support/socialIcons.js | 14 - .../client/theme-default/support/utils.js | 4 +- .../client/theme-default/without-fonts.js | 23 +- node_modules/vitepress/dist/node/cli.js | 545 +- node_modules/vitepress/dist/node/index.d.ts | 1073 +- node_modules/vitepress/dist/node/index.js | 140 +- .../vitepress/dist/node/serve-e9-zRdpq.js | 63781 ------------- node_modules/vitepress/package.json | 256 +- .../template/.vitepress/theme/style.css | 6 +- .../vitepress/template/markdown-examples.md | 2 +- node_modules/vitepress/theme.d.ts | 6 + .../vitepress/types/default-theme.d.ts | 37 +- node_modules/vitepress/types/index.d.ts | 2 +- node_modules/vitepress/types/shared.d.ts | 10 +- node_modules/vue/README.md | 7 +- node_modules/vue/dist/vue.cjs.js | 19 +- node_modules/vue/dist/vue.cjs.prod.js | 19 +- node_modules/vue/dist/vue.esm-browser.js | 10151 +- node_modules/vue/dist/vue.esm-browser.prod.js | 18 +- node_modules/vue/dist/vue.esm-bundler.js | 21 +- node_modules/vue/dist/vue.global.js | 10014 +- node_modules/vue/dist/vue.global.prod.js | 18 +- .../vue/dist/vue.runtime.esm-browser.js | 9092 +- .../vue/dist/vue.runtime.esm-browser.prod.js | 12 +- .../vue/dist/vue.runtime.esm-bundler.js | 2 +- node_modules/vue/dist/vue.runtime.global.js | 8967 +- .../vue/dist/vue.runtime.global.prod.js | 12 +- node_modules/vue/jsx-runtime/index.d.ts | 4 +- node_modules/vue/jsx.d.ts | 2 +- node_modules/vue/package.json | 12 +- package.json | 4 +- 1016 files changed, 213339 insertions(+), 351515 deletions(-) create mode 100644 bun.lock delete mode 100644 docs/.vitepress/cache/deps/chunk-3YS4HNIT.js delete mode 100644 docs/.vitepress/cache/deps/chunk-3YS4HNIT.js.map delete mode 100644 docs/.vitepress/cache/deps/chunk-WFT6MZEP.js delete mode 100644 docs/.vitepress/cache/deps/chunk-WFT6MZEP.js.map delete mode 100644 docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.lean.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.lean.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.lean.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.js delete mode 100644 docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.lean.js delete mode 100644 docs/.vitepress/dist/assets/app.hWp2if6e.js delete mode 100644 docs/.vitepress/dist/assets/chunks/framework.BouBWMxc.js delete mode 100644 docs/.vitepress/dist/assets/chunks/theme.makJcAKq.js delete mode 100644 docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.js delete mode 100644 docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.lean.js delete mode 100644 docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.js delete mode 100644 docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.lean.js delete mode 100644 docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.js delete mode 100644 docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.lean.js delete mode 100644 docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.js delete mode 100644 docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.lean.js delete mode 100644 docs/.vitepress/dist/assets/index.md.Wvz5TWej.js delete mode 100644 docs/.vitepress/dist/assets/index.md.Wvz5TWej.lean.js delete mode 100644 docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-italic-cyrillic.-nLMcIwj.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-italic-greek-ext.hznxWNZO.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-italic-greek.PSfer2Kc.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-italic-latin-ext.RnFly65-.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-italic-latin.27E69YJn.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-italic-vietnamese.xzQHe1q1.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-cyrillic.jIZ9REo5.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-greek-ext.9JiNzaSO.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-greek.Cb5wWeGA.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-latin-ext.GZWE-KO4.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-latin.bvIUbFQP.woff2 delete mode 100644 docs/.vitepress/dist/assets/inter-roman-vietnamese.paY3CzEB.woff2 delete mode 100644 docs/.vitepress/dist/assets/style.vhD-8WCU.css delete mode 100644 docs/.vitepress/dist/header.png mode change 100644 => 120000 node_modules/.bin/esbuild mode change 100644 => 120000 node_modules/.bin/nanoid mode change 100644 => 120000 node_modules/.bin/parser mode change 100644 => 120000 node_modules/.bin/rollup mode change 100644 => 120000 node_modules/.bin/vite mode change 100644 => 120000 node_modules/.bin/vitepress delete mode 100644 node_modules/@algolia/client-analytics/dist/client-analytics.cjs.js delete mode 100644 node_modules/@algolia/client-analytics/dist/client-analytics.d.ts delete mode 100644 node_modules/@algolia/client-analytics/dist/client-analytics.esm.js delete mode 100644 node_modules/@algolia/client-common/dist/client-common.cjs.js delete mode 100644 node_modules/@algolia/client-common/dist/client-common.d.ts delete mode 100644 node_modules/@algolia/client-common/dist/client-common.esm.js delete mode 100644 node_modules/@algolia/client-personalization/dist/client-personalization.cjs.js delete mode 100644 node_modules/@algolia/client-personalization/dist/client-personalization.d.ts delete mode 100644 node_modules/@algolia/client-personalization/dist/client-personalization.esm.js delete mode 100644 node_modules/@algolia/client-search/dist/client-search.cjs.js delete mode 100644 node_modules/@algolia/client-search/dist/client-search.d.ts delete mode 100644 node_modules/@algolia/client-search/dist/client-search.esm.js delete mode 100644 node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.cjs.js delete mode 100644 node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.d.ts delete mode 100644 node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.esm.js delete mode 100644 node_modules/@algolia/requester-node-http/dist/requester-node-http.cjs.js delete mode 100644 node_modules/@algolia/requester-node-http/dist/requester-node-http.d.ts delete mode 100644 node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js mode change 100644 => 100755 node_modules/@babel/parser/bin/babel-parser.js delete mode 100644 node_modules/@babel/parser/index.cjs delete mode 100644 node_modules/@docsearch/js/dist/esm/docsearch.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/AlgoliaLogo.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/AlgoliaLogo.js delete mode 100644 node_modules/@docsearch/react/dist/esm/DocSearch.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/DocSearch.js delete mode 100644 node_modules/@docsearch/react/dist/esm/DocSearchButton.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/DocSearchButton.js delete mode 100644 node_modules/@docsearch/react/dist/esm/DocSearchModal.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/DocSearchModal.js delete mode 100644 node_modules/@docsearch/react/dist/esm/ErrorScreen.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/ErrorScreen.js delete mode 100644 node_modules/@docsearch/react/dist/esm/Footer.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/Footer.js delete mode 100644 node_modules/@docsearch/react/dist/esm/Hit.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/Hit.js delete mode 100644 node_modules/@docsearch/react/dist/esm/NoResultsScreen.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/NoResultsScreen.js delete mode 100644 node_modules/@docsearch/react/dist/esm/Results.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/Results.js delete mode 100644 node_modules/@docsearch/react/dist/esm/ResultsScreen.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/ResultsScreen.js delete mode 100644 node_modules/@docsearch/react/dist/esm/ScreenState.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/ScreenState.js delete mode 100644 node_modules/@docsearch/react/dist/esm/SearchBox.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/SearchBox.js delete mode 100644 node_modules/@docsearch/react/dist/esm/Snippet.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/Snippet.js delete mode 100644 node_modules/@docsearch/react/dist/esm/StartScreen.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/StartScreen.js delete mode 100644 node_modules/@docsearch/react/dist/esm/__tests__/api.test.js delete mode 100644 node_modules/@docsearch/react/dist/esm/constants.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/constants.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/RecentIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/RecentIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/ResetIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/ResetIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/SearchIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/SearchIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/SelectIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/SelectIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/SourceIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/SourceIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/StarIcon.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/StarIcon.js delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/index.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/icons/index.js delete mode 100644 node_modules/@docsearch/react/dist/esm/stored-searches.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/stored-searches.js delete mode 100644 node_modules/@docsearch/react/dist/esm/types/DocSearchHit.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/types/DocSearchHit.js delete mode 100644 node_modules/@docsearch/react/dist/esm/types/DocSearchState.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/types/DocSearchState.js delete mode 100644 node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.js delete mode 100644 node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.js delete mode 100644 node_modules/@docsearch/react/dist/esm/types/index.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/types/index.js delete mode 100644 node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.js delete mode 100644 node_modules/@docsearch/react/dist/esm/useSearchClient.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/useSearchClient.js delete mode 100644 node_modules/@docsearch/react/dist/esm/useTouchEvents.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/useTouchEvents.js delete mode 100644 node_modules/@docsearch/react/dist/esm/useTrapFocus.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/useTrapFocus.js delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/groupBy.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/groupBy.js delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/identity.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/identity.js delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/index.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/index.js delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.js delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/noop.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/noop.js delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.js delete mode 100644 node_modules/@docsearch/react/dist/esm/version.d.ts delete mode 100644 node_modules/@docsearch/react/dist/esm/version.js delete mode 100644 node_modules/@jridgewell/sourcemap-codec/dist/types/sourcemap-codec.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/common/entities.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/common/html_blocks.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/common/html_re.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/common/utils.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/helpers/index.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/helpers/parse_link_destination.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/helpers/parse_link_label.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/helpers/parse_link_title.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/index.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/parser_block.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/parser_core.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/parser_inline.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/renderer.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/ruler.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/rules_block/state_block.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/rules_core/state_core.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/rules_inline/state_inline.d.ts delete mode 100644 node_modules/@types/markdown-it/lib/token.d.ts delete mode 100644 node_modules/@types/mdurl/decode.d.ts delete mode 100644 node_modules/@types/mdurl/encode.d.ts delete mode 100644 node_modules/@types/mdurl/format.d.ts delete mode 100644 node_modules/@types/mdurl/parse.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/api.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/app.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/component.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/context.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/hooks.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/index.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/util.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/const.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/env.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/index.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/plugin.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/proxy.js delete mode 100644 node_modules/@vue/devtools-api/lib/cjs/time.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/api.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/api.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/app.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/app.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/component.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/component.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/context.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/context.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/hooks.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/hooks.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/index.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/index.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/util.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/api/util.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/const.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/const.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/env.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/env.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/index.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/index.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/plugin.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/plugin.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/proxy.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/proxy.js delete mode 100644 node_modules/@vue/devtools-api/lib/esm/time.d.ts delete mode 100644 node_modules/@vue/devtools-api/lib/esm/time.js delete mode 100644 node_modules/@vueuse/core/README.md delete mode 100644 node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix delete mode 100644 node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix.cmd delete mode 100644 node_modules/@vueuse/core/node_modules/.bin/vue-demi-fix.ps1 delete mode 100644 node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch delete mode 100644 node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch.cmd delete mode 100644 node_modules/@vueuse/core/node_modules/.bin/vue-demi-switch.ps1 delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/LICENSE delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/README.md delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-fix.js delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-switch.js delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/index.cjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/index.d.ts delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/index.iife.js delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.cjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.d.ts delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v2.7/index.mjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.cjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.d.ts delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v2/index.mjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.cjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.d.ts delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/lib/v3/index.mjs delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/package.json delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/scripts/postinstall.js delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/scripts/switch-cli.js delete mode 100644 node_modules/@vueuse/core/node_modules/vue-demi/scripts/utils.js delete mode 100644 node_modules/@vueuse/integrations/node_modules/.bin/vue-demi-fix delete mode 100644 node_modules/@vueuse/integrations/node_modules/.bin/vue-demi-fix.cmd delete mode 100644 node_modules/@vueuse/integrations/node_modules/.bin/vue-demi-fix.ps1 delete mode 100644 node_modules/@vueuse/integrations/node_modules/.bin/vue-demi-switch delete mode 100644 node_modules/@vueuse/integrations/node_modules/.bin/vue-demi-switch.cmd delete mode 100644 node_modules/@vueuse/integrations/node_modules/.bin/vue-demi-switch.ps1 delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/LICENSE delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/README.md delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/bin/vue-demi-fix.js delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/bin/vue-demi-switch.js delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.cjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.d.ts delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.iife.js delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/index.mjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v2.7/index.cjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v2.7/index.d.ts delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v2.7/index.mjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v2/index.cjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v2/index.d.ts delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v2/index.mjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v3/index.cjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v3/index.d.ts delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/lib/v3/index.mjs delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/package.json delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/scripts/postinstall.js delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/scripts/switch-cli.js delete mode 100644 node_modules/@vueuse/integrations/node_modules/vue-demi/scripts/utils.js delete mode 100644 node_modules/@vueuse/shared/node_modules/.bin/vue-demi-fix delete mode 100644 node_modules/@vueuse/shared/node_modules/.bin/vue-demi-fix.cmd delete mode 100644 node_modules/@vueuse/shared/node_modules/.bin/vue-demi-fix.ps1 delete mode 100644 node_modules/@vueuse/shared/node_modules/.bin/vue-demi-switch delete mode 100644 node_modules/@vueuse/shared/node_modules/.bin/vue-demi-switch.cmd delete mode 100644 node_modules/@vueuse/shared/node_modules/.bin/vue-demi-switch.ps1 delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/LICENSE delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/README.md delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/bin/vue-demi-fix.js delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/bin/vue-demi-switch.js delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.cjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.d.ts delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.iife.js delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v2.7/index.cjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v2.7/index.d.ts delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v2.7/index.mjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v2/index.cjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v2/index.d.ts delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v2/index.mjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v3/index.cjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v3/index.d.ts delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/lib/v3/index.mjs delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/package.json delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/scripts/postinstall.js delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/scripts/switch-cli.js delete mode 100644 node_modules/@vueuse/shared/node_modules/vue-demi/scripts/utils.js delete mode 100644 node_modules/algoliasearch/dist/algoliasearch-lite.d.ts delete mode 100644 node_modules/algoliasearch/dist/algoliasearch-lite.esm.browser.js delete mode 100644 node_modules/algoliasearch/dist/algoliasearch-lite.umd.js delete mode 100644 node_modules/algoliasearch/dist/algoliasearch.cjs.js delete mode 100644 node_modules/algoliasearch/dist/algoliasearch.d.ts delete mode 100644 node_modules/algoliasearch/dist/algoliasearch.esm.browser.js delete mode 100644 node_modules/entities/lib/decode.d.ts delete mode 100644 node_modules/entities/lib/decode.d.ts.map delete mode 100644 node_modules/entities/lib/decode.js delete mode 100644 node_modules/entities/lib/decode.js.map delete mode 100644 node_modules/entities/lib/decode_codepoint.d.ts delete mode 100644 node_modules/entities/lib/decode_codepoint.d.ts.map delete mode 100644 node_modules/entities/lib/decode_codepoint.js delete mode 100644 node_modules/entities/lib/decode_codepoint.js.map delete mode 100644 node_modules/entities/lib/encode.d.ts delete mode 100644 node_modules/entities/lib/encode.d.ts.map delete mode 100644 node_modules/entities/lib/encode.js delete mode 100644 node_modules/entities/lib/encode.js.map delete mode 100644 node_modules/entities/lib/escape.d.ts delete mode 100644 node_modules/entities/lib/escape.d.ts.map delete mode 100644 node_modules/entities/lib/escape.js delete mode 100644 node_modules/entities/lib/escape.js.map delete mode 100644 node_modules/entities/lib/esm/decode.d.ts delete mode 100644 node_modules/entities/lib/esm/decode.d.ts.map delete mode 100644 node_modules/entities/lib/esm/decode.js delete mode 100644 node_modules/entities/lib/esm/decode.js.map delete mode 100644 node_modules/entities/lib/esm/decode_codepoint.d.ts delete mode 100644 node_modules/entities/lib/esm/decode_codepoint.d.ts.map delete mode 100644 node_modules/entities/lib/esm/decode_codepoint.js delete mode 100644 node_modules/entities/lib/esm/decode_codepoint.js.map delete mode 100644 node_modules/entities/lib/esm/encode.d.ts delete mode 100644 node_modules/entities/lib/esm/encode.d.ts.map delete mode 100644 node_modules/entities/lib/esm/encode.js delete mode 100644 node_modules/entities/lib/esm/encode.js.map delete mode 100644 node_modules/entities/lib/esm/escape.d.ts delete mode 100644 node_modules/entities/lib/esm/escape.d.ts.map delete mode 100644 node_modules/entities/lib/esm/escape.js delete mode 100644 node_modules/entities/lib/esm/escape.js.map delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.d.ts delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.js delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-html.js.map delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.d.ts delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.js delete mode 100644 node_modules/entities/lib/esm/generated/decode-data-xml.js.map delete mode 100644 node_modules/entities/lib/esm/generated/encode-html.d.ts delete mode 100644 node_modules/entities/lib/esm/generated/encode-html.d.ts.map delete mode 100644 node_modules/entities/lib/esm/generated/encode-html.js delete mode 100644 node_modules/entities/lib/esm/generated/encode-html.js.map delete mode 100644 node_modules/entities/lib/esm/index.d.ts delete mode 100644 node_modules/entities/lib/esm/index.d.ts.map delete mode 100644 node_modules/entities/lib/esm/index.js delete mode 100644 node_modules/entities/lib/esm/index.js.map delete mode 100644 node_modules/entities/lib/esm/package.json delete mode 100644 node_modules/entities/lib/generated/decode-data-html.d.ts delete mode 100644 node_modules/entities/lib/generated/decode-data-html.d.ts.map delete mode 100644 node_modules/entities/lib/generated/decode-data-html.js delete mode 100644 node_modules/entities/lib/generated/decode-data-html.js.map delete mode 100644 node_modules/entities/lib/generated/decode-data-xml.d.ts delete mode 100644 node_modules/entities/lib/generated/decode-data-xml.d.ts.map delete mode 100644 node_modules/entities/lib/generated/decode-data-xml.js delete mode 100644 node_modules/entities/lib/generated/decode-data-xml.js.map delete mode 100644 node_modules/entities/lib/generated/encode-html.d.ts delete mode 100644 node_modules/entities/lib/generated/encode-html.d.ts.map delete mode 100644 node_modules/entities/lib/generated/encode-html.js delete mode 100644 node_modules/entities/lib/generated/encode-html.js.map delete mode 100644 node_modules/entities/lib/index.d.ts delete mode 100644 node_modules/entities/lib/index.d.ts.map delete mode 100644 node_modules/entities/lib/index.js delete mode 100644 node_modules/entities/lib/index.js.map mode change 100644 => 100755 node_modules/esbuild/bin/esbuild delete mode 100644 node_modules/minisearch/dist/es5m/SearchableMap.js delete mode 100644 node_modules/minisearch/dist/es5m/SearchableMap.js.map delete mode 100644 node_modules/minisearch/dist/es5m/index.js delete mode 100644 node_modules/minisearch/dist/es5m/index.js.map delete mode 100644 node_modules/minisearch/dist/types/SearchableMap.d.ts delete mode 100644 node_modules/minisearch/dist/types/index.d.ts mode change 100644 => 100755 node_modules/nanoid/bin/nanoid.cjs delete mode 100644 node_modules/picocolors/types.ts mode change 100644 => 100755 node_modules/rollup/dist/bin/rollup delete mode 100644 node_modules/source-map-js/CHANGELOG.md mode change 100644 => 100755 node_modules/vite/bin/vite.js delete mode 100644 node_modules/vite/dist/client/client.mjs.map delete mode 100644 node_modules/vite/dist/client/env.mjs.map delete mode 100644 node_modules/vite/dist/node/chunks/dep---u6OAyB.js delete mode 100644 node_modules/vite/dist/node/chunks/dep-8a-6Quh6.js delete mode 100644 node_modules/vite/dist/node/chunks/dep-9A4-l-43.js delete mode 100644 node_modules/vite/dist/node/chunks/dep-FrUgnvs5.js delete mode 100644 node_modules/vite/dist/node/chunks/dep-kjUoH5nk.js mode change 100644 => 100755 node_modules/vitepress/bin/vitepress.js delete mode 100644 node_modules/vitepress/dist/client/theme-default/composables/hash.js delete mode 100644 node_modules/vitepress/dist/client/theme-default/support/socialIcons.js delete mode 100644 node_modules/vitepress/dist/node/serve-e9-zRdpq.js diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 16097ed..d363b9c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,28 +16,42 @@ jobs: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} + steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup Node - uses: actions/setup-node@v4 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 with: - node-version: 20 - cache: npm + bun-version: latest + + - name: Cache Bun packages + uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock', '**/bun.lockb', '**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-bun- + - name: Setup Pages uses: actions/configure-pages@v4 + - name: Install dependencies - run: npm ci + run: bun ci + - name: Build run: | - npm run docs:build - touch docs/.vitepress/dist + bun run docs:build + touch docs/.vitepress/dist/.nojekyll + - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: docs/.vitepress/dist + - name: Deploy id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/aftman.toml b/aftman.toml index 7923f3d..596db3c 100644 --- a/aftman.toml +++ b/aftman.toml @@ -3,5 +3,5 @@ # To add a new tool, add an entry to this table. [tools] -rojo = "rojo-rbx/rojo@7.4.1" +rojo = "rojo-rbx/rojo@7.6.1" wally = "UpliftGames/wally@0.3.2" diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..10ccab5 --- /dev/null +++ b/bun.lock @@ -0,0 +1,359 @@ +{ + "lockfileVersion": 1, + "configVersion": 0, + "workspaces": { + "": { + "devDependencies": { + "vitepress": "^1.6.3", + "vue": "^3.5.28", + }, + }, + }, + "packages": { + "@algolia/abtesting": ["@algolia/abtesting@1.14.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-cZfj+1Z1dgrk3YPtNQNt0H9Rr67P8b4M79JjUKGS0d7/EbFbGxGgSu6zby5f22KXo3LT0LZa4O2c6VVbupJuDg=="], + + "@algolia/autocomplete-core": ["@algolia/autocomplete-core@1.17.7", "", { "dependencies": { "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", "@algolia/autocomplete-shared": "1.17.7" } }, "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q=="], + + "@algolia/autocomplete-plugin-algolia-insights": ["@algolia/autocomplete-plugin-algolia-insights@1.17.7", "", { "dependencies": { "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A=="], + + "@algolia/autocomplete-preset-algolia": ["@algolia/autocomplete-preset-algolia@1.17.7", "", { "dependencies": { "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA=="], + + "@algolia/autocomplete-shared": ["@algolia/autocomplete-shared@1.17.7", "", { "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg=="], + + "@algolia/client-abtesting": ["@algolia/client-abtesting@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-n17WSJ7vazmM6yDkWBAjY12J8ERkW9toOqNgQ1GEZu/Kc4dJDJod1iy+QP5T/UlR3WICgZDi/7a/VX5TY5LAPQ=="], + + "@algolia/client-analytics": ["@algolia/client-analytics@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-v5bMZMEqW9U2l40/tTAaRyn4AKrYLio7KcRuHmLaJtxuJAhvZiE7Y62XIsF070juz4MN3eyvfQmI+y5+OVbZuA=="], + + "@algolia/client-common": ["@algolia/client-common@5.48.0", "", {}, "sha512-7H3DgRyi7UByScc0wz7EMrhgNl7fKPDjKX9OcWixLwCj7yrRXDSIzwunykuYUUO7V7HD4s319e15FlJ9CQIIFQ=="], + + "@algolia/client-insights": ["@algolia/client-insights@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-tXmkB6qrIGAXrtRYHQNpfW0ekru/qymV02bjT0w5QGaGw0W91yT+53WB6dTtRRsIrgS30Al6efBvyaEosjZ5uw=="], + + "@algolia/client-personalization": ["@algolia/client-personalization@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-4tXEsrdtcBZbDF73u14Kb3otN+xUdTVGop1tBjict+Rc/FhsJQVIwJIcTrOJqmvhtBfc56Bu65FiVOnpAZCxcw=="], + + "@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-unzSUwWFpsDrO8935RhMAlyK0Ttua/5XveVIwzfjs5w+GVBsHgIkbOe8VbBJccMU/z1LCwvu1AY3kffuSLAR5Q=="], + + "@algolia/client-search": ["@algolia/client-search@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-RB9bKgYTVUiOcEb5bOcZ169jiiVW811dCsJoLT19DcbbFmU4QaK0ghSTssij35QBQ3SCOitXOUrHcGgNVwS7sQ=="], + + "@algolia/ingestion": ["@algolia/ingestion@1.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-rhoSoPu+TDzDpvpk3cY/pYgbeWXr23DxnAIH/AkN0dUC+GCnVIeNSQkLaJ+CL4NZ51cjLIjksrzb4KC5Xu+ktw=="], + + "@algolia/monitoring": ["@algolia/monitoring@1.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-aSe6jKvWt+8VdjOaq2ERtsXp9+qMXNJ3mTyTc1VMhNfgPl7ArOhRMRSQ8QBnY8ZL4yV5Xpezb7lAg8pdGrrulg=="], + + "@algolia/recommend": ["@algolia/recommend@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-p9tfI1bimAaZrdiVExL/dDyGUZ8gyiSHsktP1ZWGzt5hXpM3nhv4tSjyHtXjEKtA0UvsaHKwSfFE8aAAm1eIQA=="], + + "@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0" } }, "sha512-XshyfpsQB7BLnHseMinp3fVHOGlTv6uEHOzNK/3XrEF9mjxoZAcdVfY1OCXObfwRWX5qXZOq8FnrndFd44iVsQ=="], + + "@algolia/requester-fetch": ["@algolia/requester-fetch@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0" } }, "sha512-Q4XNSVQU89bKNAPuvzSYqTH9AcbOOiIo6AeYMQTxgSJ2+uvT78CLPMG89RIIloYuAtSfE07s40OLV50++l1Bbw=="], + + "@algolia/requester-node-http": ["@algolia/requester-node-http@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0" } }, "sha512-ZgxV2+5qt3NLeUYBTsi6PLyHcENQWC0iFppFZekHSEDA2wcLdTUjnaJzimTEULHIvJuLRCkUs4JABdhuJktEag=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/parser": ["@babel/parser@7.29.0", "", { "dependencies": { "@babel/types": "^7.29.0" }, "bin": "./bin/babel-parser.js" }, "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww=="], + + "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], + + "@docsearch/css": ["@docsearch/css@3.8.2", "", {}, "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ=="], + + "@docsearch/js": ["@docsearch/js@3.8.2", "", { "dependencies": { "@docsearch/react": "3.8.2", "preact": "^10.0.0" } }, "sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ=="], + + "@docsearch/react": ["@docsearch/react@3.8.2", "", { "dependencies": { "@algolia/autocomplete-core": "1.17.7", "@algolia/autocomplete-preset-algolia": "1.17.7", "@docsearch/css": "3.8.2", "algoliasearch": "^5.14.2" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 19.0.0", "react": ">= 16.8.0 < 19.0.0", "react-dom": ">= 16.8.0 < 19.0.0", "search-insights": ">= 1 < 3" }, "optionalPeers": ["@types/react", "react", "react-dom", "search-insights"] }, "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.21.5", "", { "os": "android", "cpu": "arm" }, "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.21.5", "", { "os": "android", "cpu": "arm64" }, "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.21.5", "", { "os": "android", "cpu": "x64" }, "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.21.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.21.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.21.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.21.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.21.5", "", { "os": "linux", "cpu": "arm" }, "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.21.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.21.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.21.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.21.5", "", { "os": "linux", "cpu": "none" }, "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.21.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.21.5", "", { "os": "linux", "cpu": "x64" }, "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.21.5", "", { "os": "none", "cpu": "x64" }, "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.21.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.21.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.21.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.21.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.21.5", "", { "os": "win32", "cpu": "x64" }, "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw=="], + + "@iconify-json/simple-icons": ["@iconify-json/simple-icons@1.2.70", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-CYNRCgN6nBTjN4dNkrBCjHXNR2e4hQihdsZUs/afUNFOWLSYjfihca4EFN05rRvDk4Xoy2n8tym6IxBZmcn+Qg=="], + + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.57.1", "", { "os": "android", "cpu": "arm" }, "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.57.1", "", { "os": "android", "cpu": "arm64" }, "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.57.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.57.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.57.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.57.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.57.1", "", { "os": "linux", "cpu": "arm" }, "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.57.1", "", { "os": "linux", "cpu": "arm" }, "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.57.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.57.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q=="], + + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA=="], + + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw=="], + + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.57.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w=="], + + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.57.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.57.1", "", { "os": "linux", "cpu": "none" }, "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.57.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.57.1", "", { "os": "linux", "cpu": "x64" }, "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.57.1", "", { "os": "linux", "cpu": "x64" }, "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw=="], + + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.57.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw=="], + + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.57.1", "", { "os": "none", "cpu": "arm64" }, "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.57.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.57.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew=="], + + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.57.1", "", { "os": "win32", "cpu": "x64" }, "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.57.1", "", { "os": "win32", "cpu": "x64" }, "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA=="], + + "@shikijs/core": ["@shikijs/core@2.5.0", "", { "dependencies": { "@shikijs/engine-javascript": "2.5.0", "@shikijs/engine-oniguruma": "2.5.0", "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.4" } }, "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^3.1.0" } }, "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw=="], + + "@shikijs/langs": ["@shikijs/langs@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w=="], + + "@shikijs/themes": ["@shikijs/themes@2.5.0", "", { "dependencies": { "@shikijs/types": "2.5.0" } }, "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw=="], + + "@shikijs/transformers": ["@shikijs/transformers@2.5.0", "", { "dependencies": { "@shikijs/core": "2.5.0", "@shikijs/types": "2.5.0" } }, "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg=="], + + "@shikijs/types": ["@shikijs/types@2.5.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], + + "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="], + + "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], + + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@types/web-bluetooth": ["@types/web-bluetooth@0.0.21", "", {}, "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], + + "@vitejs/plugin-vue": ["@vitejs/plugin-vue@5.2.4", "", { "peerDependencies": { "vite": "^5.0.0 || ^6.0.0", "vue": "^3.2.25" } }, "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA=="], + + "@vue/compiler-core": ["@vue/compiler-core@3.5.28", "", { "dependencies": { "@babel/parser": "^7.29.0", "@vue/shared": "3.5.28", "entities": "^7.0.1", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ=="], + + "@vue/compiler-dom": ["@vue/compiler-dom@3.5.28", "", { "dependencies": { "@vue/compiler-core": "3.5.28", "@vue/shared": "3.5.28" } }, "sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA=="], + + "@vue/compiler-sfc": ["@vue/compiler-sfc@3.5.28", "", { "dependencies": { "@babel/parser": "^7.29.0", "@vue/compiler-core": "3.5.28", "@vue/compiler-dom": "3.5.28", "@vue/compiler-ssr": "3.5.28", "@vue/shared": "3.5.28", "estree-walker": "^2.0.2", "magic-string": "^0.30.21", "postcss": "^8.5.6", "source-map-js": "^1.2.1" } }, "sha512-6TnKMiNkd6u6VeVDhZn/07KhEZuBSn43Wd2No5zaP5s3xm8IqFTHBj84HJah4UepSUJTro5SoqqlOY22FKY96g=="], + + "@vue/compiler-ssr": ["@vue/compiler-ssr@3.5.28", "", { "dependencies": { "@vue/compiler-dom": "3.5.28", "@vue/shared": "3.5.28" } }, "sha512-JCq//9w1qmC6UGLWJX7RXzrGpKkroubey/ZFqTpvEIDJEKGgntuDMqkuWiZvzTzTA5h2qZvFBFHY7fAAa9475g=="], + + "@vue/devtools-api": ["@vue/devtools-api@7.7.9", "", { "dependencies": { "@vue/devtools-kit": "^7.7.9" } }, "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g=="], + + "@vue/devtools-kit": ["@vue/devtools-kit@7.7.9", "", { "dependencies": { "@vue/devtools-shared": "^7.7.9", "birpc": "^2.3.0", "hookable": "^5.5.3", "mitt": "^3.0.1", "perfect-debounce": "^1.0.0", "speakingurl": "^14.0.1", "superjson": "^2.2.2" } }, "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA=="], + + "@vue/devtools-shared": ["@vue/devtools-shared@7.7.9", "", { "dependencies": { "rfdc": "^1.4.1" } }, "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA=="], + + "@vue/reactivity": ["@vue/reactivity@3.5.28", "", { "dependencies": { "@vue/shared": "3.5.28" } }, "sha512-gr5hEsxvn+RNyu9/9o1WtdYdwDjg5FgjUSBEkZWqgTKlo/fvwZ2+8W6AfKsc9YN2k/+iHYdS9vZYAhpi10kNaw=="], + + "@vue/runtime-core": ["@vue/runtime-core@3.5.28", "", { "dependencies": { "@vue/reactivity": "3.5.28", "@vue/shared": "3.5.28" } }, "sha512-POVHTdbgnrBBIpnbYU4y7pOMNlPn2QVxVzkvEA2pEgvzbelQq4ZOUxbp2oiyo+BOtiYlm8Q44wShHJoBvDPAjQ=="], + + "@vue/runtime-dom": ["@vue/runtime-dom@3.5.28", "", { "dependencies": { "@vue/reactivity": "3.5.28", "@vue/runtime-core": "3.5.28", "@vue/shared": "3.5.28", "csstype": "^3.2.3" } }, "sha512-4SXxSF8SXYMuhAIkT+eBRqOkWEfPu6nhccrzrkioA6l0boiq7sp18HCOov9qWJA5HML61kW8p/cB4MmBiG9dSA=="], + + "@vue/server-renderer": ["@vue/server-renderer@3.5.28", "", { "dependencies": { "@vue/compiler-ssr": "3.5.28", "@vue/shared": "3.5.28" }, "peerDependencies": { "vue": "3.5.28" } }, "sha512-pf+5ECKGj8fX95bNincbzJ6yp6nyzuLDhYZCeFxUNp8EBrQpPpQaLX3nNCp49+UbgbPun3CeVE+5CXVV1Xydfg=="], + + "@vue/shared": ["@vue/shared@3.5.28", "", {}, "sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ=="], + + "@vueuse/core": ["@vueuse/core@12.8.2", "", { "dependencies": { "@types/web-bluetooth": "^0.0.21", "@vueuse/metadata": "12.8.2", "@vueuse/shared": "12.8.2", "vue": "^3.5.13" } }, "sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ=="], + + "@vueuse/integrations": ["@vueuse/integrations@12.8.2", "", { "dependencies": { "@vueuse/core": "12.8.2", "@vueuse/shared": "12.8.2", "vue": "^3.5.13" }, "peerDependencies": { "async-validator": "^4", "axios": "^1", "change-case": "^5", "drauu": "^0.4", "focus-trap": "^7", "fuse.js": "^7", "idb-keyval": "^6", "jwt-decode": "^4", "nprogress": "^0.2", "qrcode": "^1.5", "sortablejs": "^1", "universal-cookie": "^7" }, "optionalPeers": ["async-validator", "axios", "change-case", "drauu", "focus-trap", "fuse.js", "idb-keyval", "jwt-decode", "nprogress", "qrcode", "sortablejs", "universal-cookie"] }, "sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g=="], + + "@vueuse/metadata": ["@vueuse/metadata@12.8.2", "", {}, "sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A=="], + + "@vueuse/shared": ["@vueuse/shared@12.8.2", "", { "dependencies": { "vue": "^3.5.13" } }, "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w=="], + + "algoliasearch": ["algoliasearch@5.48.0", "", { "dependencies": { "@algolia/abtesting": "1.14.0", "@algolia/client-abtesting": "5.48.0", "@algolia/client-analytics": "5.48.0", "@algolia/client-common": "5.48.0", "@algolia/client-insights": "5.48.0", "@algolia/client-personalization": "5.48.0", "@algolia/client-query-suggestions": "5.48.0", "@algolia/client-search": "5.48.0", "@algolia/ingestion": "1.48.0", "@algolia/monitoring": "1.48.0", "@algolia/recommend": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-aD8EQC6KEman6/S79FtPdQmB7D4af/etcRL/KwiKFKgAE62iU8c5PeEQvpvIcBPurC3O/4Lj78nOl7ZcoazqSw=="], + + "birpc": ["birpc@2.9.0", "", {}, "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw=="], + + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + + "copy-anything": ["copy-anything@4.0.5", "", { "dependencies": { "is-what": "^5.2.0" } }, "sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "emoji-regex-xs": ["emoji-regex-xs@1.0.0", "", {}, "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg=="], + + "entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="], + + "esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], + + "estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], + + "focus-trap": ["focus-trap@7.8.0", "", { "dependencies": { "tabbable": "^6.4.0" } }, "sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hookable": ["hookable@5.5.3", "", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="], + + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "is-what": ["is-what@5.5.0", "", {}, "sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "mark.js": ["mark.js@8.11.1", "", {}, "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ=="], + + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + + "minisearch": ["minisearch@7.2.0", "", {}, "sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg=="], + + "mitt": ["mitt@3.0.1", "", {}, "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "oniguruma-to-es": ["oniguruma-to-es@3.1.1", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ=="], + + "perfect-debounce": ["perfect-debounce@1.0.0", "", {}, "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + + "preact": ["preact@10.19.3", "", {}, "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ=="], + + "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="], + + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + + "rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="], + + "rollup": ["rollup@4.57.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A=="], + + "search-insights": ["search-insights@2.13.0", "", {}, "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw=="], + + "shiki": ["shiki@2.5.0", "", { "dependencies": { "@shikijs/core": "2.5.0", "@shikijs/engine-javascript": "2.5.0", "@shikijs/engine-oniguruma": "2.5.0", "@shikijs/langs": "2.5.0", "@shikijs/themes": "2.5.0", "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + + "speakingurl": ["speakingurl@14.0.1", "", {}, "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ=="], + + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + + "superjson": ["superjson@2.2.6", "", { "dependencies": { "copy-anything": "^4" } }, "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA=="], + + "tabbable": ["tabbable@6.4.0", "", {}, "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg=="], + + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + + "vite": ["vite@5.4.21", "", { "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", "rollup": "^4.20.0" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw=="], + + "vitepress": ["vitepress@1.6.4", "", { "dependencies": { "@docsearch/css": "3.8.2", "@docsearch/js": "3.8.2", "@iconify-json/simple-icons": "^1.2.21", "@shikijs/core": "^2.1.0", "@shikijs/transformers": "^2.1.0", "@shikijs/types": "^2.1.0", "@types/markdown-it": "^14.1.2", "@vitejs/plugin-vue": "^5.2.1", "@vue/devtools-api": "^7.7.0", "@vue/shared": "^3.5.13", "@vueuse/core": "^12.4.0", "@vueuse/integrations": "^12.4.0", "focus-trap": "^7.6.4", "mark.js": "8.11.1", "minisearch": "^7.1.1", "shiki": "^2.1.0", "vite": "^5.4.14", "vue": "^3.5.13" }, "peerDependencies": { "markdown-it-mathjax3": "^4", "postcss": "^8" }, "optionalPeers": ["markdown-it-mathjax3", "postcss"], "bin": { "vitepress": "bin/vitepress.js" } }, "sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg=="], + + "vue": ["vue@3.5.28", "", { "dependencies": { "@vue/compiler-dom": "3.5.28", "@vue/compiler-sfc": "3.5.28", "@vue/runtime-dom": "3.5.28", "@vue/server-renderer": "3.5.28", "@vue/shared": "3.5.28" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg=="], + + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + } +} diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json index 3860788..ebebcc6 100644 --- a/docs/.vitepress/cache/deps/_metadata.json +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -1,52 +1,52 @@ { - "hash": "64a640d4", - "configHash": "3539395e", - "lockfileHash": "16b933ee", - "browserHash": "761a6f81", + "hash": "f3a26489", + "configHash": "4a0428f0", + "lockfileHash": "fbe7d3cd", + "browserHash": "8e057cea", "optimized": { "vue": { "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "2232d95d", + "fileHash": "a0185409", "needsInterop": false }, "vitepress > @vue/devtools-api": { - "src": "../../../../node_modules/@vue/devtools-api/lib/esm/index.js", + "src": "../../../../node_modules/@vue/devtools-api/dist/index.js", "file": "vitepress___@vue_devtools-api.js", - "fileHash": "ea18bfc8", + "fileHash": "8ada93ae", "needsInterop": false }, "vitepress > @vueuse/core": { "src": "../../../../node_modules/@vueuse/core/index.mjs", "file": "vitepress___@vueuse_core.js", - "fileHash": "1889f635", + "fileHash": "2d8ce331", "needsInterop": false }, "vitepress > @vueuse/integrations/useFocusTrap": { "src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs", "file": "vitepress___@vueuse_integrations_useFocusTrap.js", - "fileHash": "84f193d7", + "fileHash": "1e108db2", "needsInterop": false }, "vitepress > mark.js/src/vanilla.js": { "src": "../../../../node_modules/mark.js/src/vanilla.js", "file": "vitepress___mark__js_src_vanilla__js.js", - "fileHash": "3dbcfe04", + "fileHash": "2ceafc1e", "needsInterop": false }, "vitepress > minisearch": { "src": "../../../../node_modules/minisearch/dist/es/index.js", "file": "vitepress___minisearch.js", - "fileHash": "5c47da60", + "fileHash": "e70ffd6d", "needsInterop": false } }, "chunks": { - "chunk-WFT6MZEP": { - "file": "chunk-WFT6MZEP.js" + "chunk-A2ZJ3B6G": { + "file": "chunk-A2ZJ3B6G.js" }, - "chunk-3YS4HNIT": { - "file": "chunk-3YS4HNIT.js" + "chunk-SNNOYR6U": { + "file": "chunk-SNNOYR6U.js" } } } \ No newline at end of file diff --git a/docs/.vitepress/cache/deps/chunk-3YS4HNIT.js b/docs/.vitepress/cache/deps/chunk-3YS4HNIT.js deleted file mode 100644 index 84a6f33..0000000 --- a/docs/.vitepress/cache/deps/chunk-3YS4HNIT.js +++ /dev/null @@ -1,11367 +0,0 @@ -// node_modules/@vue/shared/dist/shared.esm-bundler.js -function makeMap(str, expectsLowerCase) { - const set2 = new Set(str.split(",")); - return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val); -} -var EMPTY_OBJ = true ? Object.freeze({}) : {}; -var EMPTY_ARR = true ? Object.freeze([]) : []; -var NOOP = () => { -}; -var NO = () => false; -var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter -(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); -var isModelListener = (key) => key.startsWith("onUpdate:"); -var extend = Object.assign; -var remove = (arr, el) => { - const i = arr.indexOf(el); - if (i > -1) { - arr.splice(i, 1); - } -}; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var hasOwn = (val, key) => hasOwnProperty.call(val, key); -var isArray = Array.isArray; -var isMap = (val) => toTypeString(val) === "[object Map]"; -var isSet = (val) => toTypeString(val) === "[object Set]"; -var isDate = (val) => toTypeString(val) === "[object Date]"; -var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; -var isFunction = (val) => typeof val === "function"; -var isString = (val) => typeof val === "string"; -var isSymbol = (val) => typeof val === "symbol"; -var isObject = (val) => val !== null && typeof val === "object"; -var isPromise = (val) => { - return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); -}; -var objectToString = Object.prototype.toString; -var toTypeString = (value) => objectToString.call(value); -var toRawType = (value) => { - return toTypeString(value).slice(8, -1); -}; -var isPlainObject = (val) => toTypeString(val) === "[object Object]"; -var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; -var isReservedProp = makeMap( - // the leading comma is intentional so empty string "" is also included - ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" -); -var isBuiltInDirective = makeMap( - "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" -); -var cacheStringFunction = (fn) => { - const cache = /* @__PURE__ */ Object.create(null); - return (str) => { - const hit = cache[str]; - return hit || (cache[str] = fn(str)); - }; -}; -var camelizeRE = /-(\w)/g; -var camelize = cacheStringFunction((str) => { - return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); -}); -var hyphenateRE = /\B([A-Z])/g; -var hyphenate = cacheStringFunction( - (str) => str.replace(hyphenateRE, "-$1").toLowerCase() -); -var capitalize = cacheStringFunction((str) => { - return str.charAt(0).toUpperCase() + str.slice(1); -}); -var toHandlerKey = cacheStringFunction((str) => { - const s = str ? `on${capitalize(str)}` : ``; - return s; -}); -var hasChanged = (value, oldValue) => !Object.is(value, oldValue); -var invokeArrayFns = (fns, arg) => { - for (let i = 0; i < fns.length; i++) { - fns[i](arg); - } -}; -var def = (obj, key, value) => { - Object.defineProperty(obj, key, { - configurable: true, - enumerable: false, - value - }); -}; -var looseToNumber = (val) => { - const n = parseFloat(val); - return isNaN(n) ? val : n; -}; -var toNumber = (val) => { - const n = isString(val) ? Number(val) : NaN; - return isNaN(n) ? val : n; -}; -var _globalThis; -var getGlobalThis = () => { - return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); -}; -var GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error"; -var isGloballyAllowed = makeMap(GLOBALS_ALLOWED); -function normalizeStyle(value) { - if (isArray(value)) { - const res = {}; - for (let i = 0; i < value.length; i++) { - const item = value[i]; - const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); - if (normalized) { - for (const key in normalized) { - res[key] = normalized[key]; - } - } - } - return res; - } else if (isString(value) || isObject(value)) { - return value; - } -} -var listDelimiterRE = /;(?![^(]*\))/g; -var propertyDelimiterRE = /:([^]+)/; -var styleCommentRE = /\/\*[^]*?\*\//g; -function parseStringStyle(cssText) { - const ret = {}; - cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { - if (item) { - const tmp = item.split(propertyDelimiterRE); - tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); - } - }); - return ret; -} -function stringifyStyle(styles) { - let ret = ""; - if (!styles || isString(styles)) { - return ret; - } - for (const key in styles) { - const value = styles[key]; - const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); - if (isString(value) || typeof value === "number") { - ret += `${normalizedKey}:${value};`; - } - } - return ret; -} -function normalizeClass(value) { - let res = ""; - if (isString(value)) { - res = value; - } else if (isArray(value)) { - for (let i = 0; i < value.length; i++) { - const normalized = normalizeClass(value[i]); - if (normalized) { - res += normalized + " "; - } - } - } else if (isObject(value)) { - for (const name in value) { - if (value[name]) { - res += name + " "; - } - } - } - return res.trim(); -} -function normalizeProps(props) { - if (!props) - return null; - let { class: klass, style } = props; - if (klass && !isString(klass)) { - props.class = normalizeClass(klass); - } - if (style) { - props.style = normalizeStyle(style); - } - return props; -} -var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; -var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; -var MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; -var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; -var isHTMLTag = makeMap(HTML_TAGS); -var isSVGTag = makeMap(SVG_TAGS); -var isMathMLTag = makeMap(MATH_TAGS); -var isVoidTag = makeMap(VOID_TAGS); -var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; -var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); -var isBooleanAttr = makeMap( - specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` -); -function includeBooleanAttr(value) { - return !!value || value === ""; -} -var isKnownHtmlAttr = makeMap( - `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` -); -var isKnownSvgAttr = makeMap( - `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` -); -function isRenderableAttrValue(value) { - if (value == null) { - return false; - } - const type = typeof value; - return type === "string" || type === "number" || type === "boolean"; -} -function looseCompareArrays(a, b) { - if (a.length !== b.length) - return false; - let equal = true; - for (let i = 0; equal && i < a.length; i++) { - equal = looseEqual(a[i], b[i]); - } - return equal; -} -function looseEqual(a, b) { - if (a === b) - return true; - let aValidType = isDate(a); - let bValidType = isDate(b); - if (aValidType || bValidType) { - return aValidType && bValidType ? a.getTime() === b.getTime() : false; - } - aValidType = isSymbol(a); - bValidType = isSymbol(b); - if (aValidType || bValidType) { - return a === b; - } - aValidType = isArray(a); - bValidType = isArray(b); - if (aValidType || bValidType) { - return aValidType && bValidType ? looseCompareArrays(a, b) : false; - } - aValidType = isObject(a); - bValidType = isObject(b); - if (aValidType || bValidType) { - if (!aValidType || !bValidType) { - return false; - } - const aKeysCount = Object.keys(a).length; - const bKeysCount = Object.keys(b).length; - if (aKeysCount !== bKeysCount) { - return false; - } - for (const key in a) { - const aHasKey = a.hasOwnProperty(key); - const bHasKey = b.hasOwnProperty(key); - if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { - return false; - } - } - } - return String(a) === String(b); -} -function looseIndexOf(arr, val) { - return arr.findIndex((item) => looseEqual(item, val)); -} -var toDisplayString = (val) => { - return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); -}; -var replacer = (_key, val) => { - if (val && val.__v_isRef) { - return replacer(_key, val.value); - } else if (isMap(val)) { - return { - [`Map(${val.size})`]: [...val.entries()].reduce( - (entries, [key, val2], i) => { - entries[stringifySymbol(key, i) + " =>"] = val2; - return entries; - }, - {} - ) - }; - } else if (isSet(val)) { - return { - [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) - }; - } else if (isSymbol(val)) { - return stringifySymbol(val); - } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { - return String(val); - } - return val; -}; -var stringifySymbol = (v, i = "") => { - var _a; - return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v; -}; - -// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js -function warn(msg, ...args) { - console.warn(`[Vue warn] ${msg}`, ...args); -} -var activeEffectScope; -var EffectScope = class { - constructor(detached = false) { - this.detached = detached; - this._active = true; - this.effects = []; - this.cleanups = []; - this.parent = activeEffectScope; - if (!detached && activeEffectScope) { - this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( - this - ) - 1; - } - } - get active() { - return this._active; - } - run(fn) { - if (this._active) { - const currentEffectScope = activeEffectScope; - try { - activeEffectScope = this; - return fn(); - } finally { - activeEffectScope = currentEffectScope; - } - } else if (true) { - warn(`cannot run an inactive effect scope.`); - } - } - /** - * This should only be called on non-detached scopes - * @internal - */ - on() { - activeEffectScope = this; - } - /** - * This should only be called on non-detached scopes - * @internal - */ - off() { - activeEffectScope = this.parent; - } - stop(fromParent) { - if (this._active) { - let i, l; - for (i = 0, l = this.effects.length; i < l; i++) { - this.effects[i].stop(); - } - for (i = 0, l = this.cleanups.length; i < l; i++) { - this.cleanups[i](); - } - if (this.scopes) { - for (i = 0, l = this.scopes.length; i < l; i++) { - this.scopes[i].stop(true); - } - } - if (!this.detached && this.parent && !fromParent) { - const last = this.parent.scopes.pop(); - if (last && last !== this) { - this.parent.scopes[this.index] = last; - last.index = this.index; - } - } - this.parent = void 0; - this._active = false; - } - } -}; -function effectScope(detached) { - return new EffectScope(detached); -} -function recordEffectScope(effect2, scope = activeEffectScope) { - if (scope && scope.active) { - scope.effects.push(effect2); - } -} -function getCurrentScope() { - return activeEffectScope; -} -function onScopeDispose(fn) { - if (activeEffectScope) { - activeEffectScope.cleanups.push(fn); - } else if (true) { - warn( - `onScopeDispose() is called when there is no active effect scope to be associated with.` - ); - } -} -var activeEffect; -var ReactiveEffect = class { - constructor(fn, trigger2, scheduler, scope) { - this.fn = fn; - this.trigger = trigger2; - this.scheduler = scheduler; - this.active = true; - this.deps = []; - this._dirtyLevel = 2; - this._trackId = 0; - this._runnings = 0; - this._shouldSchedule = false; - this._depsLength = 0; - recordEffectScope(this, scope); - } - get dirty() { - if (this._dirtyLevel === 1) { - pauseTracking(); - for (let i = 0; i < this._depsLength; i++) { - const dep = this.deps[i]; - if (dep.computed) { - triggerComputed(dep.computed); - if (this._dirtyLevel >= 2) { - break; - } - } - } - if (this._dirtyLevel < 2) { - this._dirtyLevel = 0; - } - resetTracking(); - } - return this._dirtyLevel >= 2; - } - set dirty(v) { - this._dirtyLevel = v ? 2 : 0; - } - run() { - this._dirtyLevel = 0; - if (!this.active) { - return this.fn(); - } - let lastShouldTrack = shouldTrack; - let lastEffect = activeEffect; - try { - shouldTrack = true; - activeEffect = this; - this._runnings++; - preCleanupEffect(this); - return this.fn(); - } finally { - postCleanupEffect(this); - this._runnings--; - activeEffect = lastEffect; - shouldTrack = lastShouldTrack; - } - } - stop() { - var _a; - if (this.active) { - preCleanupEffect(this); - postCleanupEffect(this); - (_a = this.onStop) == null ? void 0 : _a.call(this); - this.active = false; - } - } -}; -function triggerComputed(computed3) { - return computed3.value; -} -function preCleanupEffect(effect2) { - effect2._trackId++; - effect2._depsLength = 0; -} -function postCleanupEffect(effect2) { - if (effect2.deps && effect2.deps.length > effect2._depsLength) { - for (let i = effect2._depsLength; i < effect2.deps.length; i++) { - cleanupDepEffect(effect2.deps[i], effect2); - } - effect2.deps.length = effect2._depsLength; - } -} -function cleanupDepEffect(dep, effect2) { - const trackId = dep.get(effect2); - if (trackId !== void 0 && effect2._trackId !== trackId) { - dep.delete(effect2); - if (dep.size === 0) { - dep.cleanup(); - } - } -} -function effect(fn, options) { - if (fn.effect instanceof ReactiveEffect) { - fn = fn.effect.fn; - } - const _effect = new ReactiveEffect(fn, NOOP, () => { - if (_effect.dirty) { - _effect.run(); - } - }); - if (options) { - extend(_effect, options); - if (options.scope) - recordEffectScope(_effect, options.scope); - } - if (!options || !options.lazy) { - _effect.run(); - } - const runner = _effect.run.bind(_effect); - runner.effect = _effect; - return runner; -} -function stop(runner) { - runner.effect.stop(); -} -var shouldTrack = true; -var pauseScheduleStack = 0; -var trackStack = []; -function pauseTracking() { - trackStack.push(shouldTrack); - shouldTrack = false; -} -function resetTracking() { - const last = trackStack.pop(); - shouldTrack = last === void 0 ? true : last; -} -function pauseScheduling() { - pauseScheduleStack++; -} -function resetScheduling() { - pauseScheduleStack--; - while (!pauseScheduleStack && queueEffectSchedulers.length) { - queueEffectSchedulers.shift()(); - } -} -function trackEffect(effect2, dep, debuggerEventExtraInfo) { - var _a; - if (dep.get(effect2) !== effect2._trackId) { - dep.set(effect2, effect2._trackId); - const oldDep = effect2.deps[effect2._depsLength]; - if (oldDep !== dep) { - if (oldDep) { - cleanupDepEffect(oldDep, effect2); - } - effect2.deps[effect2._depsLength++] = dep; - } else { - effect2._depsLength++; - } - if (true) { - (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); - } - } -} -var queueEffectSchedulers = []; -function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) { - var _a; - pauseScheduling(); - for (const effect2 of dep.keys()) { - if (effect2._dirtyLevel < dirtyLevel && dep.get(effect2) === effect2._trackId) { - const lastDirtyLevel = effect2._dirtyLevel; - effect2._dirtyLevel = dirtyLevel; - if (lastDirtyLevel === 0) { - effect2._shouldSchedule = true; - if (true) { - (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); - } - effect2.trigger(); - } - } - } - scheduleEffects(dep); - resetScheduling(); -} -function scheduleEffects(dep) { - for (const effect2 of dep.keys()) { - if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse) && dep.get(effect2) === effect2._trackId) { - effect2._shouldSchedule = false; - queueEffectSchedulers.push(effect2.scheduler); - } - } -} -var createDep = (cleanup, computed3) => { - const dep = /* @__PURE__ */ new Map(); - dep.cleanup = cleanup; - dep.computed = computed3; - return dep; -}; -var targetMap = /* @__PURE__ */ new WeakMap(); -var ITERATE_KEY = Symbol(true ? "iterate" : ""); -var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); -function track(target, type, key) { - if (shouldTrack && activeEffect) { - let depsMap = targetMap.get(target); - if (!depsMap) { - targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); - } - let dep = depsMap.get(key); - if (!dep) { - depsMap.set(key, dep = createDep(() => depsMap.delete(key))); - } - trackEffect( - activeEffect, - dep, - true ? { - target, - type, - key - } : void 0 - ); - } -} -function trigger(target, type, key, newValue, oldValue, oldTarget) { - const depsMap = targetMap.get(target); - if (!depsMap) { - return; - } - let deps = []; - if (type === "clear") { - deps = [...depsMap.values()]; - } else if (key === "length" && isArray(target)) { - const newLength = Number(newValue); - depsMap.forEach((dep, key2) => { - if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) { - deps.push(dep); - } - }); - } else { - if (key !== void 0) { - deps.push(depsMap.get(key)); - } - switch (type) { - case "add": - if (!isArray(target)) { - deps.push(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } else if (isIntegerKey(key)) { - deps.push(depsMap.get("length")); - } - break; - case "delete": - if (!isArray(target)) { - deps.push(depsMap.get(ITERATE_KEY)); - if (isMap(target)) { - deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); - } - } - break; - case "set": - if (isMap(target)) { - deps.push(depsMap.get(ITERATE_KEY)); - } - break; - } - } - pauseScheduling(); - for (const dep of deps) { - if (dep) { - triggerEffects( - dep, - 2, - true ? { - target, - type, - key, - newValue, - oldValue, - oldTarget - } : void 0 - ); - } - } - resetScheduling(); -} -function getDepFromReactive(object, key) { - var _a; - return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key); -} -var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); -var builtInSymbols = new Set( - Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) -); -var arrayInstrumentations = createArrayInstrumentations(); -function createArrayInstrumentations() { - const instrumentations = {}; - ["includes", "indexOf", "lastIndexOf"].forEach((key) => { - instrumentations[key] = function(...args) { - const arr = toRaw(this); - for (let i = 0, l = this.length; i < l; i++) { - track(arr, "get", i + ""); - } - const res = arr[key](...args); - if (res === -1 || res === false) { - return arr[key](...args.map(toRaw)); - } else { - return res; - } - }; - }); - ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { - instrumentations[key] = function(...args) { - pauseTracking(); - pauseScheduling(); - const res = toRaw(this)[key].apply(this, args); - resetScheduling(); - resetTracking(); - return res; - }; - }); - return instrumentations; -} -function hasOwnProperty2(key) { - const obj = toRaw(this); - track(obj, "has", key); - return obj.hasOwnProperty(key); -} -var BaseReactiveHandler = class { - constructor(_isReadonly = false, _shallow = false) { - this._isReadonly = _isReadonly; - this._shallow = _shallow; - } - get(target, key, receiver) { - const isReadonly2 = this._isReadonly, shallow = this._shallow; - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_isShallow") { - return shallow; - } else if (key === "__v_raw") { - if (receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype - // this means the reciever is a user proxy of the reactive proxy - Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { - return target; - } - return; - } - const targetIsArray = isArray(target); - if (!isReadonly2) { - if (targetIsArray && hasOwn(arrayInstrumentations, key)) { - return Reflect.get(arrayInstrumentations, key, receiver); - } - if (key === "hasOwnProperty") { - return hasOwnProperty2; - } - } - const res = Reflect.get(target, key, receiver); - if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { - return res; - } - if (!isReadonly2) { - track(target, "get", key); - } - if (shallow) { - return res; - } - if (isRef(res)) { - return targetIsArray && isIntegerKey(key) ? res : res.value; - } - if (isObject(res)) { - return isReadonly2 ? readonly(res) : reactive(res); - } - return res; - } -}; -var MutableReactiveHandler = class extends BaseReactiveHandler { - constructor(shallow = false) { - super(false, shallow); - } - set(target, key, value, receiver) { - let oldValue = target[key]; - if (!this._shallow) { - const isOldValueReadonly = isReadonly(oldValue); - if (!isShallow(value) && !isReadonly(value)) { - oldValue = toRaw(oldValue); - value = toRaw(value); - } - if (!isArray(target) && isRef(oldValue) && !isRef(value)) { - if (isOldValueReadonly) { - return false; - } else { - oldValue.value = value; - return true; - } - } - } - const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); - const result = Reflect.set(target, key, value, receiver); - if (target === toRaw(receiver)) { - if (!hadKey) { - trigger(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set", key, value, oldValue); - } - } - return result; - } - deleteProperty(target, key) { - const hadKey = hasOwn(target, key); - const oldValue = target[key]; - const result = Reflect.deleteProperty(target, key); - if (result && hadKey) { - trigger(target, "delete", key, void 0, oldValue); - } - return result; - } - has(target, key) { - const result = Reflect.has(target, key); - if (!isSymbol(key) || !builtInSymbols.has(key)) { - track(target, "has", key); - } - return result; - } - ownKeys(target) { - track( - target, - "iterate", - isArray(target) ? "length" : ITERATE_KEY - ); - return Reflect.ownKeys(target); - } -}; -var ReadonlyReactiveHandler = class extends BaseReactiveHandler { - constructor(shallow = false) { - super(true, shallow); - } - set(target, key) { - if (true) { - warn( - `Set operation on key "${String(key)}" failed: target is readonly.`, - target - ); - } - return true; - } - deleteProperty(target, key) { - if (true) { - warn( - `Delete operation on key "${String(key)}" failed: target is readonly.`, - target - ); - } - return true; - } -}; -var mutableHandlers = new MutableReactiveHandler(); -var readonlyHandlers = new ReadonlyReactiveHandler(); -var shallowReactiveHandlers = new MutableReactiveHandler( - true -); -var shallowReadonlyHandlers = new ReadonlyReactiveHandler(true); -var toShallow = (value) => value; -var getProto = (v) => Reflect.getPrototypeOf(v); -function get(target, key, isReadonly2 = false, isShallow3 = false) { - target = target["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!isReadonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "get", key); - } - track(rawTarget, "get", rawKey); - } - const { has: has2 } = getProto(rawTarget); - const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; - if (has2.call(rawTarget, key)) { - return wrap(target.get(key)); - } else if (has2.call(rawTarget, rawKey)) { - return wrap(target.get(rawKey)); - } else if (target !== rawTarget) { - target.get(key); - } -} -function has(key, isReadonly2 = false) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const rawKey = toRaw(key); - if (!isReadonly2) { - if (hasChanged(key, rawKey)) { - track(rawTarget, "has", key); - } - track(rawTarget, "has", rawKey); - } - return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); -} -function size(target, isReadonly2 = false) { - target = target["__v_raw"]; - !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); - return Reflect.get(target, "size", target); -} -function add(value) { - value = toRaw(value); - const target = toRaw(this); - const proto = getProto(target); - const hadKey = proto.has.call(target, value); - if (!hadKey) { - target.add(value); - trigger(target, "add", value, value); - } - return this; -} -function set(key, value) { - value = toRaw(value); - const target = toRaw(this); - const { has: has2, get: get2 } = getProto(target); - let hadKey = has2.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has2.call(target, key); - } else if (true) { - checkIdentityKeys(target, has2, key); - } - const oldValue = get2.call(target, key); - target.set(key, value); - if (!hadKey) { - trigger(target, "add", key, value); - } else if (hasChanged(value, oldValue)) { - trigger(target, "set", key, value, oldValue); - } - return this; -} -function deleteEntry(key) { - const target = toRaw(this); - const { has: has2, get: get2 } = getProto(target); - let hadKey = has2.call(target, key); - if (!hadKey) { - key = toRaw(key); - hadKey = has2.call(target, key); - } else if (true) { - checkIdentityKeys(target, has2, key); - } - const oldValue = get2 ? get2.call(target, key) : void 0; - const result = target.delete(key); - if (hadKey) { - trigger(target, "delete", key, void 0, oldValue); - } - return result; -} -function clear() { - const target = toRaw(this); - const hadItems = target.size !== 0; - const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; - const result = target.clear(); - if (hadItems) { - trigger(target, "clear", void 0, void 0, oldTarget); - } - return result; -} -function createForEach(isReadonly2, isShallow3) { - return function forEach(callback, thisArg) { - const observed = this; - const target = observed["__v_raw"]; - const rawTarget = toRaw(target); - const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; - !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); - return target.forEach((value, key) => { - return callback.call(thisArg, wrap(value), wrap(key), observed); - }); - }; -} -function createIterableMethod(method, isReadonly2, isShallow3) { - return function(...args) { - const target = this["__v_raw"]; - const rawTarget = toRaw(target); - const targetIsMap = isMap(rawTarget); - const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; - const isKeyOnly = method === "keys" && targetIsMap; - const innerIterator = target[method](...args); - const wrap = isShallow3 ? toShallow : isReadonly2 ? toReadonly : toReactive; - !isReadonly2 && track( - rawTarget, - "iterate", - isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY - ); - return { - // iterator protocol - next() { - const { value, done } = innerIterator.next(); - return done ? { value, done } : { - value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), - done - }; - }, - // iterable protocol - [Symbol.iterator]() { - return this; - } - }; - }; -} -function createReadonlyMethod(type) { - return function(...args) { - if (true) { - const key = args[0] ? `on key "${args[0]}" ` : ``; - console.warn( - `${capitalize(type)} operation ${key}failed: target is readonly.`, - toRaw(this) - ); - } - return type === "delete" ? false : type === "clear" ? void 0 : this; - }; -} -function createInstrumentations() { - const mutableInstrumentations2 = { - get(key) { - return get(this, key); - }, - get size() { - return size(this); - }, - has, - add, - set, - delete: deleteEntry, - clear, - forEach: createForEach(false, false) - }; - const shallowInstrumentations2 = { - get(key) { - return get(this, key, false, true); - }, - get size() { - return size(this); - }, - has, - add, - set, - delete: deleteEntry, - clear, - forEach: createForEach(false, true) - }; - const readonlyInstrumentations2 = { - get(key) { - return get(this, key, true); - }, - get size() { - return size(this, true); - }, - has(key) { - return has.call(this, key, true); - }, - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear"), - forEach: createForEach(true, false) - }; - const shallowReadonlyInstrumentations2 = { - get(key) { - return get(this, key, true, true); - }, - get size() { - return size(this, true); - }, - has(key) { - return has.call(this, key, true); - }, - add: createReadonlyMethod("add"), - set: createReadonlyMethod("set"), - delete: createReadonlyMethod("delete"), - clear: createReadonlyMethod("clear"), - forEach: createForEach(true, true) - }; - const iteratorMethods = ["keys", "values", "entries", Symbol.iterator]; - iteratorMethods.forEach((method) => { - mutableInstrumentations2[method] = createIterableMethod( - method, - false, - false - ); - readonlyInstrumentations2[method] = createIterableMethod( - method, - true, - false - ); - shallowInstrumentations2[method] = createIterableMethod( - method, - false, - true - ); - shallowReadonlyInstrumentations2[method] = createIterableMethod( - method, - true, - true - ); - }); - return [ - mutableInstrumentations2, - readonlyInstrumentations2, - shallowInstrumentations2, - shallowReadonlyInstrumentations2 - ]; -} -var [ - mutableInstrumentations, - readonlyInstrumentations, - shallowInstrumentations, - shallowReadonlyInstrumentations -] = createInstrumentations(); -function createInstrumentationGetter(isReadonly2, shallow) { - const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; - return (target, key, receiver) => { - if (key === "__v_isReactive") { - return !isReadonly2; - } else if (key === "__v_isReadonly") { - return isReadonly2; - } else if (key === "__v_raw") { - return target; - } - return Reflect.get( - hasOwn(instrumentations, key) && key in target ? instrumentations : target, - key, - receiver - ); - }; -} -var mutableCollectionHandlers = { - get: createInstrumentationGetter(false, false) -}; -var shallowCollectionHandlers = { - get: createInstrumentationGetter(false, true) -}; -var readonlyCollectionHandlers = { - get: createInstrumentationGetter(true, false) -}; -var shallowReadonlyCollectionHandlers = { - get: createInstrumentationGetter(true, true) -}; -function checkIdentityKeys(target, has2, key) { - const rawKey = toRaw(key); - if (rawKey !== key && has2.call(target, rawKey)) { - const type = toRawType(target); - console.warn( - `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` - ); - } -} -var reactiveMap = /* @__PURE__ */ new WeakMap(); -var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); -var readonlyMap = /* @__PURE__ */ new WeakMap(); -var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); -function targetTypeMap(rawType) { - switch (rawType) { - case "Object": - case "Array": - return 1; - case "Map": - case "Set": - case "WeakMap": - case "WeakSet": - return 2; - default: - return 0; - } -} -function getTargetType(value) { - return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); -} -function reactive(target) { - if (isReadonly(target)) { - return target; - } - return createReactiveObject( - target, - false, - mutableHandlers, - mutableCollectionHandlers, - reactiveMap - ); -} -function shallowReactive(target) { - return createReactiveObject( - target, - false, - shallowReactiveHandlers, - shallowCollectionHandlers, - shallowReactiveMap - ); -} -function readonly(target) { - return createReactiveObject( - target, - true, - readonlyHandlers, - readonlyCollectionHandlers, - readonlyMap - ); -} -function shallowReadonly(target) { - return createReactiveObject( - target, - true, - shallowReadonlyHandlers, - shallowReadonlyCollectionHandlers, - shallowReadonlyMap - ); -} -function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { - if (!isObject(target)) { - if (true) { - console.warn(`value cannot be made reactive: ${String(target)}`); - } - return target; - } - if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { - return target; - } - const existingProxy = proxyMap.get(target); - if (existingProxy) { - return existingProxy; - } - const targetType = getTargetType(target); - if (targetType === 0) { - return target; - } - const proxy = new Proxy( - target, - targetType === 2 ? collectionHandlers : baseHandlers - ); - proxyMap.set(target, proxy); - return proxy; -} -function isReactive(value) { - if (isReadonly(value)) { - return isReactive(value["__v_raw"]); - } - return !!(value && value["__v_isReactive"]); -} -function isReadonly(value) { - return !!(value && value["__v_isReadonly"]); -} -function isShallow(value) { - return !!(value && value["__v_isShallow"]); -} -function isProxy(value) { - return isReactive(value) || isReadonly(value); -} -function toRaw(observed) { - const raw = observed && observed["__v_raw"]; - return raw ? toRaw(raw) : observed; -} -function markRaw(value) { - def(value, "__v_skip", true); - return value; -} -var toReactive = (value) => isObject(value) ? reactive(value) : value; -var toReadonly = (value) => isObject(value) ? readonly(value) : value; -var ComputedRefImpl = class { - constructor(getter, _setter, isReadonly2, isSSR) { - this._setter = _setter; - this.dep = void 0; - this.__v_isRef = true; - this["__v_isReadonly"] = false; - this.effect = new ReactiveEffect( - () => getter(this._value), - () => triggerRefValue(this, 1), - () => this.dep && scheduleEffects(this.dep) - ); - this.effect.computed = this; - this.effect.active = this._cacheable = !isSSR; - this["__v_isReadonly"] = isReadonly2; - } - get value() { - const self2 = toRaw(this); - if (!self2._cacheable || self2.effect.dirty) { - if (hasChanged(self2._value, self2._value = self2.effect.run())) { - triggerRefValue(self2, 2); - } - } - trackRefValue(self2); - if (self2.effect._dirtyLevel >= 1) { - triggerRefValue(self2, 1); - } - return self2._value; - } - set value(newValue) { - this._setter(newValue); - } - // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x - get _dirty() { - return this.effect.dirty; - } - set _dirty(v) { - this.effect.dirty = v; - } - // #endregion -}; -function computed(getterOrOptions, debugOptions, isSSR = false) { - let getter; - let setter; - const onlyGetter = isFunction(getterOrOptions); - if (onlyGetter) { - getter = getterOrOptions; - setter = true ? () => { - console.warn("Write operation failed: computed value is readonly"); - } : NOOP; - } else { - getter = getterOrOptions.get; - setter = getterOrOptions.set; - } - const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); - if (debugOptions && !isSSR) { - cRef.effect.onTrack = debugOptions.onTrack; - cRef.effect.onTrigger = debugOptions.onTrigger; - } - return cRef; -} -function trackRefValue(ref2) { - if (shouldTrack && activeEffect) { - ref2 = toRaw(ref2); - trackEffect( - activeEffect, - ref2.dep || (ref2.dep = createDep( - () => ref2.dep = void 0, - ref2 instanceof ComputedRefImpl ? ref2 : void 0 - )), - true ? { - target: ref2, - type: "get", - key: "value" - } : void 0 - ); - } -} -function triggerRefValue(ref2, dirtyLevel = 2, newVal) { - ref2 = toRaw(ref2); - const dep = ref2.dep; - if (dep) { - triggerEffects( - dep, - dirtyLevel, - true ? { - target: ref2, - type: "set", - key: "value", - newValue: newVal - } : void 0 - ); - } -} -function isRef(r) { - return !!(r && r.__v_isRef === true); -} -function ref(value) { - return createRef(value, false); -} -function shallowRef(value) { - return createRef(value, true); -} -function createRef(rawValue, shallow) { - if (isRef(rawValue)) { - return rawValue; - } - return new RefImpl(rawValue, shallow); -} -var RefImpl = class { - constructor(value, __v_isShallow) { - this.__v_isShallow = __v_isShallow; - this.dep = void 0; - this.__v_isRef = true; - this._rawValue = __v_isShallow ? value : toRaw(value); - this._value = __v_isShallow ? value : toReactive(value); - } - get value() { - trackRefValue(this); - return this._value; - } - set value(newVal) { - const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); - newVal = useDirectValue ? newVal : toRaw(newVal); - if (hasChanged(newVal, this._rawValue)) { - this._rawValue = newVal; - this._value = useDirectValue ? newVal : toReactive(newVal); - triggerRefValue(this, 2, newVal); - } - } -}; -function triggerRef(ref2) { - triggerRefValue(ref2, 2, true ? ref2.value : void 0); -} -function unref(ref2) { - return isRef(ref2) ? ref2.value : ref2; -} -function toValue(source) { - return isFunction(source) ? source() : unref(source); -} -var shallowUnwrapHandlers = { - get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), - set: (target, key, value, receiver) => { - const oldValue = target[key]; - if (isRef(oldValue) && !isRef(value)) { - oldValue.value = value; - return true; - } else { - return Reflect.set(target, key, value, receiver); - } - } -}; -function proxyRefs(objectWithRefs) { - return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); -} -var CustomRefImpl = class { - constructor(factory) { - this.dep = void 0; - this.__v_isRef = true; - const { get: get2, set: set2 } = factory( - () => trackRefValue(this), - () => triggerRefValue(this) - ); - this._get = get2; - this._set = set2; - } - get value() { - return this._get(); - } - set value(newVal) { - this._set(newVal); - } -}; -function customRef(factory) { - return new CustomRefImpl(factory); -} -function toRefs(object) { - if (!isProxy(object)) { - console.warn(`toRefs() expects a reactive object but received a plain one.`); - } - const ret = isArray(object) ? new Array(object.length) : {}; - for (const key in object) { - ret[key] = propertyToRef(object, key); - } - return ret; -} -var ObjectRefImpl = class { - constructor(_object, _key, _defaultValue) { - this._object = _object; - this._key = _key; - this._defaultValue = _defaultValue; - this.__v_isRef = true; - } - get value() { - const val = this._object[this._key]; - return val === void 0 ? this._defaultValue : val; - } - set value(newVal) { - this._object[this._key] = newVal; - } - get dep() { - return getDepFromReactive(toRaw(this._object), this._key); - } -}; -var GetterRefImpl = class { - constructor(_getter) { - this._getter = _getter; - this.__v_isRef = true; - this.__v_isReadonly = true; - } - get value() { - return this._getter(); - } -}; -function toRef(source, key, defaultValue) { - if (isRef(source)) { - return source; - } else if (isFunction(source)) { - return new GetterRefImpl(source); - } else if (isObject(source) && arguments.length > 1) { - return propertyToRef(source, key, defaultValue); - } else { - return ref(source); - } -} -function propertyToRef(source, key, defaultValue) { - const val = source[key]; - return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); -} -var TrackOpTypes = { - "GET": "get", - "HAS": "has", - "ITERATE": "iterate" -}; -var TriggerOpTypes = { - "SET": "set", - "ADD": "add", - "DELETE": "delete", - "CLEAR": "clear" -}; - -// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js -var stack = []; -function pushWarningContext(vnode) { - stack.push(vnode); -} -function popWarningContext() { - stack.pop(); -} -function warn$1(msg, ...args) { - pauseTracking(); - const instance = stack.length ? stack[stack.length - 1].component : null; - const appWarnHandler = instance && instance.appContext.config.warnHandler; - const trace = getComponentTrace(); - if (appWarnHandler) { - callWithErrorHandling( - appWarnHandler, - instance, - 11, - [ - msg + args.join(""), - instance && instance.proxy, - trace.map( - ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` - ).join("\n"), - trace - ] - ); - } else { - const warnArgs = [`[Vue warn]: ${msg}`, ...args]; - if (trace.length && // avoid spamming console during tests - true) { - warnArgs.push(` -`, ...formatTrace(trace)); - } - console.warn(...warnArgs); - } - resetTracking(); -} -function getComponentTrace() { - let currentVNode = stack[stack.length - 1]; - if (!currentVNode) { - return []; - } - const normalizedStack = []; - while (currentVNode) { - const last = normalizedStack[0]; - if (last && last.vnode === currentVNode) { - last.recurseCount++; - } else { - normalizedStack.push({ - vnode: currentVNode, - recurseCount: 0 - }); - } - const parentInstance = currentVNode.component && currentVNode.component.parent; - currentVNode = parentInstance && parentInstance.vnode; - } - return normalizedStack; -} -function formatTrace(trace) { - const logs = []; - trace.forEach((entry, i) => { - logs.push(...i === 0 ? [] : [` -`], ...formatTraceEntry(entry)); - }); - return logs; -} -function formatTraceEntry({ vnode, recurseCount }) { - const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; - const isRoot = vnode.component ? vnode.component.parent == null : false; - const open = ` at <${formatComponentName( - vnode.component, - vnode.type, - isRoot - )}`; - const close = `>` + postfix; - return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; -} -function formatProps(props) { - const res = []; - const keys = Object.keys(props); - keys.slice(0, 3).forEach((key) => { - res.push(...formatProp(key, props[key])); - }); - if (keys.length > 3) { - res.push(` ...`); - } - return res; -} -function formatProp(key, value, raw) { - if (isString(value)) { - value = JSON.stringify(value); - return raw ? value : [`${key}=${value}`]; - } else if (typeof value === "number" || typeof value === "boolean" || value == null) { - return raw ? value : [`${key}=${value}`]; - } else if (isRef(value)) { - value = formatProp(key, toRaw(value.value), true); - return raw ? value : [`${key}=Ref<`, value, `>`]; - } else if (isFunction(value)) { - return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; - } else { - value = toRaw(value); - return raw ? value : [`${key}=`, value]; - } -} -function assertNumber(val, type) { - if (false) - return; - if (val === void 0) { - return; - } else if (typeof val !== "number") { - warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); - } else if (isNaN(val)) { - warn$1(`${type} is NaN - the duration expression might be incorrect.`); - } -} -var ErrorCodes = { - "SETUP_FUNCTION": 0, - "0": "SETUP_FUNCTION", - "RENDER_FUNCTION": 1, - "1": "RENDER_FUNCTION", - "WATCH_GETTER": 2, - "2": "WATCH_GETTER", - "WATCH_CALLBACK": 3, - "3": "WATCH_CALLBACK", - "WATCH_CLEANUP": 4, - "4": "WATCH_CLEANUP", - "NATIVE_EVENT_HANDLER": 5, - "5": "NATIVE_EVENT_HANDLER", - "COMPONENT_EVENT_HANDLER": 6, - "6": "COMPONENT_EVENT_HANDLER", - "VNODE_HOOK": 7, - "7": "VNODE_HOOK", - "DIRECTIVE_HOOK": 8, - "8": "DIRECTIVE_HOOK", - "TRANSITION_HOOK": 9, - "9": "TRANSITION_HOOK", - "APP_ERROR_HANDLER": 10, - "10": "APP_ERROR_HANDLER", - "APP_WARN_HANDLER": 11, - "11": "APP_WARN_HANDLER", - "FUNCTION_REF": 12, - "12": "FUNCTION_REF", - "ASYNC_COMPONENT_LOADER": 13, - "13": "ASYNC_COMPONENT_LOADER", - "SCHEDULER": 14, - "14": "SCHEDULER" -}; -var ErrorTypeStrings$1 = { - ["sp"]: "serverPrefetch hook", - ["bc"]: "beforeCreate hook", - ["c"]: "created hook", - ["bm"]: "beforeMount hook", - ["m"]: "mounted hook", - ["bu"]: "beforeUpdate hook", - ["u"]: "updated", - ["bum"]: "beforeUnmount hook", - ["um"]: "unmounted hook", - ["a"]: "activated hook", - ["da"]: "deactivated hook", - ["ec"]: "errorCaptured hook", - ["rtc"]: "renderTracked hook", - ["rtg"]: "renderTriggered hook", - [0]: "setup function", - [1]: "render function", - [2]: "watcher getter", - [3]: "watcher callback", - [4]: "watcher cleanup function", - [5]: "native event handler", - [6]: "component event handler", - [7]: "vnode hook", - [8]: "directive hook", - [9]: "transition hook", - [10]: "app errorHandler", - [11]: "app warnHandler", - [12]: "ref function", - [13]: "async component loader", - [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ." -}; -function callWithErrorHandling(fn, instance, type, args) { - let res; - try { - res = args ? fn(...args) : fn(); - } catch (err) { - handleError(err, instance, type); - } - return res; -} -function callWithAsyncErrorHandling(fn, instance, type, args) { - if (isFunction(fn)) { - const res = callWithErrorHandling(fn, instance, type, args); - if (res && isPromise(res)) { - res.catch((err) => { - handleError(err, instance, type); - }); - } - return res; - } - const values = []; - for (let i = 0; i < fn.length; i++) { - values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); - } - return values; -} -function handleError(err, instance, type, throwInDev = true) { - const contextVNode = instance ? instance.vnode : null; - if (instance) { - let cur = instance.parent; - const exposedInstance = instance.proxy; - const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; - while (cur) { - const errorCapturedHooks = cur.ec; - if (errorCapturedHooks) { - for (let i = 0; i < errorCapturedHooks.length; i++) { - if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { - return; - } - } - } - cur = cur.parent; - } - const appErrorHandler = instance.appContext.config.errorHandler; - if (appErrorHandler) { - callWithErrorHandling( - appErrorHandler, - null, - 10, - [err, exposedInstance, errorInfo] - ); - return; - } - } - logError(err, type, contextVNode, throwInDev); -} -function logError(err, type, contextVNode, throwInDev = true) { - if (true) { - const info = ErrorTypeStrings$1[type]; - if (contextVNode) { - pushWarningContext(contextVNode); - } - warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); - if (contextVNode) { - popWarningContext(); - } - if (throwInDev) { - throw err; - } else { - console.error(err); - } - } else { - console.error(err); - } -} -var isFlushing = false; -var isFlushPending = false; -var queue = []; -var flushIndex = 0; -var pendingPostFlushCbs = []; -var activePostFlushCbs = null; -var postFlushIndex = 0; -var resolvedPromise = Promise.resolve(); -var currentFlushPromise = null; -var RECURSION_LIMIT = 100; -function nextTick(fn) { - const p2 = currentFlushPromise || resolvedPromise; - return fn ? p2.then(this ? fn.bind(this) : fn) : p2; -} -function findInsertionIndex(id) { - let start = flushIndex + 1; - let end = queue.length; - while (start < end) { - const middle = start + end >>> 1; - const middleJob = queue[middle]; - const middleJobId = getId(middleJob); - if (middleJobId < id || middleJobId === id && middleJob.pre) { - start = middle + 1; - } else { - end = middle; - } - } - return start; -} -function queueJob(job) { - if (!queue.length || !queue.includes( - job, - isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex - )) { - if (job.id == null) { - queue.push(job); - } else { - queue.splice(findInsertionIndex(job.id), 0, job); - } - queueFlush(); - } -} -function queueFlush() { - if (!isFlushing && !isFlushPending) { - isFlushPending = true; - currentFlushPromise = resolvedPromise.then(flushJobs); - } -} -function invalidateJob(job) { - const i = queue.indexOf(job); - if (i > flushIndex) { - queue.splice(i, 1); - } -} -function queuePostFlushCb(cb) { - if (!isArray(cb)) { - if (!activePostFlushCbs || !activePostFlushCbs.includes( - cb, - cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex - )) { - pendingPostFlushCbs.push(cb); - } - } else { - pendingPostFlushCbs.push(...cb); - } - queueFlush(); -} -function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) { - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - for (; i < queue.length; i++) { - const cb = queue[i]; - if (cb && cb.pre) { - if (instance && cb.id !== instance.uid) { - continue; - } - if (checkRecursiveUpdates(seen, cb)) { - continue; - } - queue.splice(i, 1); - i--; - cb(); - } - } -} -function flushPostFlushCbs(seen) { - if (pendingPostFlushCbs.length) { - const deduped = [...new Set(pendingPostFlushCbs)].sort( - (a, b) => getId(a) - getId(b) - ); - pendingPostFlushCbs.length = 0; - if (activePostFlushCbs) { - activePostFlushCbs.push(...deduped); - return; - } - activePostFlushCbs = deduped; - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { - if (checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) { - continue; - } - activePostFlushCbs[postFlushIndex](); - } - activePostFlushCbs = null; - postFlushIndex = 0; - } -} -var getId = (job) => job.id == null ? Infinity : job.id; -var comparator = (a, b) => { - const diff = getId(a) - getId(b); - if (diff === 0) { - if (a.pre && !b.pre) - return -1; - if (b.pre && !a.pre) - return 1; - } - return diff; -}; -function flushJobs(seen) { - isFlushPending = false; - isFlushing = true; - if (true) { - seen = seen || /* @__PURE__ */ new Map(); - } - queue.sort(comparator); - const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; - try { - for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { - const job = queue[flushIndex]; - if (job && job.active !== false) { - if (check(job)) { - continue; - } - callWithErrorHandling(job, null, 14); - } - } - } finally { - flushIndex = 0; - queue.length = 0; - flushPostFlushCbs(seen); - isFlushing = false; - currentFlushPromise = null; - if (queue.length || pendingPostFlushCbs.length) { - flushJobs(seen); - } - } -} -function checkRecursiveUpdates(seen, fn) { - if (!seen.has(fn)) { - seen.set(fn, 1); - } else { - const count = seen.get(fn); - if (count > RECURSION_LIMIT) { - const instance = fn.ownerInstance; - const componentName = instance && getComponentName(instance.type); - handleError( - `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, - null, - 10 - ); - return true; - } else { - seen.set(fn, count + 1); - } - } -} -var isHmrUpdating = false; -var hmrDirtyComponents = /* @__PURE__ */ new Set(); -if (true) { - getGlobalThis().__VUE_HMR_RUNTIME__ = { - createRecord: tryWrap(createRecord), - rerender: tryWrap(rerender), - reload: tryWrap(reload) - }; -} -var map = /* @__PURE__ */ new Map(); -function registerHMR(instance) { - const id = instance.type.__hmrId; - let record = map.get(id); - if (!record) { - createRecord(id, instance.type); - record = map.get(id); - } - record.instances.add(instance); -} -function unregisterHMR(instance) { - map.get(instance.type.__hmrId).instances.delete(instance); -} -function createRecord(id, initialDef) { - if (map.has(id)) { - return false; - } - map.set(id, { - initialDef: normalizeClassComponent(initialDef), - instances: /* @__PURE__ */ new Set() - }); - return true; -} -function normalizeClassComponent(component) { - return isClassComponent(component) ? component.__vccOpts : component; -} -function rerender(id, newRender) { - const record = map.get(id); - if (!record) { - return; - } - record.initialDef.render = newRender; - [...record.instances].forEach((instance) => { - if (newRender) { - instance.render = newRender; - normalizeClassComponent(instance.type).render = newRender; - } - instance.renderCache = []; - isHmrUpdating = true; - instance.effect.dirty = true; - instance.update(); - isHmrUpdating = false; - }); -} -function reload(id, newComp) { - const record = map.get(id); - if (!record) - return; - newComp = normalizeClassComponent(newComp); - updateComponentDef(record.initialDef, newComp); - const instances = [...record.instances]; - for (const instance of instances) { - const oldComp = normalizeClassComponent(instance.type); - if (!hmrDirtyComponents.has(oldComp)) { - if (oldComp !== record.initialDef) { - updateComponentDef(oldComp, newComp); - } - hmrDirtyComponents.add(oldComp); - } - instance.appContext.propsCache.delete(instance.type); - instance.appContext.emitsCache.delete(instance.type); - instance.appContext.optionsCache.delete(instance.type); - if (instance.ceReload) { - hmrDirtyComponents.add(oldComp); - instance.ceReload(newComp.styles); - hmrDirtyComponents.delete(oldComp); - } else if (instance.parent) { - instance.parent.effect.dirty = true; - queueJob(instance.parent.update); - } else if (instance.appContext.reload) { - instance.appContext.reload(); - } else if (typeof window !== "undefined") { - window.location.reload(); - } else { - console.warn( - "[HMR] Root or manually mounted instance modified. Full reload required." - ); - } - } - queuePostFlushCb(() => { - for (const instance of instances) { - hmrDirtyComponents.delete( - normalizeClassComponent(instance.type) - ); - } - }); -} -function updateComponentDef(oldComp, newComp) { - extend(oldComp, newComp); - for (const key in oldComp) { - if (key !== "__file" && !(key in newComp)) { - delete oldComp[key]; - } - } -} -function tryWrap(fn) { - return (id, arg) => { - try { - return fn(id, arg); - } catch (e) { - console.error(e); - console.warn( - `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` - ); - } - }; -} -var devtools$1; -var buffer = []; -var devtoolsNotInstalled = false; -function emit$1(event, ...args) { - if (devtools$1) { - devtools$1.emit(event, ...args); - } else if (!devtoolsNotInstalled) { - buffer.push({ event, args }); - } -} -function setDevtoolsHook$1(hook, target) { - var _a, _b; - devtools$1 = hook; - if (devtools$1) { - devtools$1.enabled = true; - buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); - buffer = []; - } else if ( - // handle late devtools injection - only do this if we are in an actual - // browser environment to avoid the timer handle stalling test runner exit - // (#4815) - typeof window !== "undefined" && // some envs mock window but not fully - window.HTMLElement && // also exclude jsdom - !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) - ) { - const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; - replay.push((newHook) => { - setDevtoolsHook$1(newHook, target); - }); - setTimeout(() => { - if (!devtools$1) { - target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; - devtoolsNotInstalled = true; - buffer = []; - } - }, 3e3); - } else { - devtoolsNotInstalled = true; - buffer = []; - } -} -function devtoolsInitApp(app, version2) { - emit$1("app:init", app, version2, { - Fragment, - Text, - Comment, - Static - }); -} -function devtoolsUnmountApp(app) { - emit$1("app:unmount", app); -} -var devtoolsComponentAdded = createDevtoolsComponentHook( - "component:added" - /* COMPONENT_ADDED */ -); -var devtoolsComponentUpdated = createDevtoolsComponentHook( - "component:updated" - /* COMPONENT_UPDATED */ -); -var _devtoolsComponentRemoved = createDevtoolsComponentHook( - "component:removed" - /* COMPONENT_REMOVED */ -); -var devtoolsComponentRemoved = (component) => { - if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered - !devtools$1.cleanupBuffer(component)) { - _devtoolsComponentRemoved(component); - } -}; -function createDevtoolsComponentHook(hook) { - return (component) => { - emit$1( - hook, - component.appContext.app, - component.uid, - component.parent ? component.parent.uid : void 0, - component - ); - }; -} -var devtoolsPerfStart = createDevtoolsPerformanceHook( - "perf:start" - /* PERFORMANCE_START */ -); -var devtoolsPerfEnd = createDevtoolsPerformanceHook( - "perf:end" - /* PERFORMANCE_END */ -); -function createDevtoolsPerformanceHook(hook) { - return (component, type, time) => { - emit$1(hook, component.appContext.app, component.uid, component, type, time); - }; -} -function devtoolsComponentEmit(component, event, params) { - emit$1( - "component:emit", - component.appContext.app, - component, - event, - params - ); -} -function emit(instance, event, ...rawArgs) { - if (instance.isUnmounted) - return; - const props = instance.vnode.props || EMPTY_OBJ; - if (true) { - const { - emitsOptions, - propsOptions: [propsOptions] - } = instance; - if (emitsOptions) { - if (!(event in emitsOptions) && true) { - if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { - warn$1( - `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` - ); - } - } else { - const validator = emitsOptions[event]; - if (isFunction(validator)) { - const isValid = validator(...rawArgs); - if (!isValid) { - warn$1( - `Invalid event arguments: event validation failed for event "${event}".` - ); - } - } - } - } - } - let args = rawArgs; - const isModelListener2 = event.startsWith("update:"); - const modelArg = isModelListener2 && event.slice(7); - if (modelArg && modelArg in props) { - const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; - const { number, trim } = props[modifiersKey] || EMPTY_OBJ; - if (trim) { - args = rawArgs.map((a) => isString(a) ? a.trim() : a); - } - if (number) { - args = rawArgs.map(looseToNumber); - } - } - if (true) { - devtoolsComponentEmit(instance, event, args); - } - if (true) { - const lowerCaseEvent = event.toLowerCase(); - if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { - warn$1( - `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( - instance, - instance.type - )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( - event - )}" instead of "${event}".` - ); - } - } - let handlerName; - let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) - props[handlerName = toHandlerKey(camelize(event))]; - if (!handler && isModelListener2) { - handler = props[handlerName = toHandlerKey(hyphenate(event))]; - } - if (handler) { - callWithAsyncErrorHandling( - handler, - instance, - 6, - args - ); - } - const onceHandler = props[handlerName + `Once`]; - if (onceHandler) { - if (!instance.emitted) { - instance.emitted = {}; - } else if (instance.emitted[handlerName]) { - return; - } - instance.emitted[handlerName] = true; - callWithAsyncErrorHandling( - onceHandler, - instance, - 6, - args - ); - } -} -function normalizeEmitsOptions(comp, appContext, asMixin = false) { - const cache = appContext.emitsCache; - const cached = cache.get(comp); - if (cached !== void 0) { - return cached; - } - const raw = comp.emits; - let normalized = {}; - let hasExtends = false; - if (__VUE_OPTIONS_API__ && !isFunction(comp)) { - const extendEmits = (raw2) => { - const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); - if (normalizedFromExtend) { - hasExtends = true; - extend(normalized, normalizedFromExtend); - } - }; - if (!asMixin && appContext.mixins.length) { - appContext.mixins.forEach(extendEmits); - } - if (comp.extends) { - extendEmits(comp.extends); - } - if (comp.mixins) { - comp.mixins.forEach(extendEmits); - } - } - if (!raw && !hasExtends) { - if (isObject(comp)) { - cache.set(comp, null); - } - return null; - } - if (isArray(raw)) { - raw.forEach((key) => normalized[key] = null); - } else { - extend(normalized, raw); - } - if (isObject(comp)) { - cache.set(comp, normalized); - } - return normalized; -} -function isEmitListener(options, key) { - if (!options || !isOn(key)) { - return false; - } - key = key.slice(2).replace(/Once$/, ""); - return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); -} -var currentRenderingInstance = null; -var currentScopeId = null; -function setCurrentRenderingInstance(instance) { - const prev = currentRenderingInstance; - currentRenderingInstance = instance; - currentScopeId = instance && instance.type.__scopeId || null; - return prev; -} -function pushScopeId(id) { - currentScopeId = id; -} -function popScopeId() { - currentScopeId = null; -} -var withScopeId = (_id) => withCtx; -function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { - if (!ctx) - return fn; - if (fn._n) { - return fn; - } - const renderFnWithContext = (...args) => { - if (renderFnWithContext._d) { - setBlockTracking(-1); - } - const prevInstance = setCurrentRenderingInstance(ctx); - let res; - try { - res = fn(...args); - } finally { - setCurrentRenderingInstance(prevInstance); - if (renderFnWithContext._d) { - setBlockTracking(1); - } - } - if (true) { - devtoolsComponentUpdated(ctx); - } - return res; - }; - renderFnWithContext._n = true; - renderFnWithContext._c = true; - renderFnWithContext._d = true; - return renderFnWithContext; -} -var accessedAttrs = false; -function markAttrsAccessed() { - accessedAttrs = true; -} -function renderComponentRoot(instance) { - const { - type: Component, - vnode, - proxy, - withProxy, - props, - propsOptions: [propsOptions], - slots, - attrs, - emit: emit2, - render: render2, - renderCache, - data, - setupState, - ctx, - inheritAttrs - } = instance; - let result; - let fallthroughAttrs; - const prev = setCurrentRenderingInstance(instance); - if (true) { - accessedAttrs = false; - } - try { - if (vnode.shapeFlag & 4) { - const proxyToUse = withProxy || proxy; - const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { - get(target, key, receiver) { - warn$1( - `Property '${String( - key - )}' was accessed via 'this'. Avoid using 'this' in templates.` - ); - return Reflect.get(target, key, receiver); - } - }) : proxyToUse; - result = normalizeVNode( - render2.call( - thisProxy, - proxyToUse, - renderCache, - props, - setupState, - data, - ctx - ) - ); - fallthroughAttrs = attrs; - } else { - const render22 = Component; - if (attrs === props) { - markAttrsAccessed(); - } - result = normalizeVNode( - render22.length > 1 ? render22( - props, - true ? { - get attrs() { - markAttrsAccessed(); - return attrs; - }, - slots, - emit: emit2 - } : { attrs, slots, emit: emit2 } - ) : render22( - props, - null - /* we know it doesn't need it */ - ) - ); - fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); - } - } catch (err) { - blockStack.length = 0; - handleError(err, instance, 1); - result = createVNode(Comment); - } - let root = result; - let setRoot = void 0; - if (result.patchFlag > 0 && result.patchFlag & 2048) { - [root, setRoot] = getChildRoot(result); - } - if (fallthroughAttrs && inheritAttrs !== false) { - const keys = Object.keys(fallthroughAttrs); - const { shapeFlag } = root; - if (keys.length) { - if (shapeFlag & (1 | 6)) { - if (propsOptions && keys.some(isModelListener)) { - fallthroughAttrs = filterModelListeners( - fallthroughAttrs, - propsOptions - ); - } - root = cloneVNode(root, fallthroughAttrs); - } else if (!accessedAttrs && root.type !== Comment) { - const allAttrs = Object.keys(attrs); - const eventAttrs = []; - const extraAttrs = []; - for (let i = 0, l = allAttrs.length; i < l; i++) { - const key = allAttrs[i]; - if (isOn(key)) { - if (!isModelListener(key)) { - eventAttrs.push(key[2].toLowerCase() + key.slice(3)); - } - } else { - extraAttrs.push(key); - } - } - if (extraAttrs.length) { - warn$1( - `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` - ); - } - if (eventAttrs.length) { - warn$1( - `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` - ); - } - } - } - } - if (vnode.dirs) { - if (!isElementRoot(root)) { - warn$1( - `Runtime directive used on component with non-element root node. The directives will not function as intended.` - ); - } - root = cloneVNode(root); - root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; - } - if (vnode.transition) { - if (!isElementRoot(root)) { - warn$1( - `Component inside renders non-element root node that cannot be animated.` - ); - } - root.transition = vnode.transition; - } - if (setRoot) { - setRoot(root); - } else { - result = root; - } - setCurrentRenderingInstance(prev); - return result; -} -var getChildRoot = (vnode) => { - const rawChildren = vnode.children; - const dynamicChildren = vnode.dynamicChildren; - const childRoot = filterSingleRoot(rawChildren, false); - if (!childRoot) { - return [vnode, void 0]; - } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { - return getChildRoot(childRoot); - } - const index = rawChildren.indexOf(childRoot); - const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; - const setRoot = (updatedRoot) => { - rawChildren[index] = updatedRoot; - if (dynamicChildren) { - if (dynamicIndex > -1) { - dynamicChildren[dynamicIndex] = updatedRoot; - } else if (updatedRoot.patchFlag > 0) { - vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; - } - } - }; - return [normalizeVNode(childRoot), setRoot]; -}; -function filterSingleRoot(children, recurse = true) { - let singleRoot; - for (let i = 0; i < children.length; i++) { - const child = children[i]; - if (isVNode(child)) { - if (child.type !== Comment || child.children === "v-if") { - if (singleRoot) { - return; - } else { - singleRoot = child; - if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { - return filterSingleRoot(singleRoot.children); - } - } - } - } else { - return; - } - } - return singleRoot; -} -var getFunctionalFallthrough = (attrs) => { - let res; - for (const key in attrs) { - if (key === "class" || key === "style" || isOn(key)) { - (res || (res = {}))[key] = attrs[key]; - } - } - return res; -}; -var filterModelListeners = (attrs, props) => { - const res = {}; - for (const key in attrs) { - if (!isModelListener(key) || !(key.slice(9) in props)) { - res[key] = attrs[key]; - } - } - return res; -}; -var isElementRoot = (vnode) => { - return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; -}; -function shouldUpdateComponent(prevVNode, nextVNode, optimized) { - const { props: prevProps, children: prevChildren, component } = prevVNode; - const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; - const emits = component.emitsOptions; - if ((prevChildren || nextChildren) && isHmrUpdating) { - return true; - } - if (nextVNode.dirs || nextVNode.transition) { - return true; - } - if (optimized && patchFlag >= 0) { - if (patchFlag & 1024) { - return true; - } - if (patchFlag & 16) { - if (!prevProps) { - return !!nextProps; - } - return hasPropsChanged(prevProps, nextProps, emits); - } else if (patchFlag & 8) { - const dynamicProps = nextVNode.dynamicProps; - for (let i = 0; i < dynamicProps.length; i++) { - const key = dynamicProps[i]; - if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { - return true; - } - } - } - } else { - if (prevChildren || nextChildren) { - if (!nextChildren || !nextChildren.$stable) { - return true; - } - } - if (prevProps === nextProps) { - return false; - } - if (!prevProps) { - return !!nextProps; - } - if (!nextProps) { - return true; - } - return hasPropsChanged(prevProps, nextProps, emits); - } - return false; -} -function hasPropsChanged(prevProps, nextProps, emitsOptions) { - const nextKeys = Object.keys(nextProps); - if (nextKeys.length !== Object.keys(prevProps).length) { - return true; - } - for (let i = 0; i < nextKeys.length; i++) { - const key = nextKeys[i]; - if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { - return true; - } - } - return false; -} -function updateHOCHostEl({ vnode, parent }, el) { - while (parent) { - const root = parent.subTree; - if (root.suspense && root.suspense.activeBranch === vnode) { - root.el = vnode.el; - } - if (root === vnode) { - (vnode = parent.vnode).el = el; - parent = parent.parent; - } else { - break; - } - } -} -var COMPONENTS = "components"; -var DIRECTIVES = "directives"; -function resolveComponent(name, maybeSelfReference) { - return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; -} -var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); -function resolveDynamicComponent(component) { - if (isString(component)) { - return resolveAsset(COMPONENTS, component, false) || component; - } else { - return component || NULL_DYNAMIC_COMPONENT; - } -} -function resolveDirective(name) { - return resolveAsset(DIRECTIVES, name); -} -function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { - const instance = currentRenderingInstance || currentInstance; - if (instance) { - const Component = instance.type; - if (type === COMPONENTS) { - const selfName = getComponentName( - Component, - false - ); - if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { - return Component; - } - } - const res = ( - // local registration - // check instance[type] first which is resolved for options API - resolve(instance[type] || Component[type], name) || // global registration - resolve(instance.appContext[type], name) - ); - if (!res && maybeSelfReference) { - return Component; - } - if (warnMissing && !res) { - const extra = type === COMPONENTS ? ` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; - warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); - } - return res; - } else if (true) { - warn$1( - `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` - ); - } -} -function resolve(registry, name) { - return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); -} -var isSuspense = (type) => type.__isSuspense; -var suspenseId = 0; -var SuspenseImpl = { - name: "Suspense", - // In order to make Suspense tree-shakable, we need to avoid importing it - // directly in the renderer. The renderer checks for the __isSuspense flag - // on a vnode's type and calls the `process` method, passing in renderer - // internals. - __isSuspense: true, - process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { - if (n1 == null) { - mountSuspense( - n2, - container, - anchor, - parentComponent, - parentSuspense, - namespace, - slotScopeIds, - optimized, - rendererInternals - ); - } else { - if (parentSuspense && parentSuspense.deps > 0) { - n2.suspense = n1.suspense; - return; - } - patchSuspense( - n1, - n2, - container, - anchor, - parentComponent, - namespace, - slotScopeIds, - optimized, - rendererInternals - ); - } - }, - hydrate: hydrateSuspense, - create: createSuspenseBoundary, - normalize: normalizeSuspenseChildren -}; -var Suspense = SuspenseImpl; -function triggerEvent(vnode, name) { - const eventListener = vnode.props && vnode.props[name]; - if (isFunction(eventListener)) { - eventListener(); - } -} -function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { - const { - p: patch, - o: { createElement } - } = rendererInternals; - const hiddenContainer = createElement("div"); - const suspense = vnode.suspense = createSuspenseBoundary( - vnode, - parentSuspense, - parentComponent, - container, - hiddenContainer, - anchor, - namespace, - slotScopeIds, - optimized, - rendererInternals - ); - patch( - null, - suspense.pendingBranch = vnode.ssContent, - hiddenContainer, - null, - parentComponent, - suspense, - namespace, - slotScopeIds - ); - if (suspense.deps > 0) { - triggerEvent(vnode, "onPending"); - triggerEvent(vnode, "onFallback"); - patch( - null, - vnode.ssFallback, - container, - anchor, - parentComponent, - null, - // fallback tree will not have suspense context - namespace, - slotScopeIds - ); - setActiveBranch(suspense, vnode.ssFallback); - } else { - suspense.resolve(false, true); - } -} -function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { - const suspense = n2.suspense = n1.suspense; - suspense.vnode = n2; - n2.el = n1.el; - const newBranch = n2.ssContent; - const newFallback = n2.ssFallback; - const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; - if (pendingBranch) { - suspense.pendingBranch = newBranch; - if (isSameVNodeType(newBranch, pendingBranch)) { - patch( - pendingBranch, - newBranch, - suspense.hiddenContainer, - null, - parentComponent, - suspense, - namespace, - slotScopeIds, - optimized - ); - if (suspense.deps <= 0) { - suspense.resolve(); - } else if (isInFallback) { - if (!isHydrating) { - patch( - activeBranch, - newFallback, - container, - anchor, - parentComponent, - null, - // fallback tree will not have suspense context - namespace, - slotScopeIds, - optimized - ); - setActiveBranch(suspense, newFallback); - } - } - } else { - suspense.pendingId = suspenseId++; - if (isHydrating) { - suspense.isHydrating = false; - suspense.activeBranch = pendingBranch; - } else { - unmount(pendingBranch, parentComponent, suspense); - } - suspense.deps = 0; - suspense.effects.length = 0; - suspense.hiddenContainer = createElement("div"); - if (isInFallback) { - patch( - null, - newBranch, - suspense.hiddenContainer, - null, - parentComponent, - suspense, - namespace, - slotScopeIds, - optimized - ); - if (suspense.deps <= 0) { - suspense.resolve(); - } else { - patch( - activeBranch, - newFallback, - container, - anchor, - parentComponent, - null, - // fallback tree will not have suspense context - namespace, - slotScopeIds, - optimized - ); - setActiveBranch(suspense, newFallback); - } - } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { - patch( - activeBranch, - newBranch, - container, - anchor, - parentComponent, - suspense, - namespace, - slotScopeIds, - optimized - ); - suspense.resolve(true); - } else { - patch( - null, - newBranch, - suspense.hiddenContainer, - null, - parentComponent, - suspense, - namespace, - slotScopeIds, - optimized - ); - if (suspense.deps <= 0) { - suspense.resolve(); - } - } - } - } else { - if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { - patch( - activeBranch, - newBranch, - container, - anchor, - parentComponent, - suspense, - namespace, - slotScopeIds, - optimized - ); - setActiveBranch(suspense, newBranch); - } else { - triggerEvent(n2, "onPending"); - suspense.pendingBranch = newBranch; - if (newBranch.shapeFlag & 512) { - suspense.pendingId = newBranch.component.suspenseId; - } else { - suspense.pendingId = suspenseId++; - } - patch( - null, - newBranch, - suspense.hiddenContainer, - null, - parentComponent, - suspense, - namespace, - slotScopeIds, - optimized - ); - if (suspense.deps <= 0) { - suspense.resolve(); - } else { - const { timeout, pendingId } = suspense; - if (timeout > 0) { - setTimeout(() => { - if (suspense.pendingId === pendingId) { - suspense.fallback(newFallback); - } - }, timeout); - } else if (timeout === 0) { - suspense.fallback(newFallback); - } - } - } - } -} -var hasWarned = false; -function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { - if (!hasWarned) { - hasWarned = true; - console[console.info ? "info" : "log"]( - ` is an experimental feature and its API will likely change.` - ); - } - const { - p: patch, - m: move, - um: unmount, - n: next, - o: { parentNode, remove: remove2 } - } = rendererInternals; - let parentSuspenseId; - const isSuspensible = isVNodeSuspensible(vnode); - if (isSuspensible) { - if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) { - parentSuspenseId = parentSuspense.pendingId; - parentSuspense.deps++; - } - } - const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; - if (true) { - assertNumber(timeout, `Suspense timeout`); - } - const initialAnchor = anchor; - const suspense = { - vnode, - parent: parentSuspense, - parentComponent, - namespace, - container, - hiddenContainer, - deps: 0, - pendingId: suspenseId++, - timeout: typeof timeout === "number" ? timeout : -1, - activeBranch: null, - pendingBranch: null, - isInFallback: !isHydrating, - isHydrating, - isUnmounted: false, - effects: [], - resolve(resume = false, sync = false) { - if (true) { - if (!resume && !suspense.pendingBranch) { - throw new Error( - `suspense.resolve() is called without a pending branch.` - ); - } - if (suspense.isUnmounted) { - throw new Error( - `suspense.resolve() is called on an already unmounted suspense boundary.` - ); - } - } - const { - vnode: vnode2, - activeBranch, - pendingBranch, - pendingId, - effects, - parentComponent: parentComponent2, - container: container2 - } = suspense; - let delayEnter = false; - if (suspense.isHydrating) { - suspense.isHydrating = false; - } else if (!resume) { - delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; - if (delayEnter) { - activeBranch.transition.afterLeave = () => { - if (pendingId === suspense.pendingId) { - move( - pendingBranch, - container2, - anchor === initialAnchor ? next(activeBranch) : anchor, - 0 - ); - queuePostFlushCb(effects); - } - }; - } - if (activeBranch) { - if (parentNode(activeBranch.el) !== suspense.hiddenContainer) { - anchor = next(activeBranch); - } - unmount(activeBranch, parentComponent2, suspense, true); - } - if (!delayEnter) { - move(pendingBranch, container2, anchor, 0); - } - } - setActiveBranch(suspense, pendingBranch); - suspense.pendingBranch = null; - suspense.isInFallback = false; - let parent = suspense.parent; - let hasUnresolvedAncestor = false; - while (parent) { - if (parent.pendingBranch) { - parent.effects.push(...effects); - hasUnresolvedAncestor = true; - break; - } - parent = parent.parent; - } - if (!hasUnresolvedAncestor && !delayEnter) { - queuePostFlushCb(effects); - } - suspense.effects = []; - if (isSuspensible) { - if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { - parentSuspense.deps--; - if (parentSuspense.deps === 0 && !sync) { - parentSuspense.resolve(); - } - } - } - triggerEvent(vnode2, "onResolve"); - }, - fallback(fallbackVNode) { - if (!suspense.pendingBranch) { - return; - } - const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; - triggerEvent(vnode2, "onFallback"); - const anchor2 = next(activeBranch); - const mountFallback = () => { - if (!suspense.isInFallback) { - return; - } - patch( - null, - fallbackVNode, - container2, - anchor2, - parentComponent2, - null, - // fallback tree will not have suspense context - namespace2, - slotScopeIds, - optimized - ); - setActiveBranch(suspense, fallbackVNode); - }; - const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; - if (delayEnter) { - activeBranch.transition.afterLeave = mountFallback; - } - suspense.isInFallback = true; - unmount( - activeBranch, - parentComponent2, - null, - // no suspense so unmount hooks fire now - true - // shouldRemove - ); - if (!delayEnter) { - mountFallback(); - } - }, - move(container2, anchor2, type) { - suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); - suspense.container = container2; - }, - next() { - return suspense.activeBranch && next(suspense.activeBranch); - }, - registerDep(instance, setupRenderEffect) { - const isInPendingSuspense = !!suspense.pendingBranch; - if (isInPendingSuspense) { - suspense.deps++; - } - const hydratedEl = instance.vnode.el; - instance.asyncDep.catch((err) => { - handleError(err, instance, 0); - }).then((asyncSetupResult) => { - if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { - return; - } - instance.asyncResolved = true; - const { vnode: vnode2 } = instance; - if (true) { - pushWarningContext(vnode2); - } - handleSetupResult(instance, asyncSetupResult, false); - if (hydratedEl) { - vnode2.el = hydratedEl; - } - const placeholder = !hydratedEl && instance.subTree.el; - setupRenderEffect( - instance, - vnode2, - // component may have been moved before resolve. - // if this is not a hydration, instance.subTree will be the comment - // placeholder. - parentNode(hydratedEl || instance.subTree.el), - // anchor will not be used if this is hydration, so only need to - // consider the comment placeholder case. - hydratedEl ? null : next(instance.subTree), - suspense, - namespace, - optimized - ); - if (placeholder) { - remove2(placeholder); - } - updateHOCHostEl(instance, vnode2.el); - if (true) { - popWarningContext(); - } - if (isInPendingSuspense && --suspense.deps === 0) { - suspense.resolve(); - } - }); - }, - unmount(parentSuspense2, doRemove) { - suspense.isUnmounted = true; - if (suspense.activeBranch) { - unmount( - suspense.activeBranch, - parentComponent, - parentSuspense2, - doRemove - ); - } - if (suspense.pendingBranch) { - unmount( - suspense.pendingBranch, - parentComponent, - parentSuspense2, - doRemove - ); - } - } - }; - return suspense; -} -function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { - const suspense = vnode.suspense = createSuspenseBoundary( - vnode, - parentSuspense, - parentComponent, - node.parentNode, - // eslint-disable-next-line no-restricted-globals - document.createElement("div"), - null, - namespace, - slotScopeIds, - optimized, - rendererInternals, - true - ); - const result = hydrateNode( - node, - suspense.pendingBranch = vnode.ssContent, - parentComponent, - suspense, - slotScopeIds, - optimized - ); - if (suspense.deps === 0) { - suspense.resolve(false, true); - } - return result; -} -function normalizeSuspenseChildren(vnode) { - const { shapeFlag, children } = vnode; - const isSlotChildren = shapeFlag & 32; - vnode.ssContent = normalizeSuspenseSlot( - isSlotChildren ? children.default : children - ); - vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); -} -function normalizeSuspenseSlot(s) { - let block; - if (isFunction(s)) { - const trackBlock = isBlockTreeEnabled && s._c; - if (trackBlock) { - s._d = false; - openBlock(); - } - s = s(); - if (trackBlock) { - s._d = true; - block = currentBlock; - closeBlock(); - } - } - if (isArray(s)) { - const singleChild = filterSingleRoot(s); - if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { - warn$1(` slots expect a single root node.`); - } - s = singleChild; - } - s = normalizeVNode(s); - if (block && !s.dynamicChildren) { - s.dynamicChildren = block.filter((c) => c !== s); - } - return s; -} -function queueEffectWithSuspense(fn, suspense) { - if (suspense && suspense.pendingBranch) { - if (isArray(fn)) { - suspense.effects.push(...fn); - } else { - suspense.effects.push(fn); - } - } else { - queuePostFlushCb(fn); - } -} -function setActiveBranch(suspense, branch) { - suspense.activeBranch = branch; - const { vnode, parentComponent } = suspense; - let el = branch.el; - while (!el && branch.component) { - branch = branch.component.subTree; - el = branch.el; - } - vnode.el = el; - if (parentComponent && parentComponent.subTree === vnode) { - parentComponent.vnode.el = el; - updateHOCHostEl(parentComponent, el); - } -} -function isVNodeSuspensible(vnode) { - var _a; - return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false; -} -var ssrContextKey = Symbol.for("v-scx"); -var useSSRContext = () => { - { - const ctx = inject(ssrContextKey); - if (!ctx) { - warn$1( - `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.` - ); - } - return ctx; - } -}; -function watchEffect(effect2, options) { - return doWatch(effect2, null, options); -} -function watchPostEffect(effect2, options) { - return doWatch( - effect2, - null, - true ? extend({}, options, { flush: "post" }) : { flush: "post" } - ); -} -function watchSyncEffect(effect2, options) { - return doWatch( - effect2, - null, - true ? extend({}, options, { flush: "sync" }) : { flush: "sync" } - ); -} -var INITIAL_WATCHER_VALUE = {}; -function watch(source, cb, options) { - if (!isFunction(cb)) { - warn$1( - `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` - ); - } - return doWatch(source, cb, options); -} -function doWatch(source, cb, { - immediate, - deep, - flush, - once, - onTrack, - onTrigger -} = EMPTY_OBJ) { - if (cb && once) { - const _cb = cb; - cb = (...args) => { - _cb(...args); - unwatch(); - }; - } - if (deep !== void 0 && typeof deep === "number") { - warn$1( - `watch() "deep" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.` - ); - } - if (!cb) { - if (immediate !== void 0) { - warn$1( - `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` - ); - } - if (deep !== void 0) { - warn$1( - `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` - ); - } - if (once !== void 0) { - warn$1( - `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` - ); - } - } - const warnInvalidSource = (s) => { - warn$1( - `Invalid watch source: `, - s, - `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` - ); - }; - const instance = currentInstance; - const reactiveGetter = (source2) => deep === true ? source2 : ( - // for deep: false, only traverse root-level properties - traverse(source2, deep === false ? 1 : void 0) - ); - let getter; - let forceTrigger = false; - let isMultiSource = false; - if (isRef(source)) { - getter = () => source.value; - forceTrigger = isShallow(source); - } else if (isReactive(source)) { - getter = () => reactiveGetter(source); - forceTrigger = true; - } else if (isArray(source)) { - isMultiSource = true; - forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); - getter = () => source.map((s) => { - if (isRef(s)) { - return s.value; - } else if (isReactive(s)) { - return reactiveGetter(s); - } else if (isFunction(s)) { - return callWithErrorHandling(s, instance, 2); - } else { - warnInvalidSource(s); - } - }); - } else if (isFunction(source)) { - if (cb) { - getter = () => callWithErrorHandling(source, instance, 2); - } else { - getter = () => { - if (cleanup) { - cleanup(); - } - return callWithAsyncErrorHandling( - source, - instance, - 3, - [onCleanup] - ); - }; - } - } else { - getter = NOOP; - warnInvalidSource(source); - } - if (cb && deep) { - const baseGetter = getter; - getter = () => traverse(baseGetter()); - } - let cleanup; - let onCleanup = (fn) => { - cleanup = effect2.onStop = () => { - callWithErrorHandling(fn, instance, 4); - cleanup = effect2.onStop = void 0; - }; - }; - let ssrCleanup; - if (isInSSRComponentSetup) { - onCleanup = NOOP; - if (!cb) { - getter(); - } else if (immediate) { - callWithAsyncErrorHandling(cb, instance, 3, [ - getter(), - isMultiSource ? [] : void 0, - onCleanup - ]); - } - if (flush === "sync") { - const ctx = useSSRContext(); - ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []); - } else { - return NOOP; - } - } - let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; - const job = () => { - if (!effect2.active || !effect2.dirty) { - return; - } - if (cb) { - const newValue = effect2.run(); - if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) { - if (cleanup) { - cleanup(); - } - callWithAsyncErrorHandling(cb, instance, 3, [ - newValue, - // pass undefined as the old value when it's changed for the first time - oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, - onCleanup - ]); - oldValue = newValue; - } - } else { - effect2.run(); - } - }; - job.allowRecurse = !!cb; - let scheduler; - if (flush === "sync") { - scheduler = job; - } else if (flush === "post") { - scheduler = () => queuePostRenderEffect(job, instance && instance.suspense); - } else { - job.pre = true; - if (instance) - job.id = instance.uid; - scheduler = () => queueJob(job); - } - const effect2 = new ReactiveEffect(getter, NOOP, scheduler); - const scope = getCurrentScope(); - const unwatch = () => { - effect2.stop(); - if (scope) { - remove(scope.effects, effect2); - } - }; - if (true) { - effect2.onTrack = onTrack; - effect2.onTrigger = onTrigger; - } - if (cb) { - if (immediate) { - job(); - } else { - oldValue = effect2.run(); - } - } else if (flush === "post") { - queuePostRenderEffect( - effect2.run.bind(effect2), - instance && instance.suspense - ); - } else { - effect2.run(); - } - if (ssrCleanup) - ssrCleanup.push(unwatch); - return unwatch; -} -function instanceWatch(source, value, options) { - const publicThis = this.proxy; - const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); - let cb; - if (isFunction(value)) { - cb = value; - } else { - cb = value.handler; - options = value; - } - const reset = setCurrentInstance(this); - const res = doWatch(getter, cb.bind(publicThis), options); - reset(); - return res; -} -function createPathGetter(ctx, path) { - const segments = path.split("."); - return () => { - let cur = ctx; - for (let i = 0; i < segments.length && cur; i++) { - cur = cur[segments[i]]; - } - return cur; - }; -} -function traverse(value, depth, currentDepth = 0, seen) { - if (!isObject(value) || value["__v_skip"]) { - return value; - } - if (depth && depth > 0) { - if (currentDepth >= depth) { - return value; - } - currentDepth++; - } - seen = seen || /* @__PURE__ */ new Set(); - if (seen.has(value)) { - return value; - } - seen.add(value); - if (isRef(value)) { - traverse(value.value, depth, currentDepth, seen); - } else if (isArray(value)) { - for (let i = 0; i < value.length; i++) { - traverse(value[i], depth, currentDepth, seen); - } - } else if (isSet(value) || isMap(value)) { - value.forEach((v) => { - traverse(v, depth, currentDepth, seen); - }); - } else if (isPlainObject(value)) { - for (const key in value) { - traverse(value[key], depth, currentDepth, seen); - } - } - return value; -} -function validateDirectiveName(name) { - if (isBuiltInDirective(name)) { - warn$1("Do not use built-in directive ids as custom directive id: " + name); - } -} -function withDirectives(vnode, directives) { - if (currentRenderingInstance === null) { - warn$1(`withDirectives can only be used inside render functions.`); - return vnode; - } - const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy; - const bindings = vnode.dirs || (vnode.dirs = []); - for (let i = 0; i < directives.length; i++) { - let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; - if (dir) { - if (isFunction(dir)) { - dir = { - mounted: dir, - updated: dir - }; - } - if (dir.deep) { - traverse(value); - } - bindings.push({ - dir, - instance, - value, - oldValue: void 0, - arg, - modifiers - }); - } - } - return vnode; -} -function invokeDirectiveHook(vnode, prevVNode, instance, name) { - const bindings = vnode.dirs; - const oldBindings = prevVNode && prevVNode.dirs; - for (let i = 0; i < bindings.length; i++) { - const binding = bindings[i]; - if (oldBindings) { - binding.oldValue = oldBindings[i].value; - } - let hook = binding.dir[name]; - if (hook) { - pauseTracking(); - callWithAsyncErrorHandling(hook, instance, 8, [ - vnode.el, - binding, - vnode, - prevVNode - ]); - resetTracking(); - } - } -} -var leaveCbKey = Symbol("_leaveCb"); -var enterCbKey = Symbol("_enterCb"); -function useTransitionState() { - const state = { - isMounted: false, - isLeaving: false, - isUnmounting: false, - leavingVNodes: /* @__PURE__ */ new Map() - }; - onMounted(() => { - state.isMounted = true; - }); - onBeforeUnmount(() => { - state.isUnmounting = true; - }); - return state; -} -var TransitionHookValidator = [Function, Array]; -var BaseTransitionPropsValidators = { - mode: String, - appear: Boolean, - persisted: Boolean, - // enter - onBeforeEnter: TransitionHookValidator, - onEnter: TransitionHookValidator, - onAfterEnter: TransitionHookValidator, - onEnterCancelled: TransitionHookValidator, - // leave - onBeforeLeave: TransitionHookValidator, - onLeave: TransitionHookValidator, - onAfterLeave: TransitionHookValidator, - onLeaveCancelled: TransitionHookValidator, - // appear - onBeforeAppear: TransitionHookValidator, - onAppear: TransitionHookValidator, - onAfterAppear: TransitionHookValidator, - onAppearCancelled: TransitionHookValidator -}; -var BaseTransitionImpl = { - name: `BaseTransition`, - props: BaseTransitionPropsValidators, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const state = useTransitionState(); - let prevTransitionKey; - return () => { - const children = slots.default && getTransitionRawChildren(slots.default(), true); - if (!children || !children.length) { - return; - } - let child = children[0]; - if (children.length > 1) { - let hasFound = false; - for (const c of children) { - if (c.type !== Comment) { - if (hasFound) { - warn$1( - " can only be used on a single element or component. Use for lists." - ); - break; - } - child = c; - hasFound = true; - if (false) - break; - } - } - } - const rawProps = toRaw(props); - const { mode } = rawProps; - if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { - warn$1(`invalid mode: ${mode}`); - } - if (state.isLeaving) { - return emptyPlaceholder(child); - } - const innerChild = getKeepAliveChild(child); - if (!innerChild) { - return emptyPlaceholder(child); - } - const enterHooks = resolveTransitionHooks( - innerChild, - rawProps, - state, - instance - ); - setTransitionHooks(innerChild, enterHooks); - const oldChild = instance.subTree; - const oldInnerChild = oldChild && getKeepAliveChild(oldChild); - let transitionKeyChanged = false; - const { getTransitionKey } = innerChild.type; - if (getTransitionKey) { - const key = getTransitionKey(); - if (prevTransitionKey === void 0) { - prevTransitionKey = key; - } else if (key !== prevTransitionKey) { - prevTransitionKey = key; - transitionKeyChanged = true; - } - } - if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) { - const leavingHooks = resolveTransitionHooks( - oldInnerChild, - rawProps, - state, - instance - ); - setTransitionHooks(oldInnerChild, leavingHooks); - if (mode === "out-in") { - state.isLeaving = true; - leavingHooks.afterLeave = () => { - state.isLeaving = false; - if (instance.update.active !== false) { - instance.effect.dirty = true; - instance.update(); - } - }; - return emptyPlaceholder(child); - } else if (mode === "in-out" && innerChild.type !== Comment) { - leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { - const leavingVNodesCache = getLeavingNodesForType( - state, - oldInnerChild - ); - leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; - el[leaveCbKey] = () => { - earlyRemove(); - el[leaveCbKey] = void 0; - delete enterHooks.delayedLeave; - }; - enterHooks.delayedLeave = delayedLeave; - }; - } - } - return child; - }; - } -}; -var BaseTransition = BaseTransitionImpl; -function getLeavingNodesForType(state, vnode) { - const { leavingVNodes } = state; - let leavingVNodesCache = leavingVNodes.get(vnode.type); - if (!leavingVNodesCache) { - leavingVNodesCache = /* @__PURE__ */ Object.create(null); - leavingVNodes.set(vnode.type, leavingVNodesCache); - } - return leavingVNodesCache; -} -function resolveTransitionHooks(vnode, props, state, instance) { - const { - appear, - mode, - persisted = false, - onBeforeEnter, - onEnter, - onAfterEnter, - onEnterCancelled, - onBeforeLeave, - onLeave, - onAfterLeave, - onLeaveCancelled, - onBeforeAppear, - onAppear, - onAfterAppear, - onAppearCancelled - } = props; - const key = String(vnode.key); - const leavingVNodesCache = getLeavingNodesForType(state, vnode); - const callHook3 = (hook, args) => { - hook && callWithAsyncErrorHandling( - hook, - instance, - 9, - args - ); - }; - const callAsyncHook = (hook, args) => { - const done = args[1]; - callHook3(hook, args); - if (isArray(hook)) { - if (hook.every((hook2) => hook2.length <= 1)) - done(); - } else if (hook.length <= 1) { - done(); - } - }; - const hooks = { - mode, - persisted, - beforeEnter(el) { - let hook = onBeforeEnter; - if (!state.isMounted) { - if (appear) { - hook = onBeforeAppear || onBeforeEnter; - } else { - return; - } - } - if (el[leaveCbKey]) { - el[leaveCbKey]( - true - /* cancelled */ - ); - } - const leavingVNode = leavingVNodesCache[key]; - if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { - leavingVNode.el[leaveCbKey](); - } - callHook3(hook, [el]); - }, - enter(el) { - let hook = onEnter; - let afterHook = onAfterEnter; - let cancelHook = onEnterCancelled; - if (!state.isMounted) { - if (appear) { - hook = onAppear || onEnter; - afterHook = onAfterAppear || onAfterEnter; - cancelHook = onAppearCancelled || onEnterCancelled; - } else { - return; - } - } - let called = false; - const done = el[enterCbKey] = (cancelled) => { - if (called) - return; - called = true; - if (cancelled) { - callHook3(cancelHook, [el]); - } else { - callHook3(afterHook, [el]); - } - if (hooks.delayedLeave) { - hooks.delayedLeave(); - } - el[enterCbKey] = void 0; - }; - if (hook) { - callAsyncHook(hook, [el, done]); - } else { - done(); - } - }, - leave(el, remove2) { - const key2 = String(vnode.key); - if (el[enterCbKey]) { - el[enterCbKey]( - true - /* cancelled */ - ); - } - if (state.isUnmounting) { - return remove2(); - } - callHook3(onBeforeLeave, [el]); - let called = false; - const done = el[leaveCbKey] = (cancelled) => { - if (called) - return; - called = true; - remove2(); - if (cancelled) { - callHook3(onLeaveCancelled, [el]); - } else { - callHook3(onAfterLeave, [el]); - } - el[leaveCbKey] = void 0; - if (leavingVNodesCache[key2] === vnode) { - delete leavingVNodesCache[key2]; - } - }; - leavingVNodesCache[key2] = vnode; - if (onLeave) { - callAsyncHook(onLeave, [el, done]); - } else { - done(); - } - }, - clone(vnode2) { - return resolveTransitionHooks(vnode2, props, state, instance); - } - }; - return hooks; -} -function emptyPlaceholder(vnode) { - if (isKeepAlive(vnode)) { - vnode = cloneVNode(vnode); - vnode.children = null; - return vnode; - } -} -function getKeepAliveChild(vnode) { - return isKeepAlive(vnode) ? ( - // #7121 ensure get the child component subtree in case - // it's been replaced during HMR - vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0 - ) : vnode; -} -function setTransitionHooks(vnode, hooks) { - if (vnode.shapeFlag & 6 && vnode.component) { - setTransitionHooks(vnode.component.subTree, hooks); - } else if (vnode.shapeFlag & 128) { - vnode.ssContent.transition = hooks.clone(vnode.ssContent); - vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); - } else { - vnode.transition = hooks; - } -} -function getTransitionRawChildren(children, keepComment = false, parentKey) { - let ret = []; - let keyedFragmentCount = 0; - for (let i = 0; i < children.length; i++) { - let child = children[i]; - const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); - if (child.type === Fragment) { - if (child.patchFlag & 128) - keyedFragmentCount++; - ret = ret.concat( - getTransitionRawChildren(child.children, keepComment, key) - ); - } else if (keepComment || child.type !== Comment) { - ret.push(key != null ? cloneVNode(child, { key }) : child); - } - } - if (keyedFragmentCount > 1) { - for (let i = 0; i < ret.length; i++) { - ret[i].patchFlag = -2; - } - } - return ret; -} -function defineComponent(options, extraOptions) { - return isFunction(options) ? ( - // #8326: extend call and options.name access are considered side-effects - // by Rollup, so we have to wrap it in a pure-annotated IIFE. - (() => extend({ name: options.name }, extraOptions, { setup: options }))() - ) : options; -} -var isAsyncWrapper = (i) => !!i.type.__asyncLoader; -function defineAsyncComponent(source) { - if (isFunction(source)) { - source = { loader: source }; - } - const { - loader, - loadingComponent, - errorComponent, - delay = 200, - timeout, - // undefined = never times out - suspensible = true, - onError: userOnError - } = source; - let pendingRequest = null; - let resolvedComp; - let retries = 0; - const retry = () => { - retries++; - pendingRequest = null; - return load(); - }; - const load = () => { - let thisRequest; - return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { - err = err instanceof Error ? err : new Error(String(err)); - if (userOnError) { - return new Promise((resolve2, reject) => { - const userRetry = () => resolve2(retry()); - const userFail = () => reject(err); - userOnError(err, userRetry, userFail, retries + 1); - }); - } else { - throw err; - } - }).then((comp) => { - if (thisRequest !== pendingRequest && pendingRequest) { - return pendingRequest; - } - if (!comp) { - warn$1( - `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` - ); - } - if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { - comp = comp.default; - } - if (comp && !isObject(comp) && !isFunction(comp)) { - throw new Error(`Invalid async component load result: ${comp}`); - } - resolvedComp = comp; - return comp; - })); - }; - return defineComponent({ - name: "AsyncComponentWrapper", - __asyncLoader: load, - get __asyncResolved() { - return resolvedComp; - }, - setup() { - const instance = currentInstance; - if (resolvedComp) { - return () => createInnerComp(resolvedComp, instance); - } - const onError = (err) => { - pendingRequest = null; - handleError( - err, - instance, - 13, - !errorComponent - ); - }; - if (suspensible && instance.suspense || isInSSRComponentSetup) { - return load().then((comp) => { - return () => createInnerComp(comp, instance); - }).catch((err) => { - onError(err); - return () => errorComponent ? createVNode(errorComponent, { - error: err - }) : null; - }); - } - const loaded = ref(false); - const error = ref(); - const delayed = ref(!!delay); - if (delay) { - setTimeout(() => { - delayed.value = false; - }, delay); - } - if (timeout != null) { - setTimeout(() => { - if (!loaded.value && !error.value) { - const err = new Error( - `Async component timed out after ${timeout}ms.` - ); - onError(err); - error.value = err; - } - }, timeout); - } - load().then(() => { - loaded.value = true; - if (instance.parent && isKeepAlive(instance.parent.vnode)) { - instance.parent.effect.dirty = true; - queueJob(instance.parent.update); - } - }).catch((err) => { - onError(err); - error.value = err; - }); - return () => { - if (loaded.value && resolvedComp) { - return createInnerComp(resolvedComp, instance); - } else if (error.value && errorComponent) { - return createVNode(errorComponent, { - error: error.value - }); - } else if (loadingComponent && !delayed.value) { - return createVNode(loadingComponent); - } - }; - } - }); -} -function createInnerComp(comp, parent) { - const { ref: ref2, props, children, ce } = parent.vnode; - const vnode = createVNode(comp, props, children); - vnode.ref = ref2; - vnode.ce = ce; - delete parent.vnode.ce; - return vnode; -} -var isKeepAlive = (vnode) => vnode.type.__isKeepAlive; -var KeepAliveImpl = { - name: `KeepAlive`, - // Marker for special handling inside the renderer. We are not using a === - // check directly on KeepAlive in the renderer, because importing it directly - // would prevent it from being tree-shaken. - __isKeepAlive: true, - props: { - include: [String, RegExp, Array], - exclude: [String, RegExp, Array], - max: [String, Number] - }, - setup(props, { slots }) { - const instance = getCurrentInstance(); - const sharedContext = instance.ctx; - if (!sharedContext.renderer) { - return () => { - const children = slots.default && slots.default(); - return children && children.length === 1 ? children[0] : children; - }; - } - const cache = /* @__PURE__ */ new Map(); - const keys = /* @__PURE__ */ new Set(); - let current = null; - if (true) { - instance.__v_cache = cache; - } - const parentSuspense = instance.suspense; - const { - renderer: { - p: patch, - m: move, - um: _unmount, - o: { createElement } - } - } = sharedContext; - const storageContainer = createElement("div"); - sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { - const instance2 = vnode.component; - move(vnode, container, anchor, 0, parentSuspense); - patch( - instance2.vnode, - vnode, - container, - anchor, - instance2, - parentSuspense, - namespace, - vnode.slotScopeIds, - optimized - ); - queuePostRenderEffect(() => { - instance2.isDeactivated = false; - if (instance2.a) { - invokeArrayFns(instance2.a); - } - const vnodeHook = vnode.props && vnode.props.onVnodeMounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode); - } - }, parentSuspense); - if (true) { - devtoolsComponentAdded(instance2); - } - }; - sharedContext.deactivate = (vnode) => { - const instance2 = vnode.component; - move(vnode, storageContainer, null, 1, parentSuspense); - queuePostRenderEffect(() => { - if (instance2.da) { - invokeArrayFns(instance2.da); - } - const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; - if (vnodeHook) { - invokeVNodeHook(vnodeHook, instance2.parent, vnode); - } - instance2.isDeactivated = true; - }, parentSuspense); - if (true) { - devtoolsComponentAdded(instance2); - } - }; - function unmount(vnode) { - resetShapeFlag(vnode); - _unmount(vnode, instance, parentSuspense, true); - } - function pruneCache(filter) { - cache.forEach((vnode, key) => { - const name = getComponentName(vnode.type); - if (name && (!filter || !filter(name))) { - pruneCacheEntry(key); - } - }); - } - function pruneCacheEntry(key) { - const cached = cache.get(key); - if (!current || !isSameVNodeType(cached, current)) { - unmount(cached); - } else if (current) { - resetShapeFlag(current); - } - cache.delete(key); - keys.delete(key); - } - watch( - () => [props.include, props.exclude], - ([include, exclude]) => { - include && pruneCache((name) => matches(include, name)); - exclude && pruneCache((name) => !matches(exclude, name)); - }, - // prune post-render after `current` has been updated - { flush: "post", deep: true } - ); - let pendingCacheKey = null; - const cacheSubtree = () => { - if (pendingCacheKey != null) { - cache.set(pendingCacheKey, getInnerChild(instance.subTree)); - } - }; - onMounted(cacheSubtree); - onUpdated(cacheSubtree); - onBeforeUnmount(() => { - cache.forEach((cached) => { - const { subTree, suspense } = instance; - const vnode = getInnerChild(subTree); - if (cached.type === vnode.type && cached.key === vnode.key) { - resetShapeFlag(vnode); - const da = vnode.component.da; - da && queuePostRenderEffect(da, suspense); - return; - } - unmount(cached); - }); - }); - return () => { - pendingCacheKey = null; - if (!slots.default) { - return null; - } - const children = slots.default(); - const rawVNode = children[0]; - if (children.length > 1) { - if (true) { - warn$1(`KeepAlive should contain exactly one component child.`); - } - current = null; - return children; - } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { - current = null; - return rawVNode; - } - let vnode = getInnerChild(rawVNode); - const comp = vnode.type; - const name = getComponentName( - isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp - ); - const { include, exclude, max } = props; - if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { - current = vnode; - return rawVNode; - } - const key = vnode.key == null ? comp : vnode.key; - const cachedVNode = cache.get(key); - if (vnode.el) { - vnode = cloneVNode(vnode); - if (rawVNode.shapeFlag & 128) { - rawVNode.ssContent = vnode; - } - } - pendingCacheKey = key; - if (cachedVNode) { - vnode.el = cachedVNode.el; - vnode.component = cachedVNode.component; - if (vnode.transition) { - setTransitionHooks(vnode, vnode.transition); - } - vnode.shapeFlag |= 512; - keys.delete(key); - keys.add(key); - } else { - keys.add(key); - if (max && keys.size > parseInt(max, 10)) { - pruneCacheEntry(keys.values().next().value); - } - } - vnode.shapeFlag |= 256; - current = vnode; - return isSuspense(rawVNode.type) ? rawVNode : vnode; - }; - } -}; -var KeepAlive = KeepAliveImpl; -function matches(pattern, name) { - if (isArray(pattern)) { - return pattern.some((p2) => matches(p2, name)); - } else if (isString(pattern)) { - return pattern.split(",").includes(name); - } else if (isRegExp(pattern)) { - return pattern.test(name); - } - return false; -} -function onActivated(hook, target) { - registerKeepAliveHook(hook, "a", target); -} -function onDeactivated(hook, target) { - registerKeepAliveHook(hook, "da", target); -} -function registerKeepAliveHook(hook, type, target = currentInstance) { - const wrappedHook = hook.__wdc || (hook.__wdc = () => { - let current = target; - while (current) { - if (current.isDeactivated) { - return; - } - current = current.parent; - } - return hook(); - }); - injectHook(type, wrappedHook, target); - if (target) { - let current = target.parent; - while (current && current.parent) { - if (isKeepAlive(current.parent.vnode)) { - injectToKeepAliveRoot(wrappedHook, type, target, current); - } - current = current.parent; - } - } -} -function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { - const injected = injectHook( - type, - hook, - keepAliveRoot, - true - /* prepend */ - ); - onUnmounted(() => { - remove(keepAliveRoot[type], injected); - }, target); -} -function resetShapeFlag(vnode) { - vnode.shapeFlag &= ~256; - vnode.shapeFlag &= ~512; -} -function getInnerChild(vnode) { - return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; -} -function injectHook(type, hook, target = currentInstance, prepend = false) { - if (target) { - const hooks = target[type] || (target[type] = []); - const wrappedHook = hook.__weh || (hook.__weh = (...args) => { - if (target.isUnmounted) { - return; - } - pauseTracking(); - const reset = setCurrentInstance(target); - const res = callWithAsyncErrorHandling(hook, target, type, args); - reset(); - resetTracking(); - return res; - }); - if (prepend) { - hooks.unshift(wrappedHook); - } else { - hooks.push(wrappedHook); - } - return wrappedHook; - } else if (true) { - const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); - warn$1( - `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` - ); - } -} -var createHook = (lifecycle) => (hook, target = currentInstance) => ( - // post-create lifecycle registrations are noops during SSR (except for serverPrefetch) - (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target) -); -var onBeforeMount = createHook("bm"); -var onMounted = createHook("m"); -var onBeforeUpdate = createHook("bu"); -var onUpdated = createHook("u"); -var onBeforeUnmount = createHook("bum"); -var onUnmounted = createHook("um"); -var onServerPrefetch = createHook("sp"); -var onRenderTriggered = createHook( - "rtg" -); -var onRenderTracked = createHook( - "rtc" -); -function onErrorCaptured(hook, target = currentInstance) { - injectHook("ec", hook, target); -} -function renderList(source, renderItem, cache, index) { - let ret; - const cached = cache && cache[index]; - if (isArray(source) || isString(source)) { - ret = new Array(source.length); - for (let i = 0, l = source.length; i < l; i++) { - ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); - } - } else if (typeof source === "number") { - if (!Number.isInteger(source)) { - warn$1(`The v-for range expect an integer value but got ${source}.`); - } - ret = new Array(source); - for (let i = 0; i < source; i++) { - ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); - } - } else if (isObject(source)) { - if (source[Symbol.iterator]) { - ret = Array.from( - source, - (item, i) => renderItem(item, i, void 0, cached && cached[i]) - ); - } else { - const keys = Object.keys(source); - ret = new Array(keys.length); - for (let i = 0, l = keys.length; i < l; i++) { - const key = keys[i]; - ret[i] = renderItem(source[key], key, i, cached && cached[i]); - } - } - } else { - ret = []; - } - if (cache) { - cache[index] = ret; - } - return ret; -} -function createSlots(slots, dynamicSlots) { - for (let i = 0; i < dynamicSlots.length; i++) { - const slot = dynamicSlots[i]; - if (isArray(slot)) { - for (let j = 0; j < slot.length; j++) { - slots[slot[j].name] = slot[j].fn; - } - } else if (slot) { - slots[slot.name] = slot.key ? (...args) => { - const res = slot.fn(...args); - if (res) - res.key = slot.key; - return res; - } : slot.fn; - } - } - return slots; -} -function renderSlot(slots, name, props = {}, fallback, noSlotted) { - if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { - if (name !== "default") - props.name = name; - return createVNode("slot", props, fallback && fallback()); - } - let slot = slots[name]; - if (slot && slot.length > 1) { - warn$1( - `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` - ); - slot = () => []; - } - if (slot && slot._c) { - slot._d = false; - } - openBlock(); - const validSlotContent = slot && ensureValidVNode(slot(props)); - const rendered = createBlock( - Fragment, - { - key: props.key || // slot content array of a dynamic conditional slot may have a branch - // key attached in the `createSlots` helper, respect that - validSlotContent && validSlotContent.key || `_${name}` - }, - validSlotContent || (fallback ? fallback() : []), - validSlotContent && slots._ === 1 ? 64 : -2 - ); - if (!noSlotted && rendered.scopeId) { - rendered.slotScopeIds = [rendered.scopeId + "-s"]; - } - if (slot && slot._c) { - slot._d = true; - } - return rendered; -} -function ensureValidVNode(vnodes) { - return vnodes.some((child) => { - if (!isVNode(child)) - return true; - if (child.type === Comment) - return false; - if (child.type === Fragment && !ensureValidVNode(child.children)) - return false; - return true; - }) ? vnodes : null; -} -function toHandlers(obj, preserveCaseIfNecessary) { - const ret = {}; - if (!isObject(obj)) { - warn$1(`v-on with no argument expects an object value.`); - return ret; - } - for (const key in obj) { - ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; - } - return ret; -} -var getPublicInstance = (i) => { - if (!i) - return null; - if (isStatefulComponent(i)) - return getExposeProxy(i) || i.proxy; - return getPublicInstance(i.parent); -}; -var publicPropertiesMap = ( - // Move PURE marker to new line to workaround compiler discarding it - // due to type annotation - extend(/* @__PURE__ */ Object.create(null), { - $: (i) => i, - $el: (i) => i.vnode.el, - $data: (i) => i.data, - $props: (i) => true ? shallowReadonly(i.props) : i.props, - $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, - $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, - $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, - $parent: (i) => getPublicInstance(i.parent), - $root: (i) => getPublicInstance(i.root), - $emit: (i) => i.emit, - $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, - $forceUpdate: (i) => i.f || (i.f = () => { - i.effect.dirty = true; - queueJob(i.update); - }), - $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), - $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP - }) -); -var isReservedPrefix = (key) => key === "_" || key === "$"; -var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); -var PublicInstanceProxyHandlers = { - get({ _: instance }, key) { - const { ctx, setupState, data, props, accessCache, type, appContext } = instance; - if (key === "__isVue") { - return true; - } - let normalizedProps; - if (key[0] !== "$") { - const n = accessCache[key]; - if (n !== void 0) { - switch (n) { - case 1: - return setupState[key]; - case 2: - return data[key]; - case 4: - return ctx[key]; - case 3: - return props[key]; - } - } else if (hasSetupBinding(setupState, key)) { - accessCache[key] = 1; - return setupState[key]; - } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { - accessCache[key] = 2; - return data[key]; - } else if ( - // only cache other properties when instance has declared (thus stable) - // props - (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) - ) { - accessCache[key] = 3; - return props[key]; - } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { - accessCache[key] = 4; - return ctx[key]; - } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { - accessCache[key] = 0; - } - } - const publicGetter = publicPropertiesMap[key]; - let cssModule, globalProperties; - if (publicGetter) { - if (key === "$attrs") { - track(instance, "get", key); - markAttrsAccessed(); - } else if (key === "$slots") { - track(instance, "get", key); - } - return publicGetter(instance); - } else if ( - // css module (injected by vue-loader) - (cssModule = type.__cssModules) && (cssModule = cssModule[key]) - ) { - return cssModule; - } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { - accessCache[key] = 4; - return ctx[key]; - } else if ( - // global properties - globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) - ) { - { - return globalProperties[key]; - } - } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading - // to infinite warning loop - key.indexOf("__v") !== 0)) { - if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { - warn$1( - `Property ${JSON.stringify( - key - )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` - ); - } else if (instance === currentRenderingInstance) { - warn$1( - `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` - ); - } - } - }, - set({ _: instance }, key, value) { - const { data, setupState, ctx } = instance; - if (hasSetupBinding(setupState, key)) { - setupState[key] = value; - return true; - } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { - warn$1(`Cannot mutate - + + -
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- +
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/api/1.0/client.html b/docs/.vitepress/dist/api/1.0/client.html index 1147e0d..0ca588b 100644 --- a/docs/.vitepress/dist/api/1.0/client.html +++ b/docs/.vitepress/dist/api/1.0/client.html @@ -5,41 +5,53 @@ Client | Warp - - + + + - - - - - + + + + + -
Skip to content

Client

For Client-sided

.Client

Create new Warp event.

lua
(
+    
Skip to content

Client event

For Client-sided

.Client yield

Create new Warp event.

lua
(
 	Identifier: string
-)
lua
local Remote = Warp.new("Remote")

:Connect

Connect event to receive incoming from server way.

lua
(
-	callback: (...any) -> ()
-)
lua
Remote:Connect(function(...)
-	print(...)
-end)

:Once

This function likely :Connect but it disconnect the event once it fired.

lua
(
-	callback: (...any) -> ()
-)
lua
Remote:Once(function(...)
-	print(...)
-end)

:Disconnect

Disconnect the event connection.

lua
(
-	key: string
-)
lua
local connection = Remote:Connect(function(player, ...) end) -- store the key
+)
lua
local Remote = Warp.Client("Remote")

.fromClientArray yield

Create new Warp events with array.

lua
(
+	{ any }
+)
lua
local Events = Warp.fromClientArray({
+	"Remote1",
+	"Remote2",
+	"Remote3",
+})
 
-Remote:Disconnect(connection)

:DisconnectAll

Disconnect All the event connection.

lua
Remote:DisconnectAll()

:Fire

Fire the event to the spesific server with data.

lua
(
+-- Usage
+Events.Remote1:Connect(function(...) end)
+Events.Remote2:Connect(function(...) end)
+Events.Remote3:Connect(function(...) end)

:Connect

Connect event to receive incoming from server way.

lua
(
+	callback: (...any) -> ()
+)
lua
Remote:Connect(function(...)
+	print(...)
+end)

:Once

This function likely :Connect but it disconnect the event once it fired.

lua
(
+	callback: (...any) -> ()
+)
lua
Remote:Once(function(...)
+	print(...)
+end)

:Disconnect

Disconnect the event connection.

lua
(
+	key: string
+): boolean
lua
local connection = Remote:Connect(function(player, ...) end) -- store the key
+
+Remote:Disconnect(connection)

:DisconnectAll

Disconnect All the event connection.

lua
Remote:DisconnectAll()

:Fire

Fire the event to the spesific server with data.

lua
(
 	reliable: boolean,
 	...: any
-)
lua
Remote:Fire(true, "Hello World!")

WARNING

This function have rate limiting it self and configured from server.

:Invoke

Semiliar to :InvokeServer, its for Invoke to a server.

lua
(
+)
lua
Remote:Fire(true, "Hello World!")

WARNING

This function have rate limiting it self and configured from server.

:Invoke yield

Semiliar to :InvokeServer, but it have timeout system that not exists on RemoteFunction.InvokeServer.

lua
(
 	timeout: number,
 	...: any
-) -> (...any)
lua
local Request = Remote:Invoke(2, "Hello World!")

WARNING

This function is yielded, once it timeout it will return nil.

:Wait

Wait the event being triggered.

lua
Remote:Wait()

WARNING

This function is yielded, Invoke might also ping this one and also causing error.

:Destroy

Disconnect all connection of event and remove the event from Warp

lua
Remote:Destroy()
- +) -> (...any)
lua
local Request = Remote:Invoke(2, "Hello World!") -- this yield until it response

WARNING

This function is yielded, once it timeout it will return nil.

:Wait yield

Wait the event being triggered.

lua
Remote:Wait() -- :Wait return number value

WARNING

This function is yielded, Invoke might also ping this one and also causing error.

:Destroy

Disconnect all connection of event and remove the event from Warp list

lua
Remote:Destroy()
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/api/1.0/ratelimit.html b/docs/.vitepress/dist/api/1.0/ratelimit.html index 38184e7..0c4132e 100644 --- a/docs/.vitepress/dist/api/1.0/ratelimit.html +++ b/docs/.vitepress/dist/api/1.0/ratelimit.html @@ -5,30 +5,33 @@ Rate Limit | Warp - - + + + - - - - - + + + + + -
Skip to content

Rate Limit

Ratelimit is one of most useful feature.

( Configured on Server and For Client )

Setup

When creating a event on Server, you can add second argument as table rateLimit to limit the number of times the event can be called and the interval for reset the counter.

lua
-- Server
+    
Skip to content

Rate Limit feature

Ratelimit is one of most useful feature.

( Configured on Server only and For Client )

Setup

When creating a event on Server, you can add second argument (optional) as table rateLimit to limit the number of times the event can be called and the interval for reset the counter on client-side.

lua
-- Server
 -- Let's make the event have ratelimit with max 50 entrance for 2 seconds.
 local Remote = Warp.Server("Remote1", {
-	maxEntrance = 50, -- maximum 50 fires.
-	interval = 2, -- 2 seconds
+	rateLimit = {
+		maxEntrance = 50, -- maximum 50 fires.
+		interval = 2, -- 2 seconds
+	}
 })
 -- Now the Event RateLimit is configured, and ready to use.
--- No need anything to adds on client side.
lua
-- Client
-local Remote = Warp.Client("Remote1")
--- The Event will automatic it self for retreiving the rate limit configuration from the server.
- +-- No need anything to adds on client side.
lua
-- Client
+local Remote = Warp.Client("Remote1") -- Yields, retreive rateLimit configuration.
+-- The Event will automatic it self for retreiving the rate limit configuration from the server.
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/api/1.0/server.html b/docs/.vitepress/dist/api/1.0/server.html index d185899..6c7bded 100644 --- a/docs/.vitepress/dist/api/1.0/server.html +++ b/docs/.vitepress/dist/api/1.0/server.html @@ -5,52 +5,77 @@ Server | Warp - - + + + - - - - - + + + + + -
Skip to content

Server

For Server-sided

.Server

Create new Warp event.

lua
(
+    
Skip to content

Server event

For Server-sided

.Server yield

Create new Warp event.

lua
(
 	Identifier: string,
 	rateLimit: {
-		maxEntrance: number,
-		interval: number,
+		maxEntrance: number?,
+		interval: number?,
 	}?
-)
lua
local Remote = Warp.new("Remote")

:Connect

Connect event to receive incoming from client way.

lua
(
-	player: Player,
-	callback: (...any) -> ()
-): string
lua
Remote:Connect(function(player, ...)
-	print(player, ...)
-end)

:Once

This function likely :Connect but it disconnect the event once it fired.

lua
(
-	player: Player,
-	callback: (...any) -> ()
-)
lua
Remote:Once(function(player, ...)
-	print(player, ...)
-end)

:Disconnect

Disconnect the event connection.

lua
(
-	key: string
-)
lua
local connection = Remote:Connect(function(player, ...) end) -- store the key
+)
lua
local Remote = Warp.Server("Remote")

.fromServerArray yield

Create new Warp events with array.

lua
(
+	{ any }
+)
lua
local Events = Warp.fromServerArray({
+	["Remote1"] = {
+		rateLimit = {
+			maxEntrance: 50,
+			interval: 1,
+		}
+	}, -- with rateLimit configuration
+	"Remote2", -- without rateLimit configuration
+	["Remote3"] = {
+		rateLimit = {
+			maxEntrance: 10,
+		}
+	}, -- with rateLimit configuration
+})
 
-Remote:Disconnect(connection)

:DisconnectAll

Disconnect All the event connection.

lua
Remote:DisconnectAll()

:Fire

Fire the event to a client.

lua
(
+-- Usage
+Events.Remote1:Connect(function(player, ...) end)
+Events.Remote2:Connect(function(player, ...) end)
+Events.Remote3:Connect(function(player, ...) end)

:Connect

Connect event to receive incoming from client way.

lua
(
+	player: Player,
+	callback: (...any) -> ()
+): string
lua
Remote:Connect(function(player, ...)
+	print(player, ...)
+end)

:Once

This function likely :Connect but it disconnect the event once it fired.

lua
(
+	player: Player,
+	callback: (...any) -> ()
+)
lua
Remote:Once(function(player, ...)
+	print(player, ...)
+end)

:Disconnect

Disconnect the event connection.

lua
(
+	key: string
+): boolean
lua
local connection = Remote:Connect(function(player, ...) end) -- store the key
+
+Remote:Disconnect(connection)

:DisconnectAll

Disconnect All the event connection.

lua
Remote:DisconnectAll()

:Fire

Fire the event to a client.

lua
(
 	reliable: boolean,
     player: Player,
 	...: any
-)
lua
Remote:Fire(true, player, "Hello World!")

:Fires Server Only

Fire the event to all clients.

lua
(
+)
lua
Remote:Fire(true, player, "Hello World!")

:Fires Server Only

Fire the event to all clients.

lua
(
 	reliable: boolean,
 	...: any
-)
lua
Remote:Fires(true, "Hello World!")

:Invoke

Semiliar to :InvokeClient, its for Invoke to a client.

lua
(
+)
lua
Remote:Fires(true, "Hello World!")

:FireExcept Server Only

Fire the event to all clients but except a players.

lua
(
+	reliable: boolean,
+	except: { Player },
+	...: any
+)
lua
Remote:FireExcept(true, { Players.Eternity_Devs, Players.Player2 }, "Hello World!") -- this will sent to all players except { Players.Eternity_Devs, Players.Player2 }.

:Invoke yield

Semiliar to :InvokeClient, but it have timeout system that not exists on RemoteFunction.InvokeClient.

lua
(
 	timeout: number,
     player: Player,
 	...: any
-) -> (...any)
lua
local Request = Remote:Invoke(2, player, "Hello World!")

WARNING

This function is yielded, once it timeout it will return nil.

:Wait

Wait the event being triggered.

lua
Remote:Wait()

WARNING

This function is yielded, Invoke might also ping this one and also causing error.

:Destroy

Disconnect all connection of event and remove the event from Warp.

lua
Remote:Destroy()
- +) -> (...any)
lua
local Request = Remote:Invoke(2, player, "Hello World!")

WARNING

This function is yielded, once it timeout it will return nil.

:Wait yield

Wait the event being triggered.

lua
Remote:Wait() -- :Wait return number value

WARNING

This function is yielded, Invoke might also ping this one and also causing error.

:Destroy

Disconnect all connection of event and remove the event from Warp.

lua
Remote:Destroy()
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/api/1.0/warp.html b/docs/.vitepress/dist/api/1.0/warp.html index 025d869..d10c21d 100644 --- a/docs/.vitepress/dist/api/1.0/warp.html +++ b/docs/.vitepress/dist/api/1.0/warp.html @@ -5,23 +5,24 @@ Warp - - + + + - - - - - + + + + + -
Skip to content

Warp 1.0

The public main of the Warp library.

.Server server side

Create a new event for Server-Side

lua
-- Server
-local Event1 = Warp.Server("Event1")

.Client client side

Create a new event for Client-Side.

lua
-- Client
-local Event1 = Warp.Client("Event1")
- +
Skip to content

Warp 1.0

The public main of the Warp library.

.Server server side

Create a new event for Server-Side

lua
-- Server
+local Event1 = Warp.Server("Event1")

.Client client side

Create a new event for Client-Side.

lua
-- Client
+local Event1 = Warp.Client("Event1")
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.js b/docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.js deleted file mode 100644 index 2db9ab8..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.js +++ /dev/null @@ -1,21 +0,0 @@ -import{_ as s,c as i,o as a,U as e}from"./chunks/framework.BouBWMxc.js";const g=JSON.parse('{"title":"Client","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/client.md","filePath":"api/1.0/client.md"}'),t={name:"api/1.0/client.md"},l=e(`

Client

For Client-sided

.Client

Create new Warp event.

lua
(
-	Identifier: string
-)
lua
local Remote = Warp.new("Remote")

:Connect

Connect event to receive incoming from server way.

lua
(
-	callback: (...any) -> ()
-)
lua
Remote:Connect(function(...)
-	print(...)
-end)

:Once

This function likely :Connect but it disconnect the event once it fired.

lua
(
-	callback: (...any) -> ()
-)
lua
Remote:Once(function(...)
-	print(...)
-end)

:Disconnect

Disconnect the event connection.

lua
(
-	key: string
-)
lua
local connection = Remote:Connect(function(player, ...) end) -- store the key
-
-Remote:Disconnect(connection)

:DisconnectAll

Disconnect All the event connection.

lua
Remote:DisconnectAll()

:Fire

Fire the event to the spesific server with data.

lua
(
-	reliable: boolean,
-	...: any
-)
lua
Remote:Fire(true, "Hello World!")

WARNING

This function have rate limiting it self and configured from server.

:Invoke

Semiliar to :InvokeServer, its for Invoke to a server.

lua
(
-	timeout: number,
-	...: any
-) -> (...any)
lua
local Request = Remote:Invoke(2, "Hello World!")

WARNING

This function is yielded, once it timeout it will return nil.

:Wait

Wait the event being triggered.

lua
Remote:Wait()

WARNING

This function is yielded, Invoke might also ping this one and also causing error.

:Destroy

Disconnect all connection of event and remove the event from Warp

lua
Remote:Destroy()
`,32),n=[l];function p(h,k,d,c,o,r){return a(),i("div",null,n)}const u=s(t,[["render",p]]);export{g as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.lean.js b/docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.lean.js deleted file mode 100644 index 477b2d9..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_client.md.FTim0Kz_.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,U as e}from"./chunks/framework.BouBWMxc.js";const g=JSON.parse('{"title":"Client","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/client.md","filePath":"api/1.0/client.md"}'),t={name:"api/1.0/client.md"},l=e("",32),n=[l];function p(h,k,d,c,o,r){return a(),i("div",null,n)}const u=s(t,[["render",p]]);export{g as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.js b/docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.js deleted file mode 100644 index e080ddc..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.js +++ /dev/null @@ -1,10 +0,0 @@ -import{_ as i,c as s,o as a,U as e}from"./chunks/framework.BouBWMxc.js";const g=JSON.parse('{"title":"Rate Limit","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/ratelimit.md","filePath":"api/1.0/ratelimit.md"}'),t={name:"api/1.0/ratelimit.md"},n=e(`

Rate Limit

Ratelimit is one of most useful feature.

( Configured on Server and For Client )

Setup

When creating a event on Server, you can add second argument as table rateLimit to limit the number of times the event can be called and the interval for reset the counter.

lua
-- Server
--- Let's make the event have ratelimit with max 50 entrance for 2 seconds.
-local Remote = Warp.Server("Remote1", {
-	maxEntrance = 50, -- maximum 50 fires.
-	interval = 2, -- 2 seconds
-})
--- Now the Event RateLimit is configured, and ready to use.
--- No need anything to adds on client side.
lua
-- Client
-local Remote = Warp.Client("Remote1")
--- The Event will automatic it self for retreiving the rate limit configuration from the server.
`,6),l=[n];function h(p,r,k,d,o,c){return a(),s("div",null,l)}const m=i(t,[["render",h]]);export{g as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.lean.js b/docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.lean.js deleted file mode 100644 index 8489fb8..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_ratelimit.md.gPb2PQ91.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as s,o as a,U as e}from"./chunks/framework.BouBWMxc.js";const g=JSON.parse('{"title":"Rate Limit","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/ratelimit.md","filePath":"api/1.0/ratelimit.md"}'),t={name:"api/1.0/ratelimit.md"},n=e("",6),l=[n];function h(p,r,k,d,o,c){return a(),s("div",null,l)}const m=i(t,[["render",h]]);export{g as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.js b/docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.js deleted file mode 100644 index 117e048..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.js +++ /dev/null @@ -1,32 +0,0 @@ -import{_ as t,D as n,c as l,m as s,a as i,I as p,U as a,o as h}from"./chunks/framework.BouBWMxc.js";const B=JSON.parse('{"title":"Server","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/server.md","filePath":"api/1.0/server.md"}'),k={name:"api/1.0/server.md"},d=a(`

Server

For Server-sided

.Server

Create new Warp event.

lua
(
-	Identifier: string,
-	rateLimit: {
-		maxEntrance: number,
-		interval: number,
-	}?
-)
lua
local Remote = Warp.new("Remote")

:Connect

Connect event to receive incoming from client way.

lua
(
-	player: Player,
-	callback: (...any) -> ()
-): string
lua
Remote:Connect(function(player, ...)
-	print(player, ...)
-end)

:Once

This function likely :Connect but it disconnect the event once it fired.

lua
(
-	player: Player,
-	callback: (...any) -> ()
-)
lua
Remote:Once(function(player, ...)
-	print(player, ...)
-end)

:Disconnect

Disconnect the event connection.

lua
(
-	key: string
-)
lua
local connection = Remote:Connect(function(player, ...) end) -- store the key
-
-Remote:Disconnect(connection)

:DisconnectAll

Disconnect All the event connection.

lua
Remote:DisconnectAll()

:Fire

Fire the event to a client.

lua
(
-	reliable: boolean,
-    player: Player,
-	...: any
-)
lua
Remote:Fire(true, player, "Hello World!")
`,20),r={id:"fires",tabindex:"-1"},o=s("code",null,":Fires",-1),c=s("a",{class:"header-anchor",href:"#fires","aria-label":'Permalink to "`:Fires` "'},"​",-1),E=a(`

Fire the event to all clients.

lua
(
-	reliable: boolean,
-	...: any
-)
lua
Remote:Fires(true, "Hello World!")

:Invoke

Semiliar to :InvokeClient, its for Invoke to a client.

lua
(
-	timeout: number,
-    player: Player,
-	...: any
-) -> (...any)
lua
local Request = Remote:Invoke(2, player, "Hello World!")

WARNING

This function is yielded, once it timeout it will return nil.

:Wait

Wait the event being triggered.

lua
Remote:Wait()

WARNING

This function is yielded, Invoke might also ping this one and also causing error.

:Destroy

Disconnect all connection of event and remove the event from Warp.

lua
Remote:Destroy()
`,13);function g(y,u,v,b,F,C){const e=n("Badge");return h(),l("div",null,[d,s("h2",r,[o,i(),p(e,{type:"tip",text:"Server Only"}),i(),c]),E])}const f=t(k,[["render",g]]);export{B as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.lean.js b/docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.lean.js deleted file mode 100644 index f268913..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_server.md.w4zn1XZZ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,D as n,c as l,m as s,a as i,I as p,U as a,o as h}from"./chunks/framework.BouBWMxc.js";const B=JSON.parse('{"title":"Server","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/server.md","filePath":"api/1.0/server.md"}'),k={name:"api/1.0/server.md"},d=a("",20),r={id:"fires",tabindex:"-1"},o=s("code",null,":Fires",-1),c=s("a",{class:"header-anchor",href:"#fires","aria-label":'Permalink to "`:Fires` "'},"​",-1),E=a("",13);function g(y,u,v,b,F,C){const e=n("Badge");return h(),l("div",null,[d,s("h2",r,[o,i(),p(e,{type:"tip",text:"Server Only"}),i(),c]),E])}const f=t(k,[["render",g]]);export{B as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.js b/docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.js deleted file mode 100644 index e9d4792..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.js +++ /dev/null @@ -1,3 +0,0 @@ -import{_ as n,D as p,c as l,m as s,a as e,I as i,U as t,o as r}from"./chunks/framework.BouBWMxc.js";const B=JSON.parse('{"title":"Warp","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/warp.md","filePath":"api/1.0/warp.md"}'),h={name:"api/1.0/warp.md"},o={id:"warp",tabindex:"-1"},d=s("a",{class:"header-anchor",href:"#warp","aria-label":'Permalink to "Warp "'},"​",-1),c=s("p",null,"The public main of the Warp library.",-1),k={id:"server",tabindex:"-1"},_=s("code",null,".Server",-1),E=s("a",{class:"header-anchor",href:"#server","aria-label":'Permalink to "`.Server` "'},"​",-1),g=t(`

Create a new event for Server-Side

lua
-- Server
-local Event1 = Warp.Server("Event1")
`,2),y={id:"client",tabindex:"-1"},v=s("code",null,".Client",-1),u=s("a",{class:"header-anchor",href:"#client","aria-label":'Permalink to "`.Client` "'},"​",-1),C=t(`

Create a new event for Client-Side.

lua
-- Client
-local Event1 = Warp.Client("Event1")
`,2);function m(b,S,f,A,F,T){const a=p("Badge");return r(),l("div",null,[s("h1",o,[e("Warp "),i(a,{type:"tip",text:"1.0"}),e(),d]),c,s("h2",k,[_,e(),i(a,{type:"tip",text:"server side"}),e(),E]),g,s("h2",y,[v,e(),i(a,{type:"tip",text:"client side"}),e(),u]),C])}const D=n(h,[["render",m]]);export{B as __pageData,D as default}; diff --git a/docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.lean.js b/docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.lean.js deleted file mode 100644 index 8fb777d..0000000 --- a/docs/.vitepress/dist/assets/api_1.0_warp.md.u63PLmMH.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as n,D as p,c as l,m as s,a as e,I as i,U as t,o as r}from"./chunks/framework.BouBWMxc.js";const B=JSON.parse('{"title":"Warp","description":"","frontmatter":{},"headers":[],"relativePath":"api/1.0/warp.md","filePath":"api/1.0/warp.md"}'),h={name:"api/1.0/warp.md"},o={id:"warp",tabindex:"-1"},d=s("a",{class:"header-anchor",href:"#warp","aria-label":'Permalink to "Warp "'},"​",-1),c=s("p",null,"The public main of the Warp library.",-1),k={id:"server",tabindex:"-1"},_=s("code",null,".Server",-1),E=s("a",{class:"header-anchor",href:"#server","aria-label":'Permalink to "`.Server` "'},"​",-1),g=t("",2),y={id:"client",tabindex:"-1"},v=s("code",null,".Client",-1),u=s("a",{class:"header-anchor",href:"#client","aria-label":'Permalink to "`.Client` "'},"​",-1),C=t("",2);function m(b,S,f,A,F,T){const a=p("Badge");return r(),l("div",null,[s("h1",o,[e("Warp "),i(a,{type:"tip",text:"1.0"}),e(),d]),c,s("h2",k,[_,e(),i(a,{type:"tip",text:"server side"}),e(),E]),g,s("h2",y,[v,e(),i(a,{type:"tip",text:"client side"}),e(),u]),C])}const D=n(h,[["render",m]]);export{B as __pageData,D as default}; diff --git a/docs/.vitepress/dist/assets/app.hWp2if6e.js b/docs/.vitepress/dist/assets/app.hWp2if6e.js deleted file mode 100644 index cd5a7ef..0000000 --- a/docs/.vitepress/dist/assets/app.hWp2if6e.js +++ /dev/null @@ -1,7 +0,0 @@ -import{j as o,a1 as p,a2 as u,a3 as c,a4 as l,a5 as f,a6 as d,a7 as m,a8 as h,a9 as A,aa as g,ab as v,d as P,u as y,l as C,z as w,ac as _,ad as b,ae as E,af as R}from"./chunks/framework.BouBWMxc.js";import{t as D}from"./chunks/theme.makJcAKq.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(D),j=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&_(),b(),E(),s.setup&&s.setup(),()=>R(s.Layout)}});async function L(){const e=S(),a=O();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function O(){return h(j)}function S(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=v(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&L().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{L as createApp}; -function __vite__mapDeps(indexes) { - if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = [] - } - return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) -} diff --git a/docs/.vitepress/dist/assets/chunks/framework.BouBWMxc.js b/docs/.vitepress/dist/assets/chunks/framework.BouBWMxc.js deleted file mode 100644 index d4944c1..0000000 --- a/docs/.vitepress/dist/assets/chunks/framework.BouBWMxc.js +++ /dev/null @@ -1 +0,0 @@ -function fs(e,t){const n=new Set(e.split(","));return t?s=>n.has(s.toLowerCase()):s=>n.has(s)}const te={},yt=[],Ee=()=>{},no=()=>!1,Ut=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ds=e=>e.startsWith("onUpdate:"),ie=Object.assign,hs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},so=Object.prototype.hasOwnProperty,Y=(e,t)=>so.call(e,t),B=Array.isArray,_t=e=>_n(e)==="[object Map]",Pr=e=>_n(e)==="[object Set]",k=e=>typeof e=="function",ne=e=>typeof e=="string",Tt=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Mr=e=>(Z(e)||k(e))&&k(e.then)&&k(e.catch),Ir=Object.prototype.toString,_n=e=>Ir.call(e),ro=e=>_n(e).slice(8,-1),Nr=e=>_n(e)==="[object Object]",ps=e=>ne(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pt=fs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),bn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},io=/-(\w)/g,Ie=bn(e=>e.replace(io,(t,n)=>n?n.toUpperCase():"")),oo=/\B([A-Z])/g,ut=bn(e=>e.replace(oo,"-$1").toLowerCase()),vn=bn(e=>e.charAt(0).toUpperCase()+e.slice(1)),rn=bn(e=>e?`on${vn(e)}`:""),Qe=(e,t)=>!Object.is(e,t),Hn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},lo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},co=e=>{const t=ne(e)?Number(e):NaN;return isNaN(t)?e:t};let Vs;const Fr=()=>Vs||(Vs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gs(e){if(B(e)){const t={};for(let n=0;n{if(n){const s=n.split(uo);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ms(e){let t="";if(ne(e))t=e;else if(B(e))for(let n=0;nne(e)?e:e==null?"":B(e)||Z(e)&&(e.toString===Ir||!k(e.toString))?JSON.stringify(e,Hr,2):String(e),Hr=(e,t)=>t&&t.__v_isRef?Hr(e,t.value):_t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[jn(s,i)+" =>"]=r,n),{})}:Pr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>jn(n))}:Tt(t)?jn(t):Z(t)&&!B(t)&&!Nr(t)?String(t):t,jn=(e,t="")=>{var n;return Tt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let be;class mo{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=be,!t&&be&&(this.index=(be.scopes||(be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=be;try{return be=this,t()}finally{be=n}}}on(){be=this}off(){be=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n=2))break;dt(),this._queryings--}return this._dirtyLevel>=2}set dirty(t){this._dirtyLevel=t?3:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ze,n=ot;try{return ze=!0,ot=this,this._runnings++,Ds(this),this.fn()}finally{Bs(this),this._runnings--,ot=n,ze=t}}stop(){var t;this.active&&(Ds(this),Bs(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function bo(e){return e.value}function Ds(e){e._trackId++,e._depsLength=0}function Bs(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},an=new WeakMap,lt=Symbol(""),Qn=Symbol("");function ye(e,t,n){if(ze&&ot){let s=an.get(e);s||an.set(e,s=new Map);let r=s.get(n);r||s.set(n,r=kr(()=>s.delete(n))),Br(ot,r)}}function He(e,t,n,s,r,i){const o=an.get(e);if(!o)return;let l=[];if(t==="clear")l=[...o.values()];else if(n==="length"&&B(e)){const c=Number(s);o.forEach((u,d)=>{(d==="length"||!Tt(d)&&d>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":B(e)?ps(n)&&l.push(o.get("length")):(l.push(o.get(lt)),_t(e)&&l.push(o.get(Qn)));break;case"delete":B(e)||(l.push(o.get(lt)),_t(e)&&l.push(o.get(Qn)));break;case"set":_t(e)&&l.push(o.get(lt));break}_s();for(const c of l)c&&Ur(c,3);bs()}function vo(e,t){var n;return(n=an.get(e))==null?void 0:n.get(t)}const wo=fs("__proto__,__v_isRef,__isVue"),Kr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Tt)),Us=xo();function xo(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){ft(),_s();const s=J(this)[t].apply(this,n);return bs(),dt(),s}}),e}function Co(e){const t=J(this);return ye(t,"has",e),t.hasOwnProperty(e)}class Wr{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,s){const r=this._isReadonly,i=this._shallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?$o:Yr:i?Gr:zr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=B(t);if(!r){if(o&&Y(Us,n))return Reflect.get(Us,n,s);if(n==="hasOwnProperty")return Co}const l=Reflect.get(t,n,s);return(Tt(n)?Kr.has(n):wo(n))||(r||ye(t,"get",n),i)?l:de(l)?o&&ps(n)?l:l.value:Z(l)?r?Cn(l):xn(l):l}}class qr extends Wr{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._shallow){const c=Ct(i);if(!un(s)&&!Ct(s)&&(i=J(i),s=J(s)),!B(t)&&de(i)&&!de(s))return c?!1:(i.value=s,!0)}const o=B(t)&&ps(n)?Number(n)e,wn=e=>Reflect.getPrototypeOf(e);function Wt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(Qe(t,i)&&ye(r,"get",t),ye(r,"get",i));const{has:o}=wn(r),l=s?vs:n?Cs:Ht;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function qt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(Qe(e,r)&&ye(s,"has",e),ye(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function zt(e,t=!1){return e=e.__v_raw,!t&&ye(J(e),"iterate",lt),Reflect.get(e,"size",e)}function ks(e){e=J(e);const t=J(this);return wn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Ks(e,t){t=J(t);const n=J(this),{has:s,get:r}=wn(n);let i=s.call(n,e);i||(e=J(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Qe(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Ws(e){const t=J(this),{has:n,get:s}=wn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&He(t,"delete",e,void 0),i}function qs(){const e=J(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function Gt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?vs:e?Cs:Ht;return!e&&ye(l,"iterate",lt),o.forEach((u,d)=>s.call(r,c(u),c(d),i))}}function Yt(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=_t(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,u=r[e](...s),d=n?vs:t?Cs:Ht;return!t&&ye(i,"iterate",c?Qn:lt),{next(){const{value:h,done:m}=u.next();return m?{value:h,done:m}:{value:l?[d(h[0]),d(h[1])]:d(h),done:m}},[Symbol.iterator](){return this}}}}function De(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ro(){const e={get(i){return Wt(this,i)},get size(){return zt(this)},has:qt,add:ks,set:Ks,delete:Ws,clear:qs,forEach:Gt(!1,!1)},t={get(i){return Wt(this,i,!1,!0)},get size(){return zt(this)},has:qt,add:ks,set:Ks,delete:Ws,clear:qs,forEach:Gt(!1,!0)},n={get(i){return Wt(this,i,!0)},get size(){return zt(this,!0)},has(i){return qt.call(this,i,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Gt(!0,!1)},s={get(i){return Wt(this,i,!0,!0)},get size(){return zt(this,!0)},has(i){return qt.call(this,i,!0)},add:De("add"),set:De("set"),delete:De("delete"),clear:De("clear"),forEach:Gt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Yt(i,!1,!1),n[i]=Yt(i,!0,!1),t[i]=Yt(i,!1,!0),s[i]=Yt(i,!0,!0)}),[e,n,t,s]}const[Oo,Lo,Po,Mo]=Ro();function ws(e,t){const n=t?e?Mo:Po:e?Lo:Oo;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Y(n,r)&&r in s?n:s,r,i)}const Io={get:ws(!1,!1)},No={get:ws(!1,!0)},Fo={get:ws(!0,!1)},zr=new WeakMap,Gr=new WeakMap,Yr=new WeakMap,$o=new WeakMap;function Ho(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function jo(e){return e.__v_skip||!Object.isExtensible(e)?0:Ho(ro(e))}function xn(e){return Ct(e)?e:xs(e,!1,So,Io,zr)}function Vo(e){return xs(e,!1,Ao,No,Gr)}function Cn(e){return xs(e,!0,To,Fo,Yr)}function xs(e,t,n,s,r){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=jo(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function bt(e){return Ct(e)?bt(e.__v_raw):!!(e&&e.__v_isReactive)}function Ct(e){return!!(e&&e.__v_isReadonly)}function un(e){return!!(e&&e.__v_isShallow)}function Jr(e){return bt(e)||Ct(e)}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Mt(e){return cn(e,"__v_skip",!0),e}const Ht=e=>Z(e)?xn(e):e,Cs=e=>Z(e)?Cn(e):e;class Xr{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new ys(()=>t(this._value),()=>fn(this,1)),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return Es(t),(!t._cacheable||t.effect.dirty)&&Qe(t._value,t._value=t.effect.run())&&fn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function Do(e,t,n=!1){let s,r;const i=k(e);return i?(s=e,r=Ee):(s=e.get,r=e.set),new Xr(s,r,i||!r,n)}function Es(e){ze&&ot&&(e=J(e),Br(ot,e.dep||(e.dep=kr(()=>e.dep=void 0,e instanceof Xr?e:void 0))))}function fn(e,t=3,n){e=J(e);const s=e.dep;s&&Ur(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function me(e){return Zr(e,!1)}function Qr(e){return Zr(e,!0)}function Zr(e,t){return de(e)?e:new Bo(e,t)}class Bo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ht(t)}get value(){return Es(this),this._value}set value(t){const n=this.__v_isShallow||un(t)||Ct(t);t=n?t:J(t),Qe(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Ht(t),fn(this,3))}}function ei(e){return de(e)?e.value:e}const Uo={get:(e,t,n)=>ei(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return de(r)&&!de(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function ti(e){return bt(e)?e:new Proxy(e,Uo)}class ko{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>Es(this),()=>fn(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function Ko(e){return new ko(e)}class Wo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return vo(J(this._object),this._key)}}class qo{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function zo(e,t,n){return de(e)?e:k(e)?new qo(e):Z(e)&&arguments.length>1?Go(e,t,n):me(e)}function Go(e,t,n){const s=e[t];return de(s)?s:new Wo(e,t,n)}function Ge(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){En(i,t,n)}return r}function Se(e,t,n,s){if(k(e)){const i=Ge(e,t,n,s);return i&&Mr(i)&&i.catch(o=>{En(o,t,n)}),i}const r=[];for(let i=0;i>>1,r=ue[s],i=Vt(r);iMe&&ue.splice(t,1)}function Qo(e){B(e)?vt.push(...e):(!$e||!$e.includes(e,e.allowRecurse?rt+1:rt))&&vt.push(e),si()}function zs(e,t,n=jt?Me+1:0){for(;nVt(n)-Vt(s)),rt=0;rt<$e.length;rt++)$e[rt]();$e=null,rt=0}}const Vt=e=>e.id==null?1/0:e.id,Zo=(e,t)=>{const n=Vt(e)-Vt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ri(e){Zn=!1,jt=!0,ue.sort(Zo);try{for(Me=0;Mene(w)?w.trim():w)),h&&(r=n.map(lo))}let l,c=s[l=rn(t)]||s[l=rn(Ie(t))];!c&&i&&(c=s[l=rn(ut(t))]),c&&Se(c,e,6,r);const u=s[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(u,e,6,r)}}function ii(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!k(e)){const c=u=>{const d=ii(u,t,!0);d&&(l=!0,ie(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(Z(e)&&s.set(e,null),null):(B(i)?i.forEach(c=>o[c]=null):ie(o,i),Z(e)&&s.set(e,o),o)}function Tn(e,t){return!e||!Ut(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,ut(t))||Y(e,t))}let fe=null,An=null;function hn(e){const t=fe;return fe=e,An=e&&e.type.__scopeId||null,t}function La(e){An=e}function Pa(){An=null}function tl(e,t=fe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&ir(-1);const i=hn(t);let o;try{o=e(...r)}finally{hn(i),s._d&&ir(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Vn(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:u,render:d,renderCache:h,data:m,setupState:w,ctx:L,inheritAttrs:I}=e;let V,W;const X=hn(e);try{if(n.shapeFlag&4){const y=r||s,N=y;V=Ae(d.call(N,y,h,i,w,m,L)),W=c}else{const y=t;V=Ae(y.length>1?y(i,{attrs:c,slots:l,emit:u}):y(i,null)),W=t.props?c:nl(c)}}catch(y){Ft.length=0,En(y,e,1),V=ae(ve)}let p=V;if(W&&I!==!1){const y=Object.keys(W),{shapeFlag:N}=p;y.length&&N&7&&(o&&y.some(ds)&&(W=sl(W,o)),p=Ze(p,W))}return n.dirs&&(p=Ze(p),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),V=p,hn(X),V}const nl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ut(n))&&((t||(t={}))[n]=e[n]);return t},sl=(e,t)=>{const n={};for(const s in e)(!ds(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function rl(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,u=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Gs(s,o,u):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function ci(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):Qo(e)}const ll=Symbol.for("v-scx"),cl=()=>xt(ll);function ai(e,t){return Rn(e,null,t)}function Na(e,t){return Rn(e,null,{flush:"post"})}const Jt={};function Ye(e,t,n){return Rn(e,t,n)}function Rn(e,t,{immediate:n,deep:s,flush:r,once:i,onTrack:o,onTrigger:l}=te){if(t&&i){const P=t;t=(...D)=>{P(...D),N()}}const c=ce,u=P=>s===!0?P:gt(P,s===!1?1:void 0);let d,h=!1,m=!1;if(de(e)?(d=()=>e.value,h=un(e)):bt(e)?(d=()=>u(e),h=!0):B(e)?(m=!0,h=e.some(P=>bt(P)||un(P)),d=()=>e.map(P=>{if(de(P))return P.value;if(bt(P))return u(P);if(k(P))return Ge(P,c,2)})):k(e)?t?d=()=>Ge(e,c,2):d=()=>(w&&w(),Se(e,c,3,[L])):d=Ee,t&&s){const P=d;d=()=>gt(P())}let w,L=P=>{w=p.onStop=()=>{Ge(P,c,4),w=p.onStop=void 0}},I;if(Nn)if(L=Ee,t?n&&Se(t,c,3,[d(),m?[]:void 0,L]):d(),r==="sync"){const P=cl();I=P.__watcherHandles||(P.__watcherHandles=[])}else return Ee;let V=m?new Array(e.length).fill(Jt):Jt;const W=()=>{if(!(!p.active||!p.dirty))if(t){const P=p.run();(s||h||(m?P.some((D,R)=>Qe(D,V[R])):Qe(P,V)))&&(w&&w(),Se(t,c,3,[P,V===Jt?void 0:m&&V[0]===Jt?[]:V,L]),V=P)}else p.run()};W.allowRecurse=!!t;let X;r==="sync"?X=W:r==="post"?X=()=>pe(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),X=()=>Ts(W));const p=new ys(d,Ee,X),y=jr(),N=()=>{p.stop(),y&&hs(y.effects,p)};return t?n?W():V=p.run():r==="post"?pe(p.run.bind(p),c&&c.suspense):p.run(),I&&I.push(N),N}function al(e,t,n){const s=this.proxy,r=ne(e)?e.includes(".")?ui(s,e):()=>s[e]:e.bind(s,s);let i;k(t)?i=t:(i=t.handler,n=t);const o=ce;St(this);const l=Rn(r,i.bind(s),n);return o?St(o):ct(),l}function ui(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r0){if(n>=t)return e;n++}if(s=s||new Set,s.has(e))return e;if(s.add(e),de(e))gt(e.value,t,n,s);else if(B(e))for(let r=0;r{gt(r,t,n,s)});else if(Nr(e))for(const r in e)gt(e[r],t,n,s);return e}function Pe(e,t,n,s){const r=e.dirs,i=t&&t.dirs;for(let o=0;o{e.isMounted=!0}),mi(()=>{e.isUnmounting=!0}),e}const we=[Function,Array],fi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:we,onEnter:we,onAfterEnter:we,onEnterCancelled:we,onBeforeLeave:we,onLeave:we,onAfterLeave:we,onLeaveCancelled:we,onBeforeAppear:we,onAppear:we,onAfterAppear:we,onAppearCancelled:we},fl={name:"BaseTransition",props:fi,setup(e,{slots:t}){const n=In(),s=ul();let r;return()=>{const i=t.default&&hi(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const I of i)if(I.type!==ve){o=I;break}}const l=J(e),{mode:c}=l;if(s.isLeaving)return Dn(o);const u=Js(o);if(!u)return Dn(o);const d=es(u,l,s,n);ts(u,d);const h=n.subTree,m=h&&Js(h);let w=!1;const{getTransitionKey:L}=u.type;if(L){const I=L();r===void 0?r=I:I!==r&&(r=I,w=!0)}if(m&&m.type!==ve&&(!it(u,m)||w)){const I=es(m,l,s,n);if(ts(m,I),c==="out-in")return s.isLeaving=!0,I.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Dn(o);c==="in-out"&&u.type!==ve&&(I.delayLeave=(V,W,X)=>{const p=di(s,m);p[String(m.key)]=m,V[Ke]=()=>{W(),V[Ke]=void 0,delete d.delayedLeave},d.delayedLeave=X})}return o}}},dl=fl;function di(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function es(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:h,onLeave:m,onAfterLeave:w,onLeaveCancelled:L,onBeforeAppear:I,onAppear:V,onAfterAppear:W,onAppearCancelled:X}=t,p=String(e.key),y=di(n,e),N=(R,T)=>{R&&Se(R,s,9,T)},P=(R,T)=>{const S=T[1];N(R,T),B(R)?R.every(K=>K.length<=1)&&S():R.length<=1&&S()},D={mode:i,persisted:o,beforeEnter(R){let T=l;if(!n.isMounted)if(r)T=I||l;else return;R[Ke]&&R[Ke](!0);const S=y[p];S&&it(e,S)&&S.el[Ke]&&S.el[Ke](),N(T,[R])},enter(R){let T=c,S=u,K=d;if(!n.isMounted)if(r)T=V||c,S=W||u,K=X||d;else return;let O=!1;const q=R[Xt]=re=>{O||(O=!0,re?N(K,[R]):N(S,[R]),D.delayedLeave&&D.delayedLeave(),R[Xt]=void 0)};T?P(T,[R,q]):q()},leave(R,T){const S=String(e.key);if(R[Xt]&&R[Xt](!0),n.isUnmounting)return T();N(h,[R]);let K=!1;const O=R[Ke]=q=>{K||(K=!0,T(),q?N(L,[R]):N(w,[R]),R[Ke]=void 0,y[S]===e&&delete y[S])};y[S]=e,m?P(m,[R,O]):O()},clone(R){return es(R,t,n,s)}};return D}function Dn(e){if(On(e))return e=Ze(e),e.children=null,e}function Js(e){return On(e)?e.children?e.children[0]:void 0:e}function ts(e,t){e.shapeFlag&6&&e.component?ts(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function hi(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,On=e=>e.type.__isKeepAlive;function hl(e,t){gi(e,"a",t)}function pl(e,t){gi(e,"da",t)}function gi(e,t,n=ce){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Ln(t,s,n),n){let r=n.parent;for(;r&&r.parent;)On(r.parent.vnode)&&gl(s,t,n,r),r=r.parent}}function gl(e,t,n,s){const r=Ln(t,e,s,!0);Pn(()=>{hs(s[t],r)},n)}function Ln(e,t,n=ce,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ft(),St(n);const l=Se(t,n,e,o);return ct(),dt(),l});return s?r.unshift(i):r.push(i),i}}const Ve=e=>(t,n=ce)=>(!Nn||e==="sp")&&Ln(e,(...s)=>t(...s),n),ml=Ve("bm"),At=Ve("m"),yl=Ve("bu"),_l=Ve("u"),mi=Ve("bum"),Pn=Ve("um"),bl=Ve("sp"),vl=Ve("rtg"),wl=Ve("rtc");function xl(e,t=ce){Ln("ec",e,t)}function Fa(e,t,n,s){let r;const i=n&&n[s];if(B(e)||ne(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lyn(t)?!(t.type===ve||t.type===ge&&!yi(t.children)):!0)?e:null}function Ha(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:rn(s)]=e[s];return n}const ns=e=>e?Ni(e)?Ms(e)||e.proxy:ns(e.parent):null,It=ie(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ns(e.parent),$root:e=>ns(e.root),$emit:e=>e.emit,$options:e=>Rs(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Ts(e.update)}),$nextTick:e=>e.n||(e.n=Sn.bind(e.proxy)),$watch:e=>al.bind(e)}),Bn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),Cl={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const w=o[t];if(w!==void 0)switch(w){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Bn(s,t))return o[t]=1,s[t];if(r!==te&&Y(r,t))return o[t]=2,r[t];if((u=e.propsOptions[0])&&Y(u,t))return o[t]=3,i[t];if(n!==te&&Y(n,t))return o[t]=4,n[t];ss&&(o[t]=0)}}const d=It[t];let h,m;if(d)return t==="$attrs"&&ye(e,"get",t),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&Y(n,t))return o[t]=4,n[t];if(m=c.config.globalProperties,Y(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Bn(r,t)?(r[t]=n,!0):s!==te&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==te&&Y(e,o)||Bn(t,o)||(l=i[0])&&Y(l,o)||Y(s,o)||Y(It,o)||Y(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ja(){return El().slots}function El(){const e=In();return e.setupContext||(e.setupContext=$i(e))}function Xs(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ss=!0;function Sl(e){const t=Rs(e),n=e.proxy,s=e.ctx;ss=!1,t.beforeCreate&&Qs(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:u,created:d,beforeMount:h,mounted:m,beforeUpdate:w,updated:L,activated:I,deactivated:V,beforeDestroy:W,beforeUnmount:X,destroyed:p,unmounted:y,render:N,renderTracked:P,renderTriggered:D,errorCaptured:R,serverPrefetch:T,expose:S,inheritAttrs:K,components:O,directives:q,filters:re}=t;if(u&&Tl(u,s,null),o)for(const G in o){const $=o[G];k($)&&(s[G]=$.bind(n))}if(r){const G=r.call(n,n);Z(G)&&(e.data=xn(G))}if(ss=!0,i)for(const G in i){const $=i[G],Ne=k($)?$.bind(n,n):k($.get)?$.get.bind(n,n):Ee,kt=!k($)&&k($.set)?$.set.bind(n):Ee,et=se({get:Ne,set:kt});Object.defineProperty(s,G,{enumerable:!0,configurable:!0,get:()=>et.value,set:Oe=>et.value=Oe})}if(l)for(const G in l)_i(l[G],s,n,G);if(c){const G=k(c)?c.call(n):c;Reflect.ownKeys(G).forEach($=>{Ml($,G[$])})}d&&Qs(d,e,"c");function H(G,$){B($)?$.forEach(Ne=>G(Ne.bind(n))):$&&G($.bind(n))}if(H(ml,h),H(At,m),H(yl,w),H(_l,L),H(hl,I),H(pl,V),H(xl,R),H(wl,P),H(vl,D),H(mi,X),H(Pn,y),H(bl,T),B(S))if(S.length){const G=e.exposed||(e.exposed={});S.forEach($=>{Object.defineProperty(G,$,{get:()=>n[$],set:Ne=>n[$]=Ne})})}else e.exposed||(e.exposed={});N&&e.render===Ee&&(e.render=N),K!=null&&(e.inheritAttrs=K),O&&(e.components=O),q&&(e.directives=q)}function Tl(e,t,n=Ee){B(e)&&(e=rs(e));for(const s in e){const r=e[s];let i;Z(r)?"default"in r?i=xt(r.from||s,r.default,!0):i=xt(r.from||s):i=xt(r),de(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Qs(e,t,n){Se(B(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function _i(e,t,n,s){const r=s.includes(".")?ui(n,s):()=>n[s];if(ne(e)){const i=t[e];k(i)&&Ye(r,i)}else if(k(e))Ye(r,e.bind(n));else if(Z(e))if(B(e))e.forEach(i=>_i(i,t,n,s));else{const i=k(e.handler)?e.handler.bind(n):t[e.handler];k(i)&&Ye(r,i,e)}}function Rs(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(u=>pn(c,u,o,!0)),pn(c,t,o)),Z(t)&&i.set(t,c),c}function pn(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&pn(e,i,n,!0),r&&r.forEach(o=>pn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Al[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Al={data:Zs,props:er,emits:er,methods:Lt,computed:Lt,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:Lt,directives:Lt,watch:Ol,provide:Zs,inject:Rl};function Zs(e,t){return t?e?function(){return ie(k(e)?e.call(this,this):e,k(t)?t.call(this,this):t)}:t:e}function Rl(e,t){return Lt(rs(e),rs(t))}function rs(e){if(B(e)){const t={};for(let n=0;n1)return n&&k(t)?t.call(s&&s.proxy):t}}function Il(e,t,n,s=!1){const r={},i={};cn(i,Mn,1),e.propsDefaults=Object.create(null),vi(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Vo(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Nl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let u=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,w]=wi(h,t,!0);ie(o,m),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return Z(e)&&s.set(e,yt),yt;if(B(i))for(let d=0;d-1,w[1]=I<0||L-1||Y(w,"default"))&&l.push(h)}}}const u=[o,l];return Z(e)&&s.set(e,u),u}function tr(e){return e[0]!=="$"}function nr(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function sr(e,t){return nr(e)===nr(t)}function rr(e,t){return B(t)?t.findIndex(n=>sr(n,e)):k(t)&&sr(t,e)?0:-1}const xi=e=>e[0]==="_"||e==="$stable",Os=e=>B(e)?e.map(Ae):[Ae(e)],Fl=(e,t,n)=>{if(t._n)return t;const s=tl((...r)=>Os(t(...r)),n);return s._c=!1,s},Ci=(e,t,n)=>{const s=e._ctx;for(const r in e){if(xi(r))continue;const i=e[r];if(k(i))t[r]=Fl(r,i,s);else if(i!=null){const o=Os(i);t[r]=()=>o}}},Ei=(e,t)=>{const n=Os(t);e.slots.default=()=>n},$l=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=J(t),cn(t,"_",n)):Ci(t,e.slots={})}else e.slots={},t&&Ei(e,t);cn(e.slots,Mn,1)},Hl=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(ie(r,t),!n&&l===1&&delete r._):(i=!t.$stable,Ci(t,r)),o=t}else t&&(Ei(e,t),o={default:1});if(i)for(const l in r)!xi(l)&&o[l]==null&&delete r[l]};function mn(e,t,n,s,r=!1){if(B(e)){e.forEach((m,w)=>mn(m,t&&(B(t)?t[w]:t),n,s,r));return}if(wt(s)&&!r)return;const i=s.shapeFlag&4?Ms(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,u=t&&t.r,d=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ne(u)?(d[u]=null,Y(h,u)&&(h[u]=null)):de(u)&&(u.value=null)),k(c))Ge(c,l,12,[o,d]);else{const m=ne(c),w=de(c);if(m||w){const L=()=>{if(e.f){const I=m?Y(h,c)?h[c]:d[c]:c.value;r?B(I)&&hs(I,i):B(I)?I.includes(i)||I.push(i):m?(d[c]=[i],Y(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else m?(d[c]=o,Y(h,c)&&(h[c]=o)):w&&(c.value=o,e.k&&(d[e.k]=o))};o?(L.id=-1,pe(L,n)):L()}}}let Be=!1;const jl=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Vl=e=>e.namespaceURI.includes("MathML"),Qt=e=>{if(jl(e))return"svg";if(Vl(e))return"mathml"},Zt=e=>e.nodeType===8;function Dl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:u}}=e,d=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),dn(),y._vnode=p;return}Be=!1,h(y.firstChild,p,null,null,null),dn(),y._vnode=p,Be&&console.error("Hydration completed but contains mismatches.")},h=(p,y,N,P,D,R=!1)=>{const T=Zt(p)&&p.data==="[",S=()=>I(p,y,N,P,D,T),{type:K,ref:O,shapeFlag:q,patchFlag:re}=y;let le=p.nodeType;y.el=p,re===-2&&(R=!1,y.dynamicChildren=null);let H=null;switch(K){case Et:le!==3?y.children===""?(c(y.el=r(""),o(p),p),H=p):H=S():(p.data!==y.children&&(Be=!0,p.data=y.children),H=i(p));break;case ve:X(p)?(H=i(p),W(y.el=p.content.firstChild,p,N)):le!==8||T?H=S():H=i(p);break;case Nt:if(T&&(p=i(p),le=p.nodeType),le===1||le===3){H=p;const G=!y.children.length;for(let $=0;${R=R||!!y.dynamicChildren;const{type:T,props:S,patchFlag:K,shapeFlag:O,dirs:q,transition:re}=y,le=T==="input"||T==="option";if(le||K!==-1){q&&Pe(y,null,N,"created");let H=!1;if(X(p)){H=Si(P,re)&&N&&N.vnode.props&&N.vnode.props.appear;const $=p.content.firstChild;H&&re.beforeEnter($),W($,p,N),y.el=p=$}if(O&16&&!(S&&(S.innerHTML||S.textContent))){let $=w(p.firstChild,y,p,N,P,D,R);for(;$;){Be=!0;const Ne=$;$=$.nextSibling,l(Ne)}}else O&8&&p.textContent!==y.children&&(Be=!0,p.textContent=y.children);if(S)if(le||!R||K&48)for(const $ in S)(le&&($.endsWith("value")||$==="indeterminate")||Ut($)&&!Pt($)||$[0]===".")&&s(p,$,null,S[$],void 0,void 0,N);else S.onClick&&s(p,"onClick",null,S.onClick,void 0,void 0,N);let G;(G=S&&S.onVnodeBeforeMount)&&xe(G,N,y),q&&Pe(y,null,N,"beforeMount"),((G=S&&S.onVnodeMounted)||q||H)&&ci(()=>{G&&xe(G,N,y),H&&re.enter(p),q&&Pe(y,null,N,"mounted")},P)}return p.nextSibling},w=(p,y,N,P,D,R,T)=>{T=T||!!y.dynamicChildren;const S=y.children,K=S.length;for(let O=0;O{const{slotScopeIds:T}=y;T&&(D=D?D.concat(T):T);const S=o(p),K=w(i(p),y,S,N,P,D,R);return K&&Zt(K)&&K.data==="]"?i(y.anchor=K):(Be=!0,c(y.anchor=u("]"),S,K),K)},I=(p,y,N,P,D,R)=>{if(Be=!0,y.el=null,R){const K=V(p);for(;;){const O=i(p);if(O&&O!==K)l(O);else break}}const T=i(p),S=o(p);return l(p),n(null,y,S,T,N,P,Qt(S),D),T},V=(p,y="[",N="]")=>{let P=0;for(;p;)if(p=i(p),p&&Zt(p)&&(p.data===y&&P++,p.data===N)){if(P===0)return i(p);P--}return p},W=(p,y,N)=>{const P=y.parentNode;P&&P.replaceChild(p,y);let D=N;for(;D;)D.vnode.el===y&&(D.vnode.el=D.subTree.el=p),D=D.parent},X=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[d,h]}const pe=ci;function Bl(e){return Ul(e,Dl)}function Ul(e,t){const n=Fr();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:u,setElementText:d,parentNode:h,nextSibling:m,setScopeId:w=Ee,insertStaticContent:L}=e,I=(a,f,g,_=null,b=null,C=null,A=void 0,x=null,E=!!f.dynamicChildren)=>{if(a===f)return;a&&!it(a,f)&&(_=Kt(a),Oe(a,b,C,!0),a=null),f.patchFlag===-2&&(E=!1,f.dynamicChildren=null);const{type:v,ref:M,shapeFlag:j}=f;switch(v){case Et:V(a,f,g,_);break;case ve:W(a,f,g,_);break;case Nt:a==null&&X(f,g,_,A);break;case ge:O(a,f,g,_,b,C,A,x,E);break;default:j&1?N(a,f,g,_,b,C,A,x,E):j&6?q(a,f,g,_,b,C,A,x,E):(j&64||j&128)&&v.process(a,f,g,_,b,C,A,x,E,ht)}M!=null&&b&&mn(M,a&&a.ref,C,f||a,!f)},V=(a,f,g,_)=>{if(a==null)s(f.el=l(f.children),g,_);else{const b=f.el=a.el;f.children!==a.children&&u(b,f.children)}},W=(a,f,g,_)=>{a==null?s(f.el=c(f.children||""),g,_):f.el=a.el},X=(a,f,g,_)=>{[a.el,a.anchor]=L(a.children,f,g,_,a.el,a.anchor)},p=({el:a,anchor:f},g,_)=>{let b;for(;a&&a!==f;)b=m(a),s(a,g,_),a=b;s(f,g,_)},y=({el:a,anchor:f})=>{let g;for(;a&&a!==f;)g=m(a),r(a),a=g;r(f)},N=(a,f,g,_,b,C,A,x,E)=>{f.type==="svg"?A="svg":f.type==="math"&&(A="mathml"),a==null?P(f,g,_,b,C,A,x,E):T(a,f,b,C,A,x,E)},P=(a,f,g,_,b,C,A,x)=>{let E,v;const{props:M,shapeFlag:j,transition:F,dirs:U}=a;if(E=a.el=o(a.type,C,M&&M.is,M),j&8?d(E,a.children):j&16&&R(a.children,E,null,_,b,Un(a,C),A,x),U&&Pe(a,null,_,"created"),D(E,a,a.scopeId,A,_),M){for(const Q in M)Q!=="value"&&!Pt(Q)&&i(E,Q,null,M[Q],C,a.children,_,b,Fe);"value"in M&&i(E,"value",null,M.value,C),(v=M.onVnodeBeforeMount)&&xe(v,_,a)}U&&Pe(a,null,_,"beforeMount");const z=Si(b,F);z&&F.beforeEnter(E),s(E,f,g),((v=M&&M.onVnodeMounted)||z||U)&&pe(()=>{v&&xe(v,_,a),z&&F.enter(E),U&&Pe(a,null,_,"mounted")},b)},D=(a,f,g,_,b)=>{if(g&&w(a,g),_)for(let C=0;C<_.length;C++)w(a,_[C]);if(b){let C=b.subTree;if(f===C){const A=b.vnode;D(a,A,A.scopeId,A.slotScopeIds,b.parent)}}},R=(a,f,g,_,b,C,A,x,E=0)=>{for(let v=E;v{const x=f.el=a.el;let{patchFlag:E,dynamicChildren:v,dirs:M}=f;E|=a.patchFlag&16;const j=a.props||te,F=f.props||te;let U;if(g&&tt(g,!1),(U=F.onVnodeBeforeUpdate)&&xe(U,g,f,a),M&&Pe(f,a,g,"beforeUpdate"),g&&tt(g,!0),v?S(a.dynamicChildren,v,x,g,_,Un(f,b),C):A||$(a,f,x,null,g,_,Un(f,b),C,!1),E>0){if(E&16)K(x,f,j,F,g,_,b);else if(E&2&&j.class!==F.class&&i(x,"class",null,F.class,b),E&4&&i(x,"style",j.style,F.style,b),E&8){const z=f.dynamicProps;for(let Q=0;Q{U&&xe(U,g,f,a),M&&Pe(f,a,g,"updated")},_)},S=(a,f,g,_,b,C,A)=>{for(let x=0;x{if(g!==_){if(g!==te)for(const x in g)!Pt(x)&&!(x in _)&&i(a,x,g[x],null,A,f.children,b,C,Fe);for(const x in _){if(Pt(x))continue;const E=_[x],v=g[x];E!==v&&x!=="value"&&i(a,x,v,E,A,f.children,b,C,Fe)}"value"in _&&i(a,"value",g.value,_.value,A)}},O=(a,f,g,_,b,C,A,x,E)=>{const v=f.el=a?a.el:l(""),M=f.anchor=a?a.anchor:l("");let{patchFlag:j,dynamicChildren:F,slotScopeIds:U}=f;U&&(x=x?x.concat(U):U),a==null?(s(v,g,_),s(M,g,_),R(f.children,g,M,b,C,A,x,E)):j>0&&j&64&&F&&a.dynamicChildren?(S(a.dynamicChildren,F,g,b,C,A,x),(f.key!=null||b&&f===b.subTree)&&Ti(a,f,!0)):$(a,f,g,M,b,C,A,x,E)},q=(a,f,g,_,b,C,A,x,E)=>{f.slotScopeIds=x,a==null?f.shapeFlag&512?b.ctx.activate(f,g,_,A,E):re(f,g,_,b,C,A,E):le(a,f,E)},re=(a,f,g,_,b,C,A)=>{const x=a.component=Xl(a,_,b);if(On(a)&&(x.ctx.renderer=ht),Ql(x),x.asyncDep){if(b&&b.registerDep(x,H),!a.el){const E=x.subTree=ae(ve);W(null,E,f,g)}}else H(x,a,f,g,b,C,A)},le=(a,f,g)=>{const _=f.component=a.component;if(rl(a,f,g))if(_.asyncDep&&!_.asyncResolved){G(_,f,g);return}else _.next=f,Xo(_.update),_.effect.dirty=!0,_.update();else f.el=a.el,_.vnode=f},H=(a,f,g,_,b,C,A)=>{const x=()=>{if(a.isMounted){let{next:M,bu:j,u:F,parent:U,vnode:z}=a;{const pt=Ai(a);if(pt){M&&(M.el=z.el,G(a,M,A)),pt.asyncDep.then(()=>{a.isUnmounted||x()});return}}let Q=M,ee;tt(a,!1),M?(M.el=z.el,G(a,M,A)):M=z,j&&Hn(j),(ee=M.props&&M.props.onVnodeBeforeUpdate)&&xe(ee,U,M,z),tt(a,!0);const oe=Vn(a),Te=a.subTree;a.subTree=oe,I(Te,oe,h(Te.el),Kt(Te),a,b,C),M.el=oe.el,Q===null&&il(a,oe.el),F&&pe(F,b),(ee=M.props&&M.props.onVnodeUpdated)&&pe(()=>xe(ee,U,M,z),b)}else{let M;const{el:j,props:F}=f,{bm:U,m:z,parent:Q}=a,ee=wt(f);if(tt(a,!1),U&&Hn(U),!ee&&(M=F&&F.onVnodeBeforeMount)&&xe(M,Q,f),tt(a,!0),j&&$n){const oe=()=>{a.subTree=Vn(a),$n(j,a.subTree,a,b,null)};ee?f.type.__asyncLoader().then(()=>!a.isUnmounted&&oe()):oe()}else{const oe=a.subTree=Vn(a);I(null,oe,g,_,a,b,C),f.el=oe.el}if(z&&pe(z,b),!ee&&(M=F&&F.onVnodeMounted)){const oe=f;pe(()=>xe(M,Q,oe),b)}(f.shapeFlag&256||Q&&wt(Q.vnode)&&Q.vnode.shapeFlag&256)&&a.a&&pe(a.a,b),a.isMounted=!0,f=g=_=null}},E=a.effect=new ys(x,Ee,()=>Ts(v),a.scope),v=a.update=()=>{E.dirty&&E.run()};v.id=a.uid,tt(a,!0),v()},G=(a,f,g)=>{f.component=a;const _=a.vnode.props;a.vnode=f,a.next=null,Nl(a,f.props,_,g),Hl(a,f.children,g),ft(),zs(a),dt()},$=(a,f,g,_,b,C,A,x,E=!1)=>{const v=a&&a.children,M=a?a.shapeFlag:0,j=f.children,{patchFlag:F,shapeFlag:U}=f;if(F>0){if(F&128){kt(v,j,g,_,b,C,A,x,E);return}else if(F&256){Ne(v,j,g,_,b,C,A,x,E);return}}U&8?(M&16&&Fe(v,b,C),j!==v&&d(g,j)):M&16?U&16?kt(v,j,g,_,b,C,A,x,E):Fe(v,b,C,!0):(M&8&&d(g,""),U&16&&R(j,g,_,b,C,A,x,E))},Ne=(a,f,g,_,b,C,A,x,E)=>{a=a||yt,f=f||yt;const v=a.length,M=f.length,j=Math.min(v,M);let F;for(F=0;FM?Fe(a,b,C,!0,!1,j):R(f,g,_,b,C,A,x,E,j)},kt=(a,f,g,_,b,C,A,x,E)=>{let v=0;const M=f.length;let j=a.length-1,F=M-1;for(;v<=j&&v<=F;){const U=a[v],z=f[v]=E?We(f[v]):Ae(f[v]);if(it(U,z))I(U,z,g,null,b,C,A,x,E);else break;v++}for(;v<=j&&v<=F;){const U=a[j],z=f[F]=E?We(f[F]):Ae(f[F]);if(it(U,z))I(U,z,g,null,b,C,A,x,E);else break;j--,F--}if(v>j){if(v<=F){const U=F+1,z=UF)for(;v<=j;)Oe(a[v],b,C,!0),v++;else{const U=v,z=v,Q=new Map;for(v=z;v<=F;v++){const _e=f[v]=E?We(f[v]):Ae(f[v]);_e.key!=null&&Q.set(_e.key,v)}let ee,oe=0;const Te=F-z+1;let pt=!1,$s=0;const Rt=new Array(Te);for(v=0;v=Te){Oe(_e,b,C,!0);continue}let Le;if(_e.key!=null)Le=Q.get(_e.key);else for(ee=z;ee<=F;ee++)if(Rt[ee-z]===0&&it(_e,f[ee])){Le=ee;break}Le===void 0?Oe(_e,b,C,!0):(Rt[Le-z]=v+1,Le>=$s?$s=Le:pt=!0,I(_e,f[Le],g,null,b,C,A,x,E),oe++)}const Hs=pt?kl(Rt):yt;for(ee=Hs.length-1,v=Te-1;v>=0;v--){const _e=z+v,Le=f[_e],js=_e+1{const{el:C,type:A,transition:x,children:E,shapeFlag:v}=a;if(v&6){et(a.component.subTree,f,g,_);return}if(v&128){a.suspense.move(f,g,_);return}if(v&64){A.move(a,f,g,ht);return}if(A===ge){s(C,f,g);for(let j=0;jx.enter(C),b);else{const{leave:j,delayLeave:F,afterLeave:U}=x,z=()=>s(C,f,g),Q=()=>{j(C,()=>{z(),U&&U()})};F?F(C,z,Q):Q()}else s(C,f,g)},Oe=(a,f,g,_=!1,b=!1)=>{const{type:C,props:A,ref:x,children:E,dynamicChildren:v,shapeFlag:M,patchFlag:j,dirs:F}=a;if(x!=null&&mn(x,null,g,a,!0),M&256){f.ctx.deactivate(a);return}const U=M&1&&F,z=!wt(a);let Q;if(z&&(Q=A&&A.onVnodeBeforeUnmount)&&xe(Q,f,a),M&6)to(a.component,g,_);else{if(M&128){a.suspense.unmount(g,_);return}U&&Pe(a,null,f,"beforeUnmount"),M&64?a.type.remove(a,f,g,b,ht,_):v&&(C!==ge||j>0&&j&64)?Fe(v,f,g,!1,!0):(C===ge&&j&384||!b&&M&16)&&Fe(E,f,g),_&&Ns(a)}(z&&(Q=A&&A.onVnodeUnmounted)||U)&&pe(()=>{Q&&xe(Q,f,a),U&&Pe(a,null,f,"unmounted")},g)},Ns=a=>{const{type:f,el:g,anchor:_,transition:b}=a;if(f===ge){eo(g,_);return}if(f===Nt){y(a);return}const C=()=>{r(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(a.shapeFlag&1&&b&&!b.persisted){const{leave:A,delayLeave:x}=b,E=()=>A(g,C);x?x(a.el,C,E):E()}else C()},eo=(a,f)=>{let g;for(;a!==f;)g=m(a),r(a),a=g;r(f)},to=(a,f,g)=>{const{bum:_,scope:b,update:C,subTree:A,um:x}=a;_&&Hn(_),b.stop(),C&&(C.active=!1,Oe(A,a,f,g)),x&&pe(x,f),pe(()=>{a.isUnmounted=!0},f),f&&f.pendingBranch&&!f.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===f.pendingId&&(f.deps--,f.deps===0&&f.resolve())},Fe=(a,f,g,_=!1,b=!1,C=0)=>{for(let A=C;Aa.shapeFlag&6?Kt(a.component.subTree):a.shapeFlag&128?a.suspense.next():m(a.anchor||a.el),Fs=(a,f,g)=>{a==null?f._vnode&&Oe(f._vnode,null,null,!0):I(f._vnode||null,a,f,null,null,null,g),zs(),dn(),f._vnode=a},ht={p:I,um:Oe,m:et,r:Ns,mt:re,mc:R,pc:$,pbc:S,n:Kt,o:e};let Fn,$n;return t&&([Fn,$n]=t(ht)),{render:Fs,hydrate:Fn,createApp:Pl(Fs,Fn)}}function Un({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function tt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Si(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ti(e,t,n=!1){const s=e.children,r=t.children;if(B(s)&&B(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Ai(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ai(t)}const Kl=e=>e.__isTeleport,ge=Symbol.for("v-fgt"),Et=Symbol.for("v-txt"),ve=Symbol.for("v-cmt"),Nt=Symbol.for("v-stc"),Ft=[];let Re=null;function Ri(e=!1){Ft.push(Re=e?null:[])}function Wl(){Ft.pop(),Re=Ft[Ft.length-1]||null}let Dt=1;function ir(e){Dt+=e}function Oi(e){return e.dynamicChildren=Dt>0?Re||yt:null,Wl(),Dt>0&&Re&&Re.push(e),e}function Va(e,t,n,s,r,i){return Oi(Mi(e,t,n,s,r,i,!0))}function Li(e,t,n,s,r){return Oi(ae(e,t,n,s,r,!0))}function yn(e){return e?e.__v_isVNode===!0:!1}function it(e,t){return e.type===t.type&&e.key===t.key}const Mn="__vInternal",Pi=({key:e})=>e??null,on=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ne(e)||de(e)||k(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function Mi(e,t=null,n=null,s=0,r=null,i=e===ge?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Pi(t),ref:t&&on(t),scopeId:An,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:fe};return l?(Ls(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=ne(n)?8:16),Dt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const ae=ql;function ql(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===oi)&&(e=ve),yn(e)){const l=Ze(e,t,!0);return n&&Ls(l,n),Dt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(nc(e)&&(e=e.__vccOpts),t){t=zl(t);let{class:l,style:c}=t;l&&!ne(l)&&(t.class=ms(l)),Z(c)&&(Jr(c)&&!B(c)&&(c=ie({},c)),t.style=gs(c))}const o=ne(e)?1:ol(e)?128:Kl(e)?64:Z(e)?4:k(e)?2:0;return Mi(e,t,n,s,r,o,i,!0)}function zl(e){return e?Jr(e)||Mn in e?ie({},e):e:null}function Ze(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Gl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Pi(l),ref:t&&t.ref?n&&r?B(r)?r.concat(on(t)):[r,on(t)]:on(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ze(e.ssContent),ssFallback:e.ssFallback&&Ze(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ii(e=" ",t=0){return ae(Et,null,e,t)}function Da(e,t){const n=ae(Nt,null,e);return n.staticCount=t,n}function Ba(e="",t=!1){return t?(Ri(),Li(ve,null,e)):ae(ve,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ae(ve):B(e)?ae(ge,null,e.slice()):typeof e=="object"?We(e):ae(Et,null,String(e))}function We(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ze(e)}function Ls(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Ls(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Mn in t)?t._ctx=fe:r===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else k(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),s&64?(n=16,t=[Ii(t)]):n=8);e.children=t,e.shapeFlag|=n}function Gl(...e){const t={};for(let n=0;nce||fe;let Ps,os;{const e=Fr(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Ps=t("__VUE_INSTANCE_SETTERS__",n=>ce=n),os=t("__VUE_SSR_SETTERS__",n=>Nn=n)}const St=e=>{Ps(e),e.scope.on()},ct=()=>{ce&&ce.scope.off(),Ps(null)};function Ni(e){return e.vnode.shapeFlag&4}let Nn=!1;function Ql(e,t=!1){t&&os(t);const{props:n,children:s}=e.vnode,r=Ni(e);Il(e,n,r,t),$l(e,s);const i=r?Zl(e,t):void 0;return t&&os(!1),i}function Zl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Mt(new Proxy(e.ctx,Cl));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?$i(e):null;St(e),ft();const i=Ge(s,e,0,[e.props,r]);if(dt(),ct(),Mr(i)){if(i.then(ct,ct),t)return i.then(o=>{or(e,o,t)}).catch(o=>{En(o,e,0)});e.asyncDep=i}else or(e,i,t)}else Fi(e,t)}function or(e,t,n){k(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=ti(t)),Fi(e,n)}let lr;function Fi(e,t,n){const s=e.type;if(!e.render){if(!t&&lr&&!s.render){const r=s.template||Rs(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,u=ie(ie({isCustomElement:i,delimiters:l},o),c);s.render=lr(r,u)}}e.render=s.render||Ee}{St(e),ft();try{Sl(e)}finally{dt(),ct()}}}function ec(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return ye(e,"get","$attrs"),t[n]}}))}function $i(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return ec(e)},slots:e.slots,emit:e.emit,expose:t}}function Ms(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(ti(Mt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}}))}function tc(e,t=!0){return k(e)?e.displayName||e.name:e.name||t&&e.__name}function nc(e){return k(e)&&"__vccOpts"in e}const se=(e,t)=>Do(e,t,Nn);function ls(e,t,n){const s=arguments.length;return s===2?Z(t)&&!B(t)?yn(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&yn(n)&&(n=[n]),ae(e,t,n))}const sc="3.4.5",rc="http://www.w3.org/2000/svg",ic="http://www.w3.org/1998/Math/MathML",qe=typeof document<"u"?document:null,cr=qe&&qe.createElement("template"),oc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?qe.createElementNS(rc,e):t==="mathml"?qe.createElementNS(ic,e):qe.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>qe.createTextNode(e),createComment:e=>qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{cr.innerHTML=s==="svg"?`${e}`:s==="mathml"?`${e}`:e;const l=cr.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ue="transition",Ot="animation",Bt=Symbol("_vtc"),Hi=(e,{slots:t})=>ls(dl,lc(e),t);Hi.displayName="Transition";const ji={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};Hi.props=ie({},fi,ji);const nt=(e,t=[])=>{B(e)?e.forEach(n=>n(...t)):e&&e(...t)},ar=e=>e?B(e)?e.some(t=>t.length>1):e.length>1:!1;function lc(e){const t={};for(const O in e)O in ji||(t[O]=e[O]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:u=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,L=cc(r),I=L&&L[0],V=L&&L[1],{onBeforeEnter:W,onEnter:X,onEnterCancelled:p,onLeave:y,onLeaveCancelled:N,onBeforeAppear:P=W,onAppear:D=X,onAppearCancelled:R=p}=t,T=(O,q,re)=>{st(O,q?d:l),st(O,q?u:o),re&&re()},S=(O,q)=>{O._isLeaving=!1,st(O,h),st(O,w),st(O,m),q&&q()},K=O=>(q,re)=>{const le=O?D:X,H=()=>T(q,O,re);nt(le,[q,H]),ur(()=>{st(q,O?c:i),ke(q,O?d:l),ar(le)||fr(q,s,I,H)})};return ie(t,{onBeforeEnter(O){nt(W,[O]),ke(O,i),ke(O,o)},onBeforeAppear(O){nt(P,[O]),ke(O,c),ke(O,u)},onEnter:K(!1),onAppear:K(!0),onLeave(O,q){O._isLeaving=!0;const re=()=>S(O,q);ke(O,h),fc(),ke(O,m),ur(()=>{O._isLeaving&&(st(O,h),ke(O,w),ar(y)||fr(O,s,V,re))}),nt(y,[O,re])},onEnterCancelled(O){T(O,!1),nt(p,[O])},onAppearCancelled(O){T(O,!0),nt(R,[O])},onLeaveCancelled(O){S(O),nt(N,[O])}})}function cc(e){if(e==null)return null;if(Z(e))return[kn(e.enter),kn(e.leave)];{const t=kn(e);return[t,t]}}function kn(e){return co(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Bt]||(e[Bt]=new Set)).add(t)}function st(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Bt];n&&(n.delete(t),n.size||(e[Bt]=void 0))}function ur(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ac=0;function fr(e,t,n,s){const r=e._endId=++ac,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=uc(e,t);if(!o)return s();const u=o+"end";let d=0;const h=()=>{e.removeEventListener(u,m),i()},m=w=>{w.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[L]||"").split(", "),r=s(`${Ue}Delay`),i=s(`${Ue}Duration`),o=dr(r,i),l=s(`${Ot}Delay`),c=s(`${Ot}Duration`),u=dr(l,c);let d=null,h=0,m=0;t===Ue?o>0&&(d=Ue,h=o,m=i.length):t===Ot?u>0&&(d=Ot,h=u,m=c.length):(h=Math.max(o,u),d=h>0?o>u?Ue:Ot:null,m=d?d===Ue?i.length:c.length:0);const w=d===Ue&&/\b(transform|all)(,|$)/.test(s(`${Ue}Property`).toString());return{type:d,timeout:h,propCount:m,hasTransform:w}}function dr(e,t){for(;e.lengthhr(n)+hr(e[s])))}function hr(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function fc(){return document.body.offsetHeight}function dc(e,t,n){const s=e[Bt];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const hc=Symbol("_vod"),pc=Symbol("");function gc(e,t,n){const s=e.style,r=ne(n);if(n&&!r){if(t&&!ne(t))for(const i in t)n[i]==null&&cs(s,i,"");for(const i in n)cs(s,i,n[i])}else{const i=s.display;if(r){if(t!==n){const o=s[pc];o&&(n+=";"+o),s.cssText=n}}else t&&e.removeAttribute("style");hc in e&&(s.display=i)}}const pr=/\s*!important$/;function cs(e,t,n){if(B(n))n.forEach(s=>cs(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=mc(e,t);pr.test(n)?e.setProperty(ut(s),n.replace(pr,""),"important"):e[s]=n}}const gr=["Webkit","Moz","ms"],Kn={};function mc(e,t){const n=Kn[t];if(n)return n;let s=Ie(t);if(s!=="filter"&&s in e)return Kn[t]=s;s=vn(s);for(let r=0;rWn||(Cc.then(()=>Wn=0),Wn=Date.now());function Sc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Se(Tc(s,n.value),t,5,[s])};return n.value=e,n.attached=Ec(),n}function Tc(e,t){if(B(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const br=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ac=(e,t,n,s,r,i,o,l,c)=>{const u=r==="svg";t==="class"?dc(e,s,u):t==="style"?gc(e,n,s):Ut(t)?ds(t)||wc(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Rc(e,t,s,u))?_c(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),yc(e,t,s,u))};function Rc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&br(t)&&k(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return br(t)&&ne(n)?!1:t in e}const Oc=["ctrl","shift","alt","meta"],Lc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Oc.some(n=>e[`${n}Key`]&&!t.includes(n))},Ua=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=ut(r.key);if(t.some(o=>o===i||Pc[o]===i))return e(r)})},Mc=ie({patchProp:Ac},oc);let qn,vr=!1;function Ic(){return qn=vr?qn:Bl(Mc),vr=!0,qn}const Ka=(...e)=>{const t=Ic().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Fc(s);if(r)return n(r,!0,Nc(r))},t};function Nc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Fc(e){return ne(e)?document.querySelector(e):e}const Wa=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},$c="modulepreload",Hc=function(e){return"/Warp/"+e},wr={},qa=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){const i=document.getElementsByTagName("link");r=Promise.all(n.map(o=>{if(o=Hc(o),o in wr)return;wr[o]=!0;const l=o.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(!!s)for(let h=i.length-1;h>=0;h--){const m=i[h];if(m.href===o&&(!l||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${c}`))return;const d=document.createElement("link");if(d.rel=l?"stylesheet":$c,l||(d.as="script",d.crossOrigin=""),d.href=o,document.head.appendChild(d),l)return new Promise((h,m)=>{d.addEventListener("load",h),d.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${o}`)))})}))}return r.then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},jc=window.__VP_SITE_DATA__;function Is(e){return jr()?(_o(e),!0):!1}function Je(e){return typeof e=="function"?e():ei(e)}const Vi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Vc=Object.prototype.toString,Dc=e=>Vc.call(e)==="[object Object]",$t=()=>{},as=Bc();function Bc(){var e,t;return Vi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Uc(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const Di=e=>e();function kc(e=Di){const t=me(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:Cn(t),pause:n,resume:s,eventFilter:r}}function Kc(e){return e||In()}function Bi(...e){if(e.length!==1)return zo(...e);const t=e[0];return typeof t=="function"?Cn(Ko(()=>({get:t,set:$t}))):me(t)}function Wc(e,t,n={}){const{eventFilter:s=Di,...r}=n;return Ye(e,Uc(s,t),r)}function qc(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=kc(s);return{stop:Wc(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function Ui(e,t=!0,n){Kc()?At(e,n):t?e():Sn(e)}function mt(e){var t;const n=Je(e);return(t=n==null?void 0:n.$el)!=null?t:n}const je=Vi?window:void 0;function Xe(...e){let t,n,s,r;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,s,r]=e,t=je):[t,n,s,r]=e,!t)return $t;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],o=()=>{i.forEach(d=>d()),i.length=0},l=(d,h,m,w)=>(d.addEventListener(h,m,w),()=>d.removeEventListener(h,m,w)),c=Ye(()=>[mt(t),Je(r)],([d,h])=>{if(o(),!d)return;const m=Dc(h)?{...h}:h;i.push(...n.flatMap(w=>s.map(L=>l(d,w,L,m))))},{immediate:!0,flush:"post"}),u=()=>{c(),o()};return Is(u),u}let xr=!1;function za(e,t,n={}){const{window:s=je,ignore:r=[],capture:i=!0,detectIframe:o=!1}=n;if(!s)return $t;as&&!xr&&(xr=!0,Array.from(s.document.body.children).forEach(m=>m.addEventListener("click",$t)),s.document.documentElement.addEventListener("click",$t));let l=!0;const c=m=>r.some(w=>{if(typeof w=="string")return Array.from(s.document.querySelectorAll(w)).some(L=>L===m.target||m.composedPath().includes(L));{const L=mt(w);return L&&(m.target===L||m.composedPath().includes(L))}}),d=[Xe(s,"click",m=>{const w=mt(e);if(!(!w||w===m.target||m.composedPath().includes(w))){if(m.detail===0&&(l=!c(m)),!l){l=!0;return}t(m)}},{passive:!0,capture:i}),Xe(s,"pointerdown",m=>{const w=mt(e);l=!c(m)&&!!(w&&!m.composedPath().includes(w))},{passive:!0}),o&&Xe(s,"blur",m=>{setTimeout(()=>{var w;const L=mt(e);((w=s.document.activeElement)==null?void 0:w.tagName)==="IFRAME"&&!(L!=null&&L.contains(s.document.activeElement))&&t(m)},0)})].filter(Boolean);return()=>d.forEach(m=>m())}function zc(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ga(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=je,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=zc(t);return Xe(r,i,d=>{d.repeat&&Je(l)||c(d)&&n(d)},o)}function Gc(){const e=me(!1);return In()&&At(()=>{e.value=!0}),e}function Yc(e){const t=Gc();return se(()=>(t.value,!!e()))}function Jc(e,t={}){const{window:n=je}=t,s=Yc(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let r;const i=me(!1),o=u=>{i.value=u.matches},l=()=>{r&&("removeEventListener"in r?r.removeEventListener("change",o):r.removeListener(o))},c=ai(()=>{s.value&&(l(),r=n.matchMedia(Je(e)),"addEventListener"in r?r.addEventListener("change",o):r.addListener(o),i.value=r.matches)});return Is(()=>{c(),l(),r=void 0}),i}const en=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},tn="__vueuse_ssr_handlers__",Xc=Qc();function Qc(){return tn in en||(en[tn]=en[tn]||{}),en[tn]}function ki(e,t){return Xc[e]||t}function Zc(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const ea={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Cr="vueuse-storage";function ta(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:d,window:h=je,eventFilter:m,onError:w=T=>{console.error(T)},initOnMounted:L}=s,I=(d?Qr:me)(typeof t=="function"?t():t);if(!n)try{n=ki("getDefaultStorage",()=>{var T;return(T=je)==null?void 0:T.localStorage})()}catch(T){w(T)}if(!n)return I;const V=Je(t),W=Zc(V),X=(r=s.serializer)!=null?r:ea[W],{pause:p,resume:y}=qc(I,()=>N(I.value),{flush:i,deep:o,eventFilter:m});return h&&l&&Ui(()=>{Xe(h,"storage",R),Xe(h,Cr,D),L&&R()}),L||R(),I;function N(T){try{if(T==null)n.removeItem(e);else{const S=X.write(T),K=n.getItem(e);K!==S&&(n.setItem(e,S),h&&h.dispatchEvent(new CustomEvent(Cr,{detail:{key:e,oldValue:K,newValue:S,storageArea:n}})))}}catch(S){w(S)}}function P(T){const S=T?T.newValue:n.getItem(e);if(S==null)return c&&V!=null&&n.setItem(e,X.write(V)),V;if(!T&&u){const K=X.read(S);return typeof u=="function"?u(K,V):W==="object"&&!Array.isArray(K)?{...V,...K}:K}else return typeof S!="string"?S:X.read(S)}function D(T){R(T.detail)}function R(T){if(!(T&&T.storageArea!==n)){if(T&&T.key==null){I.value=V;return}if(!(T&&T.key!==e)){p();try{(T==null?void 0:T.newValue)!==X.write(I.value)&&(I.value=P(T))}catch(S){w(S)}finally{T?Sn(y):y()}}}}}function Ki(e){return Jc("(prefers-color-scheme: dark)",e)}function na(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=je,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:d=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=Ki({window:r}),w=se(()=>m.value?"dark":"light"),L=c||(o==null?Bi(s):ta(o,s,i,{window:r,listenToStorageChanges:l})),I=se(()=>L.value==="auto"?w.value:L.value),V=ki("updateHTMLAttrs",(y,N,P)=>{const D=typeof y=="string"?r==null?void 0:r.document.querySelector(y):mt(y);if(!D)return;let R;if(d&&(R=r.document.createElement("style"),R.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),r.document.head.appendChild(R)),N==="class"){const T=P.split(/\s/g);Object.values(h).flatMap(S=>(S||"").split(/\s/g)).filter(Boolean).forEach(S=>{T.includes(S)?D.classList.add(S):D.classList.remove(S)})}else D.setAttribute(N,P);d&&(r.getComputedStyle(R).opacity,document.head.removeChild(R))});function W(y){var N;V(t,n,(N=h[y])!=null?N:y)}function X(y){e.onChanged?e.onChanged(y,W):W(y)}Ye(I,X,{flush:"post",immediate:!0}),Ui(()=>X(I.value));const p=se({get(){return u?L.value:I.value},set(y){L.value=y}});try{return Object.assign(p,{store:L,system:w,state:I})}catch{return p}}function sa(e={}){const{valueDark:t="dark",valueLight:n="",window:s=je}=e,r=na({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=se(()=>r.system?r.system.value:Ki({window:s}).value?"dark":"light");return se({get(){return r.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?r.value="auto":r.value=c}})}function zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Wi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const nn=new WeakMap;function Ya(e,t=!1){const n=me(t);let s=null,r;Ye(Bi(e),l=>{const c=zn(Je(l));if(c){const u=c;nn.get(u)||nn.set(u,r),n.value&&(u.style.overflow="hidden")}},{immediate:!0});const i=()=>{const l=zn(Je(e));!l||n.value||(as&&(s=Xe(l,"touchmove",c=>{ra(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{var l;const c=zn(Je(e));!c||!n.value||(as&&(s==null||s()),c.style.overflow=(l=nn.get(c))!=null?l:"",nn.delete(c),n.value=!1)};return Is(o),se({get(){return n.value},set(l){l?i():o()}})}function Ja(e={}){const{window:t=je,behavior:n="auto"}=e;if(!t)return{x:me(0),y:me(0)};const s=me(t.scrollX),r=me(t.scrollY),i=se({get(){return s.value},set(l){scrollTo({left:l,behavior:n})}}),o=se({get(){return r.value},set(l){scrollTo({top:l,behavior:n})}});return Xe(t,"scroll",()=>{s.value=t.scrollX,r.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}const qi=/^(?:[a-z]+:|\/\/)/i,ia="vitepress-theme-appearance",zi=/#.*$/,oa=/(index)?\.(md|html)$/,Ce=typeof document<"u",Gi={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function la(e,t,n=!1){if(t===void 0)return!1;if(e=Er(`/${e}`),n)return new RegExp(t).test(e);if(Er(t)!==e)return!1;const s=t.match(zi);return s?(Ce?location.hash:"")===s[0]:!0}function Er(e){return decodeURI(e).replace(zi,"").replace(oa,"")}function ca(e){return qi.test(e)}function aa(e,t){var s,r,i,o,l,c,u;const n=Object.keys(e.locales).find(d=>d!=="root"&&!ca(d)&&la(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Ji(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Yi(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=ua(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function ua(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function fa(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Ji(e,t){return[...e.filter(n=>!fa(t,n)),...t]}const da=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,ha=/^[a-z]:/i;function Sr(e){const t=ha.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(da,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const pa=new Set("3g2,3gp,7z,aac,abw,ai,aif,aifc,aiff,arc,asf,asr,asx,au,avi,avif,axs,azw,bin,bmp,bz,bz2,c,cda,cer,class,crl,crt,csh,css,csv,dcr,der,dll,doc,docx,eot,eps,epub,exe,gif,gtar,gz,gzip,ico,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,latex,m3u,man,mdb,mht,mhtml,mid,midi,mjs,mov,mp2,mp3,mp4,mpa,mpe,mpeg,mpg,mpkg,mpp,odp,ods,odt,oga,ogv,ogx,opus,otf,p10,p12,p7b,p7c,p7m,p7r,p7s,pbm,pdf,pfx,php,png,ppt,pptx,ps,pub,qt,rar,roff,rtf,rtx,ser,sh,spc,svg,swf,t,tar,tcl,tex,texi,texinfo,tgz,tif,tiff,tr,ts,tsv,ttf,txt,ua,viv,vivo,vsd,wav,weba,webm,webp,woff,woff2,xbm,xhtml,xls,xlsx,xml,xul,zip".split(","));function ga(e){const t=e.split(".").pop();return t==null||!pa.has(t.toLowerCase())}const ma=Symbol(),at=Qr(jc);function Xa(e){const t=se(()=>aa(at.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?me(!0):n?sa({storageKey:ia,initialValue:()=>typeof n=="string"?n:"auto",...typeof n=="object"?n:{}}):me(!1);return{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>Yi(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:s}}function ya(){const e=xt(ma);if(!e)throw new Error("vitepress data not properly injected in app");return e}function _a(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Tr(e){return qi.test(e)||!e.startsWith("/")?e:_a(at.value.base,e)}function ba(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/Warp/";t=Sr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${Sr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let ln=[];function Qa(e){ln.push(e),Pn(()=>{ln=ln.filter(t=>t!==e)})}const va=Symbol(),Xi="http://a.com",wa=()=>({path:"/",component:null,data:Gi});function Za(e,t){const n=xn(wa()),s={route:n,go:r};async function r(l=Ce?location.href:"/"){var c,u;l=us(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(Or(l),await o(l),await((u=s.onAfterRouteChanged)==null?void 0:u.call(s,l)))}let i=null;async function o(l,c=0,u=!1){var m;if(await((m=s.onBeforePageLoad)==null?void 0:m.call(s,l))===!1)return;const d=new URL(l,Xi),h=i=d.pathname;try{let w=await e(h);if(!w)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:L,__pageData:I}=w;if(!L)throw new Error(`Invalid route component: ${L}`);n.path=Ce?h:Tr(h),n.component=Mt(L),n.data=Mt(I),Ce&&Sn(()=>{let V=at.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!at.value.cleanUrls&&!V.endsWith("/")&&(V+=".html"),V!==d.pathname&&(d.pathname=V,l=V+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(X){console.warn(X)}if(W){Ar(W,d.hash);return}}window.scrollTo(0,c)})}}catch(w){if(!/fetch|Page not found/.test(w.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(w),!u)try{const L=await fetch(at.value.base+"hashmap.json");window.__VP_HASH_MAP__=await L.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=Ce?h:Tr(h),n.component=t?Mt(t):null,n.data=Gi)}}return Ce&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const u=l.target.closest("a");if(u&&!u.closest(".vp-raw")&&(u instanceof SVGElement||!u.download)){const{target:d}=u,{href:h,origin:m,pathname:w,hash:L,search:I}=new URL(u.href instanceof SVGAnimatedString?u.href.animVal:u.href,u.baseURI),V=window.location;!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&m===V.origin&&ga(w)&&(l.preventDefault(),w===V.pathname&&I===V.search?(L!==V.hash&&(history.pushState(null,"",L),window.dispatchEvent(new Event("hashchange"))),L?Ar(u,L,u.classList.contains("header-anchor")):(Or(h),window.scrollTo(0,0))):r(h))}},{capture:!0}),window.addEventListener("popstate",async l=>{var c;await o(us(location.href),l.state&&l.state.scrollPosition||0),(c=s.onAfterRouteChanged)==null||c.call(s,location.href)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function xa(){const e=xt(va);if(!e)throw new Error("useRouter() is called without provider.");return e}function Qi(){return xa().route}function Ar(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(u-window.scrollY)>window.innerHeight?window.scrollTo(0,u):window.scrollTo({left:0,top:u,behavior:"smooth"})},i=at.value.scrollOffset,o=0,l=24;if(typeof i=="object"&&"padding"in i&&(l=i.padding,i=i.selector),typeof i=="number")o=i;else if(typeof i=="string")o=Rr(i,l);else if(Array.isArray(i))for(const d of i){const h=Rr(d,l);if(h){o=h;break}}const c=parseInt(window.getComputedStyle(s).paddingTop,10),u=window.scrollY+s.getBoundingClientRect().top-o+c;requestAnimationFrame(r)}}function Rr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}function Or(e){Ce&&e!==us(location.href)&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e))}function us(e){const t=new URL(e,Xi);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),at.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const Gn=()=>ln.forEach(e=>e()),eu=pi({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Qi(),{site:n}=ya();return()=>ls(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?ls(t.component,{onVnodeMounted:Gn,onVnodeUpdated:Gn,onVnodeUnmounted:Gn}):"404 Page Not Found"])}}),tu=pi({setup(e,{slots:t}){const n=me(!1);return At(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function nu(){Ce&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(u=>u.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function su(){if(Ce){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(d=>d.remove());let u=c.textContent||"";o&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),Ca(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const d=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,d)})}})}}async function Ca(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function ru(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}const o=i.map(Lr);n.forEach((l,c)=>{const u=o.findIndex(d=>d==null?void 0:d.isEqualNode(l??null));u!==-1?delete o[u]:(l==null||l.remove(),delete n[c])}),o.forEach(l=>l&&document.head.appendChild(l)),n=[...n,...o].filter(Boolean)};ai(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],u=Yi(o,i);u!==document.title&&(document.title=u);const d=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==d&&h.setAttribute("content",d):Lr(["meta",{name:"description",content:d}]),r(Ji(o.head,Sa(c)))})}function Lr([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&!t.async&&(s.async=!1),s}function Ea(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Sa(e){return e.filter(t=>!Ea(t))}const Yn=new Set,Zi=()=>document.createElement("link"),Ta=e=>{const t=Zi();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Aa=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let sn;const Ra=Ce&&(sn=Zi())&&sn.relList&&sn.relList.supports&&sn.relList.supports("prefetch")?Ta:Aa;function iu(){if(!Ce||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Yn.has(c)){Yn.add(c);const u=ba(c);u&&Ra(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Yn.add(l))})})};At(s);const r=Qi();Ye(()=>r.path,s),Pn(()=>{n&&n.disconnect()})}export{Ua as $,Pn as A,Na as B,_l as C,Ma as D,Fa as E,ge as F,Qr as G,Qa as H,ae as I,Ia as J,qi as K,Qi as L,Gl as M,xt as N,za as O,Ga as P,gs as Q,Sn as R,Ja as S,Hi as T,Da as U,Cn as V,Ya as W,Ml as X,ka as Y,Ha as Z,Wa as _,Ii as a,ja as a0,ru as a1,va as a2,Xa as a3,ma as a4,eu as a5,tu as a6,at as a7,Ka as a8,Za as a9,ba as aa,qa as ab,iu as ac,su as ad,nu as ae,ls as af,Li as b,Va as c,pi as d,Ba as e,ga as f,Tr as g,me as h,ca as i,Ce as j,se as k,At as l,Mi as m,ms as n,Ri as o,ei as p,La as q,$a as r,Pa as s,Oa as t,ya as u,la as v,tl as w,Jc as x,Ye as y,ai as z}; diff --git a/docs/.vitepress/dist/assets/chunks/theme.makJcAKq.js b/docs/.vitepress/dist/assets/chunks/theme.makJcAKq.js deleted file mode 100644 index 83f2474..0000000 --- a/docs/.vitepress/dist/assets/chunks/theme.makJcAKq.js +++ /dev/null @@ -1 +0,0 @@ -import{d as g,o as a,c as l,r as d,n as T,a as H,t as V,b as k,w as p,T as de,e as f,_ as m,u as Oe,i as xe,f as Ue,g as ve,h as M,j as R,k as $,l as G,m as u,p as r,q as E,s as F,v as U,x as ie,y as j,z as X,A as he,B as Pe,C as Ge,D as q,F as I,E as A,G as we,H as ee,I as _,J as x,K as Ve,L as te,M as J,N as se,O as je,P as qe,Q as Ke,R as Re,S as Le,U as We,V as Ye,W as Se,X as Me,Y as Je,Z as Ze,$ as Qe,a0 as Xe}from"./framework.BouBWMxc.js";const et=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),l("span",{class:T(["VPBadge",e.type])},[d(e.$slots,"default",{},()=>[H(V(e.text),1)])],2))}}),tt={key:0,class:"VPBackdrop"},st=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),k(de,{name:"fade"},{default:p(()=>[e.show?(a(),l("div",tt)):f("",!0)]),_:1}))}}),nt=m(st,[["__scopeId","data-v-c79a1216"]]),P=Oe;function ot(s,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(s,e):(s(),(n=!0)&&setTimeout(()=>n=!1,e))}}function le(s){return/^\//.test(s)?s:`/${s}`}function pe(s){const{pathname:e,search:t,hash:n,protocol:o}=new URL(s,"http://a.com");if(xe(s)||s.startsWith("#")||!o.startsWith("http")||!Ue(e))return s;const{site:i}=P(),c=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${n}`);return ve(c)}const _e=M(R?location.hash:"");R&&window.addEventListener("hashchange",()=>{_e.value=location.hash});function W({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:i}=P(),c=$(()=>{var v,b;return{label:(v=t.value.locales[n.value])==null?void 0:v.label,link:((b=t.value.locales[n.value])==null?void 0:b.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:$(()=>Object.entries(t.value.locales).flatMap(([v,b])=>s&&c.value.label===b.label?[]:{text:b.label,link:at(b.link||(v==="root"?"/":`/${v}/`),i.value.i18nRouting!==!1&&e,o.value.relativePath.slice(c.value.link.length-1),!t.value.cleanUrls)+_e.value})),currentLang:c}}function at(s,e,t,n){return e?s.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):s}const rt=s=>(E("data-v-f87ff6e4"),s=s(),F(),s),it={class:"NotFound"},lt={class:"code"},ct={class:"title"},ut=rt(()=>u("div",{class:"divider"},null,-1)),dt={class:"quote"},vt={class:"action"},ht=["href","aria-label"],pt=g({__name:"NotFound",setup(s){const{site:e,theme:t}=P(),{localeLinks:n}=W({removeCurrent:!1}),o=M("/");return G(()=>{var c;const i=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(o.value=((c=n.value.find(({link:h})=>h.startsWith(i)))==null?void 0:c.link)||n.value[0].link)}),(i,c)=>{var h,v,b,y,w;return a(),l("div",it,[u("p",lt,V(((h=r(t).notFound)==null?void 0:h.code)??"404"),1),u("h1",ct,V(((v=r(t).notFound)==null?void 0:v.title)??"PAGE NOT FOUND"),1),ut,u("blockquote",dt,V(((b=r(t).notFound)==null?void 0:b.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),u("div",vt,[u("a",{class:"link",href:r(ve)(o.value),"aria-label":((y=r(t).notFound)==null?void 0:y.linkLabel)??"go to home"},V(((w=r(t).notFound)==null?void 0:w.linkText)??"Take me home"),9,ht)])])}}}),_t=m(pt,[["__scopeId","data-v-f87ff6e4"]]);function Ce(s,e){if(Array.isArray(s))return Z(s);if(s==null)return[];e=le(e);const t=Object.keys(s).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(le(o))),n=t?s[t]:[];return Array.isArray(n)?Z(n):Z(n.items,n.base)}function ft(s){const e=[];let t=0;for(const n in s){const o=s[n];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function mt(s){const e=[];function t(n){for(const o of n)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(s),e}function ce(s,e){return Array.isArray(e)?e.some(t=>ce(s,t)):U(s,e.link)?!0:e.items?ce(s,e.items):!1}function Z(s,e){return[...s].map(t=>{const n={...t},o=n.base||e;return o&&n.link&&(n.link=o+n.link),n.items&&(n.items=Z(n.items,o)),n})}function D(){const{frontmatter:s,page:e,theme:t}=P(),n=ie("(min-width: 960px)"),o=M(!1),i=$(()=>{const S=t.value.sidebar,C=e.value.relativePath;return S?Ce(S,C):[]}),c=M(i.value);j(i,(S,C)=>{JSON.stringify(S)!==JSON.stringify(C)&&(c.value=i.value)});const h=$(()=>s.value.sidebar!==!1&&c.value.length>0&&s.value.layout!=="home"),v=$(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=$(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),y=$(()=>h.value&&n.value),w=$(()=>h.value?ft(c.value):[]);function L(){o.value=!0}function B(){o.value=!1}function N(){o.value?B():L()}return{isOpen:o,sidebar:c,sidebarGroups:w,hasSidebar:h,hasAside:b,leftAside:v,isSidebarEnabled:y,open:L,close:B,toggle:N}}function gt(s,e){let t;X(()=>{t=s.value?document.activeElement:void 0}),G(()=>{window.addEventListener("keyup",n)}),he(()=>{window.removeEventListener("keyup",n)});function n(o){o.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function kt(s){const{page:e}=P(),t=M(!1),n=$(()=>s.value.collapsed!=null),o=$(()=>!!s.value.link),i=M(!1),c=()=>{i.value=U(e.value.relativePath,s.value.link)};j([e,s,_e],c),G(c);const h=$(()=>i.value?!0:s.value.items?ce(e.value.relativePath,s.value.items):!1),v=$(()=>!!(s.value.items&&s.value.items.length));X(()=>{t.value=!!(n.value&&s.value.collapsed)}),Pe(()=>{(i.value||h.value)&&(t.value=!1)});function b(){n.value&&(t.value=!t.value)}return{collapsed:t,collapsible:n,isLink:o,isActiveLink:i,hasActiveLink:h,hasChildren:v,toggle:b}}function $t(){const{hasSidebar:s}=D(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:$(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ue=[];function Ie(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function fe(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:bt(t),link:"#"+t.id,level:n}});return yt(e,s)}function bt(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function yt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(c=>c.level>=n&&c.level<=o),ue.length=0;for(const{element:c,link:h}of s)ue.push({element:c,link:h});const i=[];e:for(let c=0;c=0;v--){const b=s[v];if(b.level{requestAnimationFrame(i),window.addEventListener("scroll",n)}),Ge(()=>{c(location.hash)}),he(()=>{window.removeEventListener("scroll",n)});function i(){if(!t.value)return;const h=(()=>{var S;const N=(S=document.querySelector("#VPContent .VPDoc"))==null?void 0:S.firstElementChild;return N?be(N):78})(),v=window.scrollY,b=window.innerHeight,y=document.body.offsetHeight,w=Math.abs(v+b-y)<1,L=ue.map(({element:N,link:S})=>({link:S,top:be(N)})).filter(({top:N})=>!Number.isNaN(N)).sort((N,S)=>N.top-S.top);if(!L.length){c(null);return}if(v<1){c(null);return}if(w){c(L[L.length-1].link);return}let B=null;for(const{link:N,top:S}of L){if(S>v+h)break;B=N}c(B)}function c(h){o&&o.classList.remove("active"),h==null?o=null:o=s.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function be(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const wt=["href","title"],Vt=g({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const n=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(n));o==null||o.focus({preventScroll:!0})}return(t,n)=>{const o=q("VPDocOutlineItem",!0);return a(),l("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(I,null,A(t.headers,({children:i,link:c,title:h})=>(a(),l("li",null,[u("a",{class:"outline-link",href:c,onClick:e,title:h},V(h),9,wt),i!=null&&i.length?(a(),k(o,{key:0,headers:i},null,8,["headers"])):f("",!0)]))),256))],2)}}}),Te=m(Vt,[["__scopeId","data-v-b933a997"]]),Lt=s=>(E("data-v-935f8a84"),s=s(),F(),s),St={class:"content"},Mt={class:"outline-title",role:"heading","aria-level":"2"},Ct={"aria-labelledby":"doc-outline-aria-label"},It=Lt(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Tt=g({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=P(),n=we([]);ee(()=>{n.value=fe(e.value.outline??t.value.outline)});const o=M(),i=M();return Pt(o,i),(c,h)=>(a(),l("div",{class:T(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:o,role:"navigation"},[u("div",St,[u("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),u("div",Mt,V(r(Ie)(r(t))),1),u("nav",Ct,[It,_(Te,{headers:n.value,root:!0},null,8,["headers"])])])],2))}}),Nt=m(Tt,[["__scopeId","data-v-935f8a84"]]),Bt={class:"VPDocAsideCarbonAds"},At=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,n)=>(a(),l("div",Bt,[_(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ht=s=>(E("data-v-3f215769"),s=s(),F(),s),zt={class:"VPDocAside"},Et=Ht(()=>u("div",{class:"spacer"},null,-1)),Ft=g({__name:"VPDocAside",setup(s){const{theme:e}=P();return(t,n)=>(a(),l("div",zt,[d(t.$slots,"aside-top",{},void 0,!0),d(t.$slots,"aside-outline-before",{},void 0,!0),_(Nt),d(t.$slots,"aside-outline-after",{},void 0,!0),Et,d(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(At,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),d(t.$slots,"aside-ads-after",{},void 0,!0),d(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Dt=m(Ft,[["__scopeId","data-v-3f215769"]]);function Ot(){const{theme:s,page:e}=P();return $(()=>{const{text:t="Edit this page",pattern:n=""}=s.value.editLink||{};let o;return typeof n=="function"?o=n(e.value):o=n.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function xt(){const{page:s,theme:e,frontmatter:t}=P();return $(()=>{var v,b,y,w,L,B,N,S;const n=Ce(e.value.sidebar,s.value.relativePath),o=mt(n),i=o.findIndex(C=>U(s.value.relativePath,C.link)),c=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!t.value.prev||t.value.prev===!1,h=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((y=o[i-1])==null?void 0:y.docFooterText)??((w=o[i-1])==null?void 0:w.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((L=o[i-1])==null?void 0:L.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((B=o[i+1])==null?void 0:B.docFooterText)??((N=o[i+1])==null?void 0:N.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=o[i+1])==null?void 0:S.link)}}})}const Ut={},Gt={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},jt=u("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),qt=u("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),Kt=[jt,qt];function Rt(s,e){return a(),l("svg",Gt,Kt)}const Wt=m(Ut,[["render",Rt]]),z=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=$(()=>e.tag??(e.href?"a":"span")),n=$(()=>e.href&&Ve.test(e.href));return(o,i)=>(a(),k(x(t.value),{class:T(["VPLink",{link:o.href,"vp-external-link-icon":n.value,"no-icon":o.noIcon}]),href:o.href?r(pe)(o.href):void 0,target:o.target??(n.value?"_blank":void 0),rel:o.rel??(n.value?"noreferrer":void 0)},{default:p(()=>[d(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Yt={class:"VPLastUpdated"},Jt=["datetime"],Zt=g({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:n,lang:o}=P(),i=$(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),c=$(()=>i.value.toISOString()),h=M("");return G(()=>{X(()=>{var v,b,y;h.value=new Intl.DateTimeFormat((b=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&b.forceLocale?o.value:void 0,((y=e.value.lastUpdated)==null?void 0:y.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(i.value)})}),(v,b)=>{var y;return a(),l("p",Yt,[H(V(((y=r(e).lastUpdated)==null?void 0:y.text)||r(e).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:c.value},V(h.value),9,Jt)])}}}),Qt=m(Zt,[["__scopeId","data-v-7e05ebdb"]]),Xt={key:0,class:"VPDocFooter"},es={key:0,class:"edit-info"},ts={key:0,class:"edit-link"},ss={key:1,class:"last-updated"},ns={key:1,class:"prev-next"},os={class:"pager"},as=["innerHTML"],rs=["innerHTML"],is={class:"pager"},ls=["innerHTML"],cs=["innerHTML"],us=g({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:n}=P(),o=Ot(),i=xt(),c=$(()=>e.value.editLink&&n.value.editLink!==!1),h=$(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),v=$(()=>c.value||h.value||i.value.prev||i.value.next);return(b,y)=>{var w,L,B,N;return v.value?(a(),l("footer",Xt,[d(b.$slots,"doc-footer-before",{},void 0,!0),c.value||h.value?(a(),l("div",es,[c.value?(a(),l("div",ts,[_(z,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:p(()=>[_(Wt,{class:"edit-link-icon","aria-label":"edit icon"}),H(" "+V(r(o).text),1)]),_:1},8,["href"])])):f("",!0),h.value?(a(),l("div",ss,[_(Qt)])):f("",!0)])):f("",!0),(w=r(i).prev)!=null&&w.link||(L=r(i).next)!=null&&L.link?(a(),l("nav",ns,[u("div",os,[(B=r(i).prev)!=null&&B.link?(a(),k(z,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:p(()=>{var S;return[u("span",{class:"desc",innerHTML:((S=r(e).docFooter)==null?void 0:S.prev)||"Previous page"},null,8,as),u("span",{class:"title",innerHTML:r(i).prev.text},null,8,rs)]}),_:1},8,["href"])):f("",!0)]),u("div",is,[(N=r(i).next)!=null&&N.link?(a(),k(z,{key:0,class:"pager-link next",href:r(i).next.link},{default:p(()=>{var S;return[u("span",{class:"desc",innerHTML:((S=r(e).docFooter)==null?void 0:S.next)||"Next page"},null,8,ls),u("span",{class:"title",innerHTML:r(i).next.text},null,8,cs)]}),_:1},8,["href"])):f("",!0)])])):f("",!0)])):f("",!0)}}}),ds=m(us,[["__scopeId","data-v-48f9bb55"]]),vs=s=>(E("data-v-ad5bd23b"),s=s(),F(),s),hs={class:"container"},ps=vs(()=>u("div",{class:"aside-curtain"},null,-1)),_s={class:"aside-container"},fs={class:"aside-content"},ms={class:"content"},gs={class:"content-container"},ks={class:"main"},$s=g({__name:"VPDoc",setup(s){const{theme:e}=P(),t=te(),{hasSidebar:n,hasAside:o,leftAside:i}=D(),c=$(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,v)=>{const b=q("Content");return a(),l("div",{class:T(["VPDoc",{"has-sidebar":r(n),"has-aside":r(o)}])},[d(h.$slots,"doc-top",{},void 0,!0),u("div",hs,[r(o)?(a(),l("div",{key:0,class:T(["aside",{"left-aside":r(i)}])},[ps,u("div",_s,[u("div",fs,[_(Dt,null,{"aside-top":p(()=>[d(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[d(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[d(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),u("div",ms,[u("div",gs,[d(h.$slots,"doc-before",{},void 0,!0),u("main",ks,[_(b,{class:T(["vp-doc",[c.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(ds,null,{"doc-footer-before":p(()=>[d(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(h.$slots,"doc-after",{},void 0,!0)])])]),d(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),bs=m($s,[["__scopeId","data-v-ad5bd23b"]]),ys=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{}},setup(s){const e=s,t=$(()=>e.href&&Ve.test(e.href)),n=$(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),k(x(n.value),{class:T(["VPButton",[o.size,o.theme]]),href:o.href?r(pe)(o.href):void 0,target:t.value?"_blank":void 0,rel:t.value?"noreferrer":void 0},{default:p(()=>[H(V(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),Ps=m(ys,[["__scopeId","data-v-c1c5efc1"]]),ws=["src","alt"],Vs=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const n=q("VPImage",!0);return e.image?(a(),l(I,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",J({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,ws)):(a(),l(I,{key:1},[_(n,J({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(n,J({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}}),Q=m(Vs,[["__scopeId","data-v-8426fc1a"]]),Ls=s=>(E("data-v-da5d1713"),s=s(),F(),s),Ss={class:"container"},Ms={class:"main"},Cs={key:0,class:"name"},Is=["innerHTML"],Ts=["innerHTML"],Ns=["innerHTML"],Bs={key:0,class:"actions"},As={key:0,class:"image"},Hs={class:"image-container"},zs=Ls(()=>u("div",{class:"image-bg"},null,-1)),Es=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=se("hero-image-slot-exists");return(t,n)=>(a(),l("div",{class:T(["VPHero",{"has-image":t.image||r(e)}])},[u("div",Ss,[u("div",Ms,[d(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",Cs,[u("span",{innerHTML:t.name,class:"clip"},null,8,Is)])):f("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Ts)):f("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Ns)):f("",!0)],!0),t.actions?(a(),l("div",Bs,[(a(!0),l(I,null,A(t.actions,o=>(a(),l("div",{key:o.link,class:"action"},[_(Ps,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||r(e)?(a(),l("div",As,[u("div",Hs,[zs,d(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(Q,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}}),Fs=m(Es,[["__scopeId","data-v-da5d1713"]]),Ds=g({__name:"VPHomeHero",setup(s){const{frontmatter:e}=P();return(t,n)=>r(e).hero?(a(),k(Fs,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info":p(()=>[d(t.$slots,"home-hero-info")]),"home-hero-image":p(()=>[d(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Os={},xs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Us=u("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Gs=[Us];function js(s,e){return a(),l("svg",xs,Gs)}const qs=m(Os,[["render",js]]),Ks={class:"box"},Rs={key:0,class:"icon"},Ws=["innerHTML"],Ys=["innerHTML"],Js=["innerHTML"],Zs={key:4,class:"link-text"},Qs={class:"link-text-value"},Xs=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),k(z,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[u("article",Ks,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",Rs,[_(Q,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(Q,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Ws)):f("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,Ys),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Js)):f("",!0),e.linkText?(a(),l("div",Zs,[u("p",Qs,[H(V(e.linkText)+" ",1),_(qs,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),en=m(Xs,[["__scopeId","data-v-33204567"]]),tn={key:0,class:"VPFeatures"},sn={class:"container"},nn={class:"items"},on=g({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=$(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,o)=>n.features?(a(),l("div",tn,[u("div",sn,[u("div",nn,[(a(!0),l(I,null,A(n.features,i=>(a(),l("div",{key:i.title,class:T(["item",[t.value]])},[_(en,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}}),an=m(on,[["__scopeId","data-v-a6181336"]]),rn=g({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=P();return(t,n)=>r(e).features?(a(),k(an,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),ln={class:"VPHome"},cn=g({__name:"VPHome",setup(s){return(e,t)=>{const n=q("Content");return a(),l("div",ln,[d(e.$slots,"home-hero-before",{},void 0,!0),_(Ds,null,{"home-hero-info":p(()=>[d(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(e.$slots,"home-hero-after",{},void 0,!0),d(e.$slots,"home-features-before",{},void 0,!0),_(rn),d(e.$slots,"home-features-after",{},void 0,!0),_(n)])}}}),un=m(cn,[["__scopeId","data-v-d82743a8"]]),dn={},vn={class:"VPPage"};function hn(s,e){const t=q("Content");return a(),l("div",vn,[d(s.$slots,"page-top"),_(t),d(s.$slots,"page-bottom")])}const pn=m(dn,[["render",hn]]),_n=g({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=P(),{hasSidebar:n}=D();return(o,i)=>(a(),l("div",{class:T(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?d(o.$slots,"not-found",{key:0},()=>[_(_t)],!0):r(t).layout==="page"?(a(),k(pn,{key:1},{"page-top":p(()=>[d(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[d(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(un,{key:2},{"home-hero-before":p(()=>[d(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[d(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[d(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[d(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[d(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(x(r(t).layout),{key:3})):(a(),k(bs,{key:4},{"doc-top":p(()=>[d(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[d(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[d(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[d(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[d(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[d(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[d(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[d(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),fn=m(_n,[["__scopeId","data-v-669faec9"]]),mn={class:"container"},gn=["innerHTML"],kn=["innerHTML"],$n=g({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=D();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),l("footer",{key:0,class:T(["VPFooter",{"has-sidebar":r(n)}])},[u("div",mn,[r(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,gn)):f("",!0),r(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,kn)):f("",!0)])],2)):f("",!0)}}),bn=m($n,[["__scopeId","data-v-e315a0ad"]]);function Ne(){const{theme:s,frontmatter:e}=P(),t=we([]),n=$(()=>t.value.length>0);return ee(()=>{t.value=fe(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:n}}const yn={},Pn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},wn=u("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),Vn=[wn];function Ln(s,e){return a(),l("svg",Pn,Vn)}const Be=m(yn,[["render",Ln]]),Sn={class:"header"},Mn={class:"outline"},Cn=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=P(),n=M(!1),o=M(0),i=M(),c=M();je(i,()=>{n.value=!1}),qe("Escape",()=>{n.value=!1}),ee(()=>{n.value=!1});function h(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function v(y){y.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Re(()=>{n.value=!1}))}function b(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(y,w)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:Ke({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[y.headers.length>0?(a(),l("button",{key:0,onClick:h,class:T({open:n.value})},[H(V(r(Ie)(r(t)))+" ",1),_(Be,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:b},V(r(t).returnToTopLabel||"Return to top"),1)),_(de,{name:"flyout"},{default:p(()=>[n.value?(a(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:v},[u("div",Sn,[u("a",{class:"top-link",href:"#",onClick:b},V(r(t).returnToTopLabel||"Return to top"),1)]),u("div",Mn,[_(Te,{headers:y.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}}),In=m(Cn,[["__scopeId","data-v-af18c0d5"]]),Tn={},Nn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Bn=u("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),An=u("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),Hn=u("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),zn=u("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),En=[Bn,An,Hn,zn];function Fn(s,e){return a(),l("svg",Nn,En)}const Dn=m(Tn,[["render",Fn]]),On={class:"container"},xn=["aria-expanded"],Un={class:"menu-text"},Gn=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=P(),{hasSidebar:n}=D(),{headers:o}=Ne(),{y:i}=Le(),c=M(0);G(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{o.value=fe(t.value.outline??e.value.outline)});const h=$(()=>o.value.length===0),v=$(()=>h.value&&!n.value),b=$(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:h.value,fixed:v.value}));return(y,w)=>r(t).layout!=="home"&&(!v.value||r(i)>=c.value)?(a(),l("div",{key:0,class:T(b.value)},[u("div",On,[r(n)?(a(),l("button",{key:0,class:"menu","aria-expanded":y.open,"aria-controls":"VPSidebarNav",onClick:w[0]||(w[0]=L=>y.$emit("open-menu"))},[_(Dn,{class:"menu-icon"}),u("span",Un,V(r(e).sidebarMenuLabel||"Menu"),1)],8,xn)):f("",!0),_(In,{headers:r(o),navHeight:c.value},null,8,["headers","navHeight"])])],2)):f("",!0)}}),jn=m(Gn,[["__scopeId","data-v-0282ae07"]]);function qn(){const s=M(!1);function e(){s.value=!0,window.addEventListener("resize",o)}function t(){s.value=!1,window.removeEventListener("resize",o)}function n(){s.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=te();return j(()=>i.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:n}}const Kn={},Rn={class:"VPSwitch",type:"button",role:"switch"},Wn={class:"check"},Yn={key:0,class:"icon"};function Jn(s,e){return a(),l("button",Rn,[u("span",Wn,[s.$slots.default?(a(),l("span",Yn,[d(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const Zn=m(Kn,[["render",Jn],["__scopeId","data-v-b1685198"]]),Qn={},Xn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},eo=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),to=[eo];function so(s,e){return a(),l("svg",Xn,to)}const no=m(Qn,[["render",so]]),oo={},ao={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ro=We('',9),io=[ro];function lo(s,e){return a(),l("svg",ao,io)}const co=m(oo,[["render",lo]]),uo=g({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=P(),n=se("toggle-appearance",()=>{e.value=!e.value}),o=$(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(i,c)=>(a(),k(Zn,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(n)},{default:p(()=>[_(co,{class:"sun"}),_(no,{class:"moon"})]),_:1},8,["title","aria-checked","onClick"]))}}),me=m(uo,[["__scopeId","data-v-1736f215"]]),vo={key:0,class:"VPNavBarAppearance"},ho=g({__name:"VPNavBarAppearance",setup(s){const{site:e}=P();return(t,n)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),l("div",vo,[_(me)])):f("",!0)}}),po=m(ho,[["__scopeId","data-v-e6aabb21"]]),ge=M();let Ae=!1,re=0;function _o(s){const e=M(!1);if(R){!Ae&&fo(),re++;const t=j(ge,n=>{var o,i,c;n===s.el.value||(o=s.el.value)!=null&&o.contains(n)?(e.value=!0,(i=s.onFocus)==null||i.call(s)):(e.value=!1,(c=s.onBlur)==null||c.call(s))});he(()=>{t(),re--,re||mo()})}return Ye(e)}function fo(){document.addEventListener("focusin",He),Ae=!0,ge.value=document.activeElement}function mo(){document.removeEventListener("focusin",He)}function He(){ge.value=document.activeElement}const go={},ko={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},$o=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),bo=[$o];function yo(s,e){return a(),l("svg",ko,bo)}const ze=m(go,[["render",yo]]),Po={},wo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Vo=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),Lo=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),So=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Mo=[Vo,Lo,So];function Co(s,e){return a(),l("svg",wo,Mo)}const Io=m(Po,[["render",Co]]),To={class:"VPMenuLink"},No=g({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=P();return(t,n)=>(a(),l("div",To,[_(z,{class:T({active:r(U)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[H(V(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=m(No,[["__scopeId","data-v-43f1e123"]]),Bo={class:"VPMenuGroup"},Ao={key:0,class:"title"},Ho=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Bo,[e.text?(a(),l("p",Ao,V(e.text),1)):f("",!0),(a(!0),l(I,null,A(e.items,n=>(a(),l(I,null,["link"in n?(a(),k(ne,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}}),zo=m(Ho,[["__scopeId","data-v-69e747b5"]]),Eo={class:"VPMenu"},Fo={key:0,class:"items"},Do=g({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),l("div",Eo,[e.items?(a(),l("div",Fo,[(a(!0),l(I,null,A(e.items,n=>(a(),l(I,{key:n.text},["link"in n?(a(),k(ne,{key:0,item:n},null,8,["item"])):(a(),k(zo,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),d(e.$slots,"default",{},void 0,!0)]))}}),Oo=m(Do,[["__scopeId","data-v-e7ea1737"]]),xo=["aria-expanded","aria-label"],Uo={key:0,class:"text"},Go=["innerHTML"],jo={class:"menu"},qo=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=M(!1),t=M();_o({el:t,onBlur:n});function n(){e.value=!1}return(o,i)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=c=>e.value=!0),onMouseleave:i[2]||(i[2]=c=>e.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=c=>e.value=!e.value)},[o.button||o.icon?(a(),l("span",Uo,[o.icon?(a(),k(x(o.icon),{key:0,class:"option-icon"})):f("",!0),o.button?(a(),l("span",{key:1,innerHTML:o.button},null,8,Go)):f("",!0),_(ze,{class:"text-icon"})])):(a(),k(Io,{key:1,class:"icon"}))],8,xo),u("div",jo,[_(Oo,{items:o.items},{default:p(()=>[d(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ke=m(qo,[["__scopeId","data-v-9c007e85"]]),Ko={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',x:'X',youtube:'YouTube'},Ro=["href","aria-label","innerHTML"],Wo=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=$(()=>typeof e.icon=="object"?e.icon.svg:Ko[e.icon]);return(n,o)=>(a(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Ro))}}),Yo=m(Wo,[["__scopeId","data-v-f80f8133"]]),Jo={class:"VPSocialLinks"},Zo=g({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),l("div",Jo,[(a(!0),l(I,null,A(e.links,({link:n,icon:o,ariaLabel:i})=>(a(),k(Yo,{key:n,icon:o,link:n,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),$e=m(Zo,[["__scopeId","data-v-7bc22406"]]),Qo={key:0,class:"group translations"},Xo={class:"trans-title"},ea={key:1,class:"group"},ta={class:"item appearance"},sa={class:"label"},na={class:"appearance-action"},oa={key:2,class:"group"},aa={class:"item social-links"},ra=g({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=P(),{localeLinks:n,currentLang:o}=W({correspondingLink:!0}),i=$(()=>n.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(c,h)=>i.value?(a(),k(ke,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[r(n).length&&r(o).label?(a(),l("div",Qo,[u("p",Xo,V(r(o).label),1),(a(!0),l(I,null,A(r(n),v=>(a(),k(ne,{key:v.link,item:v},null,8,["item"]))),128))])):f("",!0),r(e).appearance&&r(e).appearance!=="force-dark"?(a(),l("div",ea,[u("div",ta,[u("p",sa,V(r(t).darkModeSwitchLabel||"Appearance"),1),u("div",na,[_(me)])])])):f("",!0),r(t).socialLinks?(a(),l("div",oa,[u("div",aa,[_($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}}),ia=m(ra,[["__scopeId","data-v-d0bd9dde"]]),la=s=>(E("data-v-e5dd9c1c"),s=s(),F(),s),ca=["aria-expanded"],ua=la(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),da=[ua],va=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},da,10,ca))}}),ha=m(va,[["__scopeId","data-v-e5dd9c1c"]]),pa=["innerHTML"],_a=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=P();return(t,n)=>(a(),k(z,{class:T({VPNavBarMenuLink:!0,active:r(U)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[u("span",{innerHTML:t.item.text},null,8,pa)]),_:1},8,["class","href","target","rel"]))}}),fa=m(_a,[["__scopeId","data-v-42ef59de"]]),ma=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=P(),n=i=>"link"in i?U(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(n),o=$(()=>n(e.item));return(i,c)=>(a(),k(ke,{class:T({VPNavBarMenuGroup:!0,active:r(U)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),ga=s=>(E("data-v-7f418b0f"),s=s(),F(),s),ka={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},$a=ga(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),ba=g({__name:"VPNavBarMenu",setup(s){const{theme:e}=P();return(t,n)=>r(e).nav?(a(),l("nav",ka,[$a,(a(!0),l(I,null,A(r(e).nav,o=>(a(),l(I,{key:o.text},["link"in o?(a(),k(fa,{key:0,item:o},null,8,["item"])):(a(),k(ma,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}}),ya=m(ba,[["__scopeId","data-v-7f418b0f"]]);function Pa(s){const{localeIndex:e,theme:t}=P();function n(o){var N,S,C;const i=o.split("."),c=(N=t.value.search)==null?void 0:N.options,h=c&&typeof c=="object",v=h&&((C=(S=c.locales)==null?void 0:S[e.value])==null?void 0:C.translations)||null,b=h&&c.translations||null;let y=v,w=b,L=s;const B=i.pop();for(const Y of i){let O=null;const K=L==null?void 0:L[Y];K&&(O=L=K);const oe=w==null?void 0:w[Y];oe&&(O=w=oe);const ae=y==null?void 0:y[Y];ae&&(O=y=ae),K||(L=O),oe||(w=O),ae||(y=O)}return(y==null?void 0:y[B])??(w==null?void 0:w[B])??(L==null?void 0:L[B])??""}return n}const wa=["aria-label"],Va={class:"DocSearch-Button-Container"},La=u("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[u("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Sa={class:"DocSearch-Button-Placeholder"},Ma=u("span",{class:"DocSearch-Button-Keys"},[u("kbd",{class:"DocSearch-Button-Key"}),u("kbd",{class:"DocSearch-Button-Key"},"K")],-1),ye=g({__name:"VPNavBarSearchButton",setup(s){const t=Pa({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,o)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[u("span",Va,[La,u("span",Sa,V(r(t)("button.buttonText")),1)]),Ma],8,wa))}}),Ca={class:"VPNavBarSearch"},Ia={id:"local-search"},Ta={key:1,id:"docsearch"},Na=g({__name:"VPNavBarSearch",setup(s){const e=()=>null,t=()=>null,{theme:n}=P(),o=M(!1),i=M(!1);G(()=>{});function c(){o.value||(o.value=!0,setTimeout(h,16))}function h(){const y=new Event("keydown");y.key="k",y.metaKey=!0,window.dispatchEvent(y),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}const v=M(!1),b="";return(y,w)=>{var L;return a(),l("div",Ca,[r(b)==="local"?(a(),l(I,{key:0},[v.value?(a(),k(r(e),{key:0,onClose:w[0]||(w[0]=B=>v.value=!1)})):f("",!0),u("div",Ia,[_(ye,{onClick:w[1]||(w[1]=B=>v.value=!0)})])],64)):r(b)==="algolia"?(a(),l(I,{key:1},[o.value?(a(),k(r(t),{key:0,algolia:((L=r(n).search)==null?void 0:L.options)??r(n).algolia,onVnodeBeforeMount:w[2]||(w[2]=B=>i.value=!0)},null,8,["algolia"])):f("",!0),i.value?f("",!0):(a(),l("div",Ta,[_(ye,{onClick:c})]))],64)):f("",!0)])}}}),Ba=g({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=P();return(t,n)=>r(e).socialLinks?(a(),k($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Aa=m(Ba,[["__scopeId","data-v-0394ad82"]]),Ha=["href","rel","target"],za=g({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=P(),{hasSidebar:n}=D(),{currentLang:o}=W(),i=$(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),c=$(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),h=$(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,b)=>(a(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":r(n)}])},[u("a",{class:"title",href:i.value??r(pe)(r(o).link),rel:c.value,target:h.value},[d(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(Q,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),l(I,{key:1},[H(V(r(t).siteTitle),1)],64)):r(t).siteTitle===void 0?(a(),l(I,{key:2},[H(V(r(e).title),1)],64)):f("",!0),d(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ha)],2))}}),Ea=m(za,[["__scopeId","data-v-8460f0a8"]]),Fa={},Da={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Oa=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),xa=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),Ua=[Oa,xa];function Ga(s,e){return a(),l("svg",Da,Ua)}const Ee=m(Fa,[["render",Ga]]),ja={class:"items"},qa={class:"title"},Ka=g({__name:"VPNavBarTranslations",setup(s){const{theme:e}=P(),{localeLinks:t,currentLang:n}=W({correspondingLink:!0});return(o,i)=>r(t).length&&r(n).label?(a(),k(ke,{key:0,class:"VPNavBarTranslations",icon:Ee,label:r(e).langMenuLabel||"Change language"},{default:p(()=>[u("div",ja,[u("p",qa,V(r(n).label),1),(a(!0),l(I,null,A(r(t),c=>(a(),k(ne,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}}),Ra=m(Ka,[["__scopeId","data-v-74abcbb9"]]),Wa=s=>(E("data-v-19c990f1"),s=s(),F(),s),Ya={class:"wrapper"},Ja={class:"container"},Za={class:"title"},Qa={class:"content"},Xa={class:"content-body"},er=Wa(()=>u("div",{class:"divider"},[u("div",{class:"divider-line"})],-1)),tr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=Le(),{hasSidebar:t}=D(),{hasLocalNav:n}=Ne(),{frontmatter:o}=P(),i=M({});return Pe(()=>{i.value={"has-sidebar":t.value,"has-local-nav":n.value,top:o.value.layout==="home"&&e.value===0}}),(c,h)=>(a(),l("div",{class:T(["VPNavBar",i.value])},[u("div",Ya,[u("div",Ja,[u("div",Za,[_(Ea,null,{"nav-bar-title-before":p(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",Qa,[u("div",Xa,[d(c.$slots,"nav-bar-content-before",{},void 0,!0),_(Na,{class:"search"}),_(ya,{class:"menu"}),_(Ra,{class:"translations"}),_(po,{class:"appearance"}),_(Aa,{class:"social-links"}),_(ia,{class:"extra"}),d(c.$slots,"nav-bar-content-after",{},void 0,!0),_(ha,{class:"hamburger",active:c.isScreenOpen,onClick:h[0]||(h[0]=v=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),er],2))}}),sr=m(tr,[["__scopeId","data-v-19c990f1"]]),nr={key:0,class:"VPNavScreenAppearance"},or={class:"text"},ar=g({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=P();return(n,o)=>r(e).appearance&&r(e).appearance!=="force-dark"?(a(),l("div",nr,[u("p",or,V(r(t).darkModeSwitchLabel||"Appearance"),1),_(me)])):f("",!0)}}),rr=m(ar,[["__scopeId","data-v-2d7af913"]]),ir=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=se("close-screen");return(t,n)=>(a(),k(z,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:p(()=>[H(V(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),lr=m(ir,[["__scopeId","data-v-05f27b2a"]]),cr={},ur={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},dr=u("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),vr=[dr];function hr(s,e){return a(),l("svg",ur,vr)}const pr=m(cr,[["render",hr]]),_r=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=se("close-screen");return(t,n)=>(a(),k(z,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:p(()=>[H(V(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Fe=m(_r,[["__scopeId","data-v-19976ae1"]]),fr={class:"VPNavScreenMenuGroupSection"},mr={key:0,class:"title"},gr=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",fr,[e.text?(a(),l("p",mr,V(e.text),1)):f("",!0),(a(!0),l(I,null,A(e.items,n=>(a(),k(Fe,{key:n.text,item:n},null,8,["item"]))),128))]))}}),kr=m(gr,[["__scopeId","data-v-8133b170"]]),$r=["aria-controls","aria-expanded"],br=["innerHTML"],yr=["id"],Pr={key:1,class:"group"},wr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=M(!1),n=$(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,c)=>(a(),l("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[u("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:o},[u("span",{class:"button-text",innerHTML:i.text},null,8,br),_(pr,{class:"button-icon"})],8,$r),u("div",{id:n.value,class:"items"},[(a(!0),l(I,null,A(i.items,h=>(a(),l(I,{key:h.text},["link"in h?(a(),l("div",{key:h.text,class:"item"},[_(Fe,{item:h},null,8,["item"])])):(a(),l("div",Pr,[_(kr,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,yr)],2))}}),Vr=m(wr,[["__scopeId","data-v-65ef89ca"]]),Lr={key:0,class:"VPNavScreenMenu"},Sr=g({__name:"VPNavScreenMenu",setup(s){const{theme:e}=P();return(t,n)=>r(e).nav?(a(),l("nav",Lr,[(a(!0),l(I,null,A(r(e).nav,o=>(a(),l(I,{key:o.text},["link"in o?(a(),k(lr,{key:0,item:o},null,8,["item"])):(a(),k(Vr,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Mr=g({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=P();return(t,n)=>r(e).socialLinks?(a(),k($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Cr={class:"list"},Ir=g({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=W({correspondingLink:!0}),n=M(!1);function o(){n.value=!n.value}return(i,c)=>r(e).length&&r(t).label?(a(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:n.value}])},[u("button",{class:"title",onClick:o},[_(Ee,{class:"icon lang"}),H(" "+V(r(t).label)+" ",1),_(ze,{class:"icon chevron"})]),u("ul",Cr,[(a(!0),l(I,null,A(r(e),h=>(a(),l("li",{key:h.link,class:"item"},[_(z,{class:"link",href:h.link},{default:p(()=>[H(V(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}}),Tr=m(Ir,[["__scopeId","data-v-d72aa483"]]),Nr={class:"container"},Br=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=M(null),t=Se(R?document.body:null);return(n,o)=>(a(),k(de,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:p(()=>[n.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[u("div",Nr,[d(n.$slots,"nav-screen-content-before",{},void 0,!0),_(Sr,{class:"menu"}),_(Tr,{class:"translations"}),_(rr,{class:"appearance"}),_(Mr,{class:"social-links"}),d(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}}),Ar=m(Br,[["__scopeId","data-v-cc5739dd"]]),Hr={key:0,class:"VPNav"},zr=g({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=qn(),{frontmatter:o}=P(),i=$(()=>o.value.navbar!==!1);return Me("close-screen",t),X(()=>{R&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(c,h)=>i.value?(a(),l("header",Hr,[_(sr,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":p(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[d(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[d(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(Ar,{open:r(e)},{"nav-screen-content-before":p(()=>[d(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[d(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):f("",!0)}}),Er=m(zr,[["__scopeId","data-v-ae24b3ad"]]),Fr=s=>(E("data-v-e31bd47b"),s=s(),F(),s),Dr=["role","tabindex"],Or=Fr(()=>u("div",{class:"indicator"},null,-1)),xr={key:1,class:"items"},Ur=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:n,isLink:o,isActiveLink:i,hasActiveLink:c,hasChildren:h,toggle:v}=kt($(()=>e.item)),b=$(()=>h.value?"section":"div"),y=$(()=>o.value?"a":"div"),w=$(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),L=$(()=>o.value?void 0:"button"),B=$(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":c.value}]);function N(C){"key"in C&&C.key!=="Enter"||!e.item.link&&v()}function S(){e.item.link&&v()}return(C,Y)=>{const O=q("VPSidebarItem",!0);return a(),k(x(b.value),{class:T(["VPSidebarItem",B.value])},{default:p(()=>[C.item.text?(a(),l("div",J({key:0,class:"item",role:L.value},Ze(C.item.items?{click:N,keydown:N}:{},!0),{tabindex:C.item.items&&0}),[Or,C.item.link?(a(),k(z,{key:0,tag:y.value,class:"link",href:C.item.link,rel:C.item.rel,target:C.item.target},{default:p(()=>[(a(),k(x(w.value),{class:"text",innerHTML:C.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(x(w.value),{key:1,class:"text",innerHTML:C.item.text},null,8,["innerHTML"])),C.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:S,onKeydown:Je(S,["enter"]),tabindex:"0"},[_(Be,{class:"caret-icon"})],32)):f("",!0)],16,Dr)):f("",!0),C.item.items&&C.item.items.length?(a(),l("div",xr,[C.depth<5?(a(!0),l(I,{key:0},A(C.item.items,K=>(a(),k(O,{key:K.text,item:K,depth:C.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}}),Gr=m(Ur,[["__scopeId","data-v-e31bd47b"]]),De=s=>(E("data-v-575e6a36"),s=s(),F(),s),jr=De(()=>u("div",{class:"curtain"},null,-1)),qr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Kr=De(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Rr=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=D(),n=s,o=M(null),i=Se(R?document.body:null);return j([n,o],()=>{var c;n.open?(i.value=!0,(c=o.value)==null||c.focus()):i.value=!1},{immediate:!0,flush:"post"}),(c,h)=>r(t)?(a(),l("aside",{key:0,class:T(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:o,onClick:h[0]||(h[0]=Qe(()=>{},["stop"]))},[jr,u("nav",qr,[Kr,d(c.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(I,null,A(r(e),v=>(a(),l("div",{key:v.text,class:"group"},[_(Gr,{item:v,depth:0},null,8,["item"])]))),128)),d(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}}),Wr=m(Rr,[["__scopeId","data-v-575e6a36"]]),Yr=g({__name:"VPSkipLink",setup(s){const e=te(),t=M();j(()=>e.path,()=>t.value.focus());function n({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const c=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",c)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",c),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(a(),l(I,null,[u("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),Jr=m(Yr,[["__scopeId","data-v-0f60ec36"]]),Zr=g({__name:"Layout",setup(s){const{isOpen:e,open:t,close:n}=D(),o=te();j(()=>o.path,n),gt(e,n);const{frontmatter:i}=P(),c=Xe(),h=$(()=>!!c["home-hero-image"]);return Me("hero-image-slot-exists",h),(v,b)=>{const y=q("Content");return r(i).layout!==!1?(a(),l("div",{key:0,class:T(["Layout",r(i).pageClass])},[d(v.$slots,"layout-top",{},void 0,!0),_(Jr),_(nt,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),_(Er,null,{"nav-bar-title-before":p(()=>[d(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[d(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[d(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[d(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[d(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[d(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(jn,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),_(Wr,{open:r(e)},{"sidebar-nav-before":p(()=>[d(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[d(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(fn,null,{"page-top":p(()=>[d(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[d(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[d(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[d(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[d(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[d(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[d(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[d(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[d(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[d(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[d(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[d(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[d(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[d(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[d(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[d(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[d(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[d(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[d(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[d(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(bn),d(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(y,{key:1}))}}}),Qr=m(Zr,[["__scopeId","data-v-5a346dfe"]]),ei={Layout:Qr,enhanceApp:({app:s})=>{s.component("Badge",et)}};export{ei as t}; diff --git a/docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.js b/docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.js deleted file mode 100644 index e733788..0000000 --- a/docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.js +++ /dev/null @@ -1,59 +0,0 @@ -import{_ as s,c as i,o as a,U as n}from"./chunks/framework.BouBWMxc.js";const F=JSON.parse('{"title":"Example","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md"}'),h={name:"guide/example.md"},l=n(`

Example

Let's try and play something with Warp!

lua
local Warp = require("path.to.module")
-
--- Events
-local Example = Warp.Server("Example")
-local Ping = Warp.Server("Ping")
-local Pong = Warp.Server("Pong")
-local PingAll = Warp.Server("PingAll")
-
-Example:Connect(function(player, arg1, arg2)
-    print(arg1, arg2)
-    return "Whooo!"
-end)
-
-Ping:Connect(function(player, ping)
-    if ping then
-        print("PING!")
-        Pong:Fire(true, player, "pong!")
-        PingAll:Fires(true, "ey!")
-    end
-end)
lua
local Players = game:GetService("Players")
-local Warp = require("path.to.module")
-
--- Events
-local Example = Warp.Client("Example")
-local Ping = Warp.Client("Ping")
-local Pong = Warp.Client("Pong")
-local PingAll = Warp.Client("PingAll")
-
--- Connect the events
-local connection1
-connection1 = Pong:Connect(function(pong: boolean)
-    if pong then
-        print("PONG!")
-    end
-end)
-
-PingAll:Connect(function(isPing: boolean)
-    if isPing then
-        print("I GET PINGED!")
-    end
-end)
-
--- Try request a event from server!
-print(Example:Invoke(5, "Hello!", "this is from > "..Players.LocalPlayer.Name))
--- Do a ping & pong to server!
-Ping:Fire(true, "ping!")
-
-task.wait(1) -- lets wait 1 seconds!
-
--- Disconnect All the events
-Pong:DisconnectAll()
-PingAll:DisconnectAll()
--- or Just disconnect spesific connection
-Pong:Disconnect(connection1)
-
--- Destroying/Deleting a Event?
-Pong:Destroy()
-
--- Yay Done!
`,3),k=[l];function p(t,e,E,r,d,g){return a(),i("div",null,k)}const o=s(h,[["render",p]]);export{F as __pageData,o as default}; diff --git a/docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.lean.js b/docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.lean.js deleted file mode 100644 index 15c95bd..0000000 --- a/docs/.vitepress/dist/assets/guide_example.md.7eqi7edp.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,U as n}from"./chunks/framework.BouBWMxc.js";const F=JSON.parse('{"title":"Example","description":"","frontmatter":{},"headers":[],"relativePath":"guide/example.md","filePath":"guide/example.md"}'),h={name:"guide/example.md"},l=n("",3),k=[l];function p(t,e,E,r,d,g){return a(),i("div",null,k)}const o=s(h,[["render",p]]);export{F as __pageData,o as default}; diff --git a/docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.js b/docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.js deleted file mode 100644 index 896a52a..0000000 --- a/docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,U as t}from"./chunks/framework.BouBWMxc.js";const c=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md"}'),e={name:"guide/getting-started.md"},n=t('

Getting Started

Step 1:

First, you have to require the Warp module.

lua
local Warp = require('path.to.module');

Step 2:

Then, to create a new event you have to use .Server function

lua
local Remote = Warp.Server("EventName");

Step 3:

Firing event everytime player join

lua
local Players = game:GetService("Players")\n\nPlayers.PlayerAdded:Connect(function(player)\n    Remote:Fire(true, player, "Welcome!")\nend)
',10),h=[n];function l(p,k,r,d,o,E){return a(),i("div",null,h)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.lean.js b/docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.lean.js deleted file mode 100644 index c286c73..0000000 --- a/docs/.vitepress/dist/assets/guide_getting-started.md.MBXKETNI.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,U as t}from"./chunks/framework.BouBWMxc.js";const c=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md"}'),e={name:"guide/getting-started.md"},n=t("",10),h=[n];function l(p,k,r,d,o,E){return a(),i("div",null,h)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.js b/docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.js deleted file mode 100644 index 9e19d72..0000000 --- a/docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as e,o as t,U as r}from"./chunks/framework.BouBWMxc.js";const m=JSON.parse('{"title":"Overview","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md"}'),i={name:"guide/index.md"},o=r('

Overview

Warp is a networking library for Roblox that comes with very fast performance and efficient with Type to any-scale games.

Why Warp

⚡ Performance

Warp is very-fast with much less bandwidth compared to native.

🍃 Lightweight

Warp is a lightweight library for Roblox.

📊 Task

Warp optimized efficient for large-scale task.

🔎 Typing

Warp written with strictly-typed.

',11),n=[o];function h(s,l,c,d,p,f){return t(),e("div",null,n)}const g=a(i,[["render",h]]);export{m as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.lean.js b/docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.lean.js deleted file mode 100644 index a493c1a..0000000 --- a/docs/.vitepress/dist/assets/guide_index.md.xfhCFaBM.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as e,o as t,U as r}from"./chunks/framework.BouBWMxc.js";const m=JSON.parse('{"title":"Overview","description":"","frontmatter":{},"headers":[],"relativePath":"guide/index.md","filePath":"guide/index.md"}'),i={name:"guide/index.md"},o=r("",11),n=[o];function h(s,l,c,d,p,f){return t(),e("div",null,n)}const g=a(i,[["render",h]]);export{m as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.js b/docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.js deleted file mode 100644 index a1fd541..0000000 --- a/docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as t,o as l,U as i}from"./chunks/framework.BouBWMxc.js";const k=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"guide/installation.md","filePath":"guide/installation.md"}'),e={name:"guide/installation.md"},o=i('

Installation

with Wally

  1. Get Rojo and Wally ready.
  2. Add Warp to your wally.toml.
toml
[dependencies]\nwarp = "imezx/warp@1.0.0"
  1. Run wally install in command.
  2. Link the module and Your Done!

without Wally

  1. Get the .rbxm file from the github
  2. Import the .rbxm file into roblox studio manually and Done!
',4),s=[o];function n(d,r,h,c,p,u){return l(),t("div",null,s)}const _=a(e,[["render",n]]);export{k as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.lean.js b/docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.lean.js deleted file mode 100644 index 4302517..0000000 --- a/docs/.vitepress/dist/assets/guide_installation.md.fMU35fgi.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as t,o as l,U as i}from"./chunks/framework.BouBWMxc.js";const k=JSON.parse('{"title":"Installation","description":"","frontmatter":{},"headers":[],"relativePath":"guide/installation.md","filePath":"guide/installation.md"}'),e={name:"guide/installation.md"},o=i("",4),s=[o];function n(d,r,h,c,p,u){return l(),t("div",null,s)}const _=a(e,[["render",n]]);export{k as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/index.md.Wvz5TWej.js b/docs/.vitepress/dist/assets/index.md.Wvz5TWej.js deleted file mode 100644 index b6302ca..0000000 --- a/docs/.vitepress/dist/assets/index.md.Wvz5TWej.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as i}from"./chunks/framework.BouBWMxc.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"image":{"src":"/warp.png"},"name":"Warp","text":"A very-fast & powerful networking library for Roblox.","actions":[{"theme":"brand","text":"Get Started","link":"/guide/"},{"theme":"alt","text":"API Reference","link":"/api/1.0/warp"},{"theme":"alt","text":"View on Github","link":"https://github.com/imezx/Warp"}]},"features":[{"icon":"⚡","title":"Performance","details":"Warp is very-fast with much less bandwidth compared to native."},{"icon":"🍃","title":"Lightweight","details":"Warp is a lightweight library for Roblox."},{"icon":"📊","title":"Task","details":"Warp optimized efficient for large-scale task."},{"icon":"🔎","title":"Type","details":"Warp written with strictly-typed."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),a={name:"index.md"};function r(o,n,s,l,c,p){return i(),t("div")}const h=e(a,[["render",r]]);export{m as __pageData,h as default}; diff --git a/docs/.vitepress/dist/assets/index.md.Wvz5TWej.lean.js b/docs/.vitepress/dist/assets/index.md.Wvz5TWej.lean.js deleted file mode 100644 index b6302ca..0000000 --- a/docs/.vitepress/dist/assets/index.md.Wvz5TWej.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as i}from"./chunks/framework.BouBWMxc.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"image":{"src":"/warp.png"},"name":"Warp","text":"A very-fast & powerful networking library for Roblox.","actions":[{"theme":"brand","text":"Get Started","link":"/guide/"},{"theme":"alt","text":"API Reference","link":"/api/1.0/warp"},{"theme":"alt","text":"View on Github","link":"https://github.com/imezx/Warp"}]},"features":[{"icon":"⚡","title":"Performance","details":"Warp is very-fast with much less bandwidth compared to native."},{"icon":"🍃","title":"Lightweight","details":"Warp is a lightweight library for Roblox."},{"icon":"📊","title":"Task","details":"Warp optimized efficient for large-scale task."},{"icon":"🔎","title":"Type","details":"Warp written with strictly-typed."}]},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),a={name:"index.md"};function r(o,n,s,l,c,p){return i(),t("div")}const h=e(a,[["render",r]]);export{m as __pageData,h as default}; diff --git a/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2 b/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2 deleted file mode 100644 index 2a687296748f6b8bc8076cd11bde49cd27e4442b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28332 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 HNCp4^t1hY; diff --git a/docs/.vitepress/dist/assets/inter-italic-cyrillic.-nLMcIwj.woff2 b/docs/.vitepress/dist/assets/inter-italic-cyrillic.-nLMcIwj.woff2 deleted file mode 100644 index f64035158d7e4c01654e3f23dcd6e8299928a28c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17824 zcmV(|K+(TGZYzoV0yihRy3;{L*Bm;yv3xXa1 z1Rw>42nQe=C3zL>7I?PUshK)MG!ta^L3b^d$O{#w!;WOi#caU z9epdi^~z}FXC1zMc;nw||B-~iJKZ7-`H(Kn3lKjZ5N5RqaHof~Lr#JsXW1jml58&> zQGi~|0cnL4zB|P8}0t5&U@c|JdMvNGlmzMw!d_sgsBSwh~ z<3uKERMdzOA;C{wc9u@*KWk~1ZrQFoOIvrA?XoRxnU;2`Lr2EaDbuDiOouv|*;F%- z#gKPJ>8fl=HUf*mFq&P*op#SRB5uMwrI5O=D|BV|t7*jYszMn6_y=vT5wbG)8zDBN(kmfH1b)al)=7_XtiK52#|ESncdAW0QK2HvRY`_;WiO>pz_-Xk zH!T)&YR`MAJa7J@pNA;Ve=XlUuY2Z4Y1bh`Bcza^p&9I}QLUiMj74g|4NyqjXq$hi zG1}j&v`P|}Bqr@5l@eV;qy>fq`v}SgHrfA#@*v!mV~$a+B6D&Jh-sRueXL+`%jr?vt30*Vq&Bs(79VL�!Z1%E;0yxE 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 diff --git a/docs/.vitepress/dist/assets/inter-italic-latin-ext.RnFly65-.woff2 b/docs/.vitepress/dist/assets/inter-italic-latin-ext.RnFly65-.woff2 deleted file mode 100644 index 9c1b9440ed419d4a71ba46b0db3951164f9e10df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63552 zcmZ5`Q;aAKukF~jJ$r21wr$(CZQHhO+qP}{e*fFaZJM@enzTt@R^cWm$_M}m@E^VN z10epVfSCRhZz}-6AUpr_{{Ms(tc4v=;*I0UC$1`>m`DPq&!?m;pd5e&5NSwf4HY=y z9GJ;WA6(1~$O=RPoTd*Qb$R_czHOKw7KCW~-DDBz-LTs`Mrk z%XuLUgqR^8SpbuiL4%mxNJA_EI`K0umbccrk;xp$)2&k!N+ zeb5sQW4@@M-7-f1BuW!r_40&w89d~mGj~nDg~8p`DPa!RR0hJN#AgiQ0OGbh%k>Fk zDg#m}JnXxoTj?iJnOuE<>SuM2Wia~bj@pU0Rl&5u8?*7~+Xs!C2=825{=mwe(rx;c zEOn+dpzw?uVxD{Cc# zf;7#S>Iz`XL;$iN!Qe}`1b)tM>vwI_Y;HOuW5^x@jJ+R1EZbgr7!eVYj1w3*mi18m zsoPjtSzSFjDebpA6Z87%!|TuQ%j>TfukMWM3zOnwTuSFLF)b41EPZcxZ!T53@#{9= zXuzYs5Gu@31>=~l5lX}JUwwQH@V9A2DGJX1&MF_9r7aE>vvT&$lC&QjiaqlR@E}3Ytx&T87yL=F3zQm(ASY)w7R{4*o3F2J^!cr3449 zLwFH8ceTEtF|{$~lrR|P)O%n^{D=tJArb9=Otf=kb^WpP!*c4@x0>xYSdm+PNG~@< zTzgoy_V~@LHnGH*_{exEpH`|SHg&|IDXNsoICrBy#h6-&ce9+_y8M#}cM%Wg5H9o? zj+{LL7{-1KJZnFS{y|N39F2N*Nl|KT zthEjVf*1=B0&$46p^8LCNMW;cRLa)Vmh~!Xig~4uZ*wuK>A8K~?lm8~TU~S^0&$U@ zs+ib50%G=G%3ws+@2@T3E+O7-8+pOEbeREj$W+R^H-?-z!%2Mip{zlhfG{GITYu`A zO6pHHCt>pK)7Vl14^l&g6GA63Y_awxq)`VS6%7*$z!0vg!r4p4)PkwN@~Cu*1&B6- z)7en1r@1j7&)X??`ur+;W*z^|BVJu)1tkjn8G?vC7MsQh%pfZ?@y{Nnwbl$WkeGQUw3GY$@4u^Px4bu!sn>q7+Rg&_ zbQF_J#)?8NM+h}|aa6?=Wq%U)cQUpwu8maZH!ICHeM*N2Lq8>42Vqr#1p)z*NJ(u& zd4-A7>BHaEs=jBNp1!`a?N7e8uBQ6PCdMMWUb~G~r!Fo+0z0j@EeT|x)&f`>WFrVz z;pt$sEd-;W07z+PqM&fu>nO|9$Knz4g1|q477#gdM)U_9v zoz$J2V12*ay`OImp4+p#jk8~#FXKT?%Y_m&nkwZ6BGGURL9J_llWprr1(mDQX!R!I}H+Elh9*Kt|sgG6&>M_>D|1QlpM~UMq~cfiwnHTamI$}Y)(jR z4kNJslqK-((750Ho7(d=CiajZf7$YipnMA;82Up_PdTr*S*&0M@2Gn2xmBYpk~Je& zMH246yUNtOpd|^lCWr%t#Gx+v4gJ|d6vV4Qw<^?spk ze<}HE+xOqU+`Z{;r&n%iawwo!3W)X;hiysn{`bAz{rf+^yxH$AS2L5}IXI&iKm%1` zEy?5T3j|lU%4XF?pFl5s|EPccjV|-S5UNg&+_cLfr#)U|`qC*iVl7&$>mJ8Rc{n|N z9KG`8EkoCyzG5!Y1(eb&fj0F|uyZqye`^U%7Y^twdXZ zT)#*A5!}y+)LOIYVD1qG)sT}kTiG?O+m2C=k)_*(m1w_tuTnO*x%<$)(U?X=+yPNc z(BE!A!Xm0J4=JJIsbOV5zAC10?w^QQ1Ei>3i?{ZEhJsWvJ zt1AT#sQ+?s$`dOelO|>X>uI3Ye1bRtR#^tgNbk@7`YJTPZom1005M`gB01}sdLpnL z7yNN-ouzZ8Xev+qwIMLXK?D@gDy9ieob=g~vUa^C#|HZo93>&0Nm2?Ba@sRqZEFP~ zHW36{MAq!OYz`W=^8OY#+I-ZIybtm~*w4)#h<6Y2R_}!%sy1YGrAQ~rD-i@R@GFeX z0ZX-zOiSbQ%i^;^T*2+h%7XpGJBl3! zy;aCL^qgrswVP|TT|)n4^4@Z+EDFBa!h;Ej2-#h*pyZxrDC;a^tG?g{QLq%ugHDy3D?9x^9J1UulSlkVt|F1Olg9l_v%FQ$vZEf=v;uZ{E5EPM-&I zUFLWx#RY+av))=xKER9~?--vGCNDeXS2z4K@4&!viqCLPLdWXW}a0H|& z=^Y>-iseB)&Otxa@rLX9#A|>BE{{Pqq!5d9C}ACDEyN$ChB}az>XkIHYE#lewNQ!) z%b0Vz?iW4eojBzzq|P{QF1(}2bMVil&&I%(K57n}U*o|(uxZB?yyGnv2=rzkWT7Bu zDZKZedC;3pkU?u47V}%E+01Q}N*dnJEv$F67uEj;7uQ=wiW{cTlSV_)@{fOg8-H zAOJW80chUJxBtQ6U~V(tc{;wYnJmdD84zOp<2m8cW$uBxK~^qFaZXlCT0A+Gl8Ugo z4zo2kq#$Rcm`aFo7=q+X;*mKkHDP+ovT};uwCn9SKVNGktNuvc{uWxNr%kJT^rKX- z1~qpijgU2ax5pun*ACdj|6mNO2br z&%3sP3K|j63eMM(QUj76COsfmlK1!T>{t;F?u@qhRWRsfh z8AI}Q;!F#`BOR)xE*d+!*R<(}ar|BCH@ao_eRcJns$9W$=>1T$=RK#rIulSBjp;P- z{oJOT@uw_HXHEOrrnIm!A{rzW8R}}kLtj=)6L$U?D?)rElBR~OqjA+)W%pxMd*PIH z&64h(mHp4@hfLc(gJV5*Nawiz@0isJ-C9+4@s3|+he9T(cEY~Yrrfx&kb@F@ zN1`MB@t8`!SRE1p8XH`#f)SNc<)A{LO11|qCbQYxWk{yT7L$yW$pA_Cwv|hRr4X_B zSzga=vJQaO7BAgEw|9_}5gCRyJZmVkExd`u0MkxnQAAJ|7t!t*A5ZZ7*7oqgUqWB| zQt~?Dy_)`%%vHWGTHmHZw0I4_wM82mSUnb9n8}GumT)jpnprbvmjGvZ22?g{VI)<_ z$t-9;>t^B(f99X`O)$AD>b1!QGDJcMQ9)j4;gBxdwad`c=l(!lL=M78ZD0@eN=lh6 z$p4)+p@bw)l#Tx9X()?lRjL?$~(i%qyd%S8PBF+Av3Y5;GWOMdhX&_I0g^XDC-VWrjmauURTA z6s+q;tL-*&Kyj^KvQxuVke1e+&B0Hh4?HVpa@QvuO-(7mqvv z1c)bBD^b@2VIc6 zB_{%jN5~2bm6(A!vMJW*iDYnj8HRwb$lT>*G%s}#wn&3lRF_gP>Pnd!M&+URX!%26DpbST}OBneM4r>cFC=QJguf5IoF> zG}hF(AkuxTSc<43HWTsteW-wqOJma)thnM^bgP{UH-<0ZGWDI3>?S}Yn5#F%1&xER z^Hn>_pI7JYgVHip*Sgfgw@Wt?hfUi|{$m*pbld*YYZ;{RtH#l%nt2xSMMnQo6wI{R zQZ2T!_Q=GO7=+jt9i`<5WKrQ#h-|AC_okhU{|xAPn?LB?D(HN1U<6*w=s~K8Qb^Sx z_s!23Tc*IROI>6$pqca(Y?d|h#P$@A?3_UHArL7%az@ulMe^J}z8jwcjL`Y-i>1MS~ppy(=QvYYUc) zI_9;%zu|~ELMA*0&C`BE7_|Z`og`UinYkQeeDSl*4uOyHRv-kIb-yr8DkfUt{wz^O zLkH#rblTTHII-k5@W7V-v*m?v(t<@!UN+3SSf-B+UBF9iDHYCls2Mc}a# zmJ(%@i9fcT;EtqMIc4FM>t%~-MHiJhb0igcA({KQH&R2CmUlztngX%P36WTcx#}OC z4fzyEJ`q`YVJbyYy!H!?aoqXL24Vw_@Tct8c}!5q4h_YJ4fE7`fD1tRJ&@gUW7XiW^hBH-W$fgqM}-H_d<hsV7gpe+-QTLrx)itsk2P$@x+CMOKG3a>L-uW$z{FTusJCqXhJ`2P9bC1cfL;QHu4tdoJ z_zuj)O!}{`*feU5HsUKd$3hEX`yxg>v z9lo;^gHrtVsjOdU>Kx7cnsSSoT&nQf#}>1;6tg11s|j-7)sVRlG-yNFkhjiSx?k?C z;5b$J?Q9gYkWX6o!c4S0PCUk(+qLr57;)OyfwNieaQIWkkvksE86L>hj_mJn&Ib!s z+zTP;>!o5~2BMwyZKqVdk_}gDlOHmVs-DD%Wt-qTey&~SmH+1v3G3|&27AW@F?beIKc3Sv)B8ypcZ6yG7b z*BMs{vtu)kRO7p{jz|%Hpx?d3Yuz6r)Je@L5*Rag6Wf1H;1q33lbFhYtz|lFM556O`xrJ4F4BB4yP&2s)NTKf#7R>D?-pC8MKV+&~#VxeagO zaMY=7wiUBkPVkzcdF!)nDFN?N8lf8bhzbNwd-jq_(HxCJnqo<6b5|s=J~oV?tCx{X z@KT{=Yvw+>Y}{8k>ET-LRH{9gKxg4T5=lJPq(-a!-rb_?CSL2wqC}J3wRY_JYT&@u zo8nf^pHxITWQK{nUB!V7k6fp*C}XRjsTCt|itR13{Yd9Wb4%u#03#0r^_`VF+Cdyt z@u2wfiSe*O{uNJVL$lx=;CutXm@zL4)X~>r3FX;tvpCL+VE(}-Zz%GL=2*X z@?CUT0f%*@^+Vhye^+nTV*71fFif~(rK4wORmNvqhl-YroBx7^{^yY?2|oHBV|y91 zbUtb|jc4c#6{cR`%1(mal&s2%k4T}x+^%NWMP|wHmE!6?x*qi3z@{uj})LEAnb#2uMi`*qCw7v{|d`OTyVKXkB@IA zq)&f8?uLTQZr|wRc2q8bf)Y_LZctnZ*dG*`6{-5Ms=qyIH_1945?bHW*f>ng@^D$K zjEm6XxASid@PL<$G|*o{kUoWkLUktba7;{tQc-&Xa<(|Ja#j-o#DAC&4*{?k1Yod` z@kWHS7>iA}+Yz)dd+}I85)4$t+>x3>*{mRvbOF#A<|7TI(%j%>H4U2U*#&d6ZDh2m z3Ho!TiPLQ$JW`T;3R-Ax2-Ev42w)gV7Y~yCfVnmhiH^#>X!{!JB${hdS56z2gJb?X zvSKDqw%Di++-H&N&sqN*V>z4M><8(0ON_;~wb6t_7a~v%5CH<<(a-yEP44>#)BARb zZrM7|_h60g`=ey9kEr+YNX_>*^Zj#fkG|L8IHxhB=+5`Ar_aa!xya7@^=MAk+vNLl zTrH)qLHi=~;VqHIrkFqxhav{&XX~NQ<$>cbdv3%mLTRP)#wQ3$3%pg7eQtcacCz+d z{bZi+Y=K!yF$eovx2OGzZFr>hPNRPc)RCh%o?7NHA+J-?H0GLf@>69bryH>evMZuF zqCKQJq!SjO1cX9hgTNNvlg^dSmd=3AmXA9a&Om5c{y_d*NIyYQAyX|sT3(bk>Rn+O z*dy2;#39<5+6g}yxn3z)slVgCSE&~)cz~W$8p7yql6#nUL`)pWeFMr=#|QNdq^j4y}^cn*BGIVCG8+%=H@O&(6T!w6yuVF9D^k(#9@ zoG1wBBZBGUSQ>cNwb#DQgM+)yHS&6a+G^VzW4F4H044(rHO_@cqjWG)CL?1UMN(cm zAtaqTIbXSZ)75AGjw3izE$cbNYR4ylZ9=#~D6*gKP?PjLo3-TB}_cztSl_h1N57(0ra)21L% zdwm0Q9TnqiFEF1<(>Jx*`b+vhtBzPx2!^4>t9A%_A72@7_FBwb5Oh+vH{sLqXY+fr8vZvmwst&%9AXd6t^lv#9^J{5Mng|ghD#J!xu?4u>}5~sBb%ZTqh2jNpZ z8usVk*Ee-cQ?z1rFD=m@R_iop<7f76(Ye2p$5-{iAPmC7z`CZxFfGX$(-ls_Cw8|? zhY`BgIoMLuy@q$z?B%&v4G6fuf$h7pT7mi#+R4r-^isHO7;b(>E_xzyf)uYp(5+}T zl#yZ%6bA_39%ME<5%LdkoD>h_<*SZ#UDk;`hC(*EZ}Ex;)y}x0Rf4BBHA9ykRR2L& z){&Npg7y^o%|ltSFY8{_<(2=|s^|$dnUQ=lpcj~tb{z?_6mv{EC0(%CYQ!wq4PC#M zUu=kycQZTKnt%h~fMJ1dnjKwQ2>Sy@+f8*`UgII(`V=>EAtku7b7uwfkS*BKSnW(% z9t8cc1mfCn$+Hw`0Pid6l_FtyS~`|wKmadb`kZyeK2P7>XDO8#==UbN8{torZa%sr z2g>F+)Kj@JDp*Zau$?7EXGaT56!Y0AB+_?R(Csf)mrSNw*SL5xXhd%TgZS+r7}q@ zciEFHR#!4NKhkTXTqRs-x!ay=l~ni+MztcHyY1KlX;A^4g1ahhUgtJ(A(!a3{gNOZ z3fLXP*h%J|7wqjY57*8Q4~@{&Wg|DydbUzqD)t_RBT&>0sz5O*3b>$ck2CL%U$2Sz zJ-uo@>9P`8U)#RcU$xJZn`&xn>Latbd}bG@=gS-yqF?JPt%WkTkGC)5+nJqADemrT zr7;mQtmtjHRhr<$4xPZnYxSiuw$^^yi>t5hS6_z5qib7`oh)pHJ~lE5ts3oooQOxV zQ(HOoHU&2n-QTLMYaP$k&FGyE9nL zs{9IV8?ENlN=|x?r8d$g6?bA-nNDq{Z-e2mnld;$m)i-+rmZ44cw2KQcB5;rrcY36 zi3Q?%4y=eKG`DU`LDP7Xxr1A^(qVCTH)xwnfW{>}^}RP+nt zHS0b;zjK6&39Sx_Lq)LDrfF7!%OZi@y%0vzBH-Il!%7DZY=#~@G_%+&q!(0Bv)~DA zg^*$S5fRB$3!_9I3L!~U4IZUe9G8@+T_E?nMZ)=p&Lr;VS~uAa!^Y>ZY$)RYWcD2^m+;k?GKaRGaX(kob7 zk3;Be1&(66{70gj$bF6I3=_VZr(BH(pf%QAQ+G(8vgUfPPd{i~hc5{LasUwbLp^tt zIL83)0p(o*`wcGvf%_Bvefa(Kh4d}CVwvJ=%wXWz z8IqH1!aGdx8{qLoQkY0IPBGK5WW9)I3o_Lccp-O0@nL1}QcM&!B+^4nG4scu@?J#c z*+=4sLFwldiMI-FIsxAGahS5ncti0i6g%TE-7j;rYgW9MynT2N>W3`1PAFMHD3HeVE^#RkZ_huSU4reyT&Lt^WBqR0y0Lyc=*IXLNX zHK-!3PuC%{PY8}REW(Dcg>6*RV5Bcl;Hu59_JNo&7BtZZd9K&r3^4k*K?&|8Sl5xw zxShU1EuxVUDdNdY!_A9=IpAvGQTNAxf4&NOmgYy$P-bR5r9iBX8oh?sCUfxJ-^EP$ z@p9mB!oUH!)-)|;&>QPY!~u=s`=NHL>a=vUzg4k~%$>5_r6bv7^$xCp4fxS_F-*!^ zElZ#I3)f*W`@L<9T6-27Yca~s1;cD?{}8erNGma;F`ef}xb5a3ua(o@w8tBB-<@ll znbOQGYrfsAF%~c=%^MYDf{05aV9vCgjF@a@Sv9asd#kNzFOgqj|Eadj0-_nKO<*WO z7_HFnr`Rv7OJ|i>{>bf{x*k34eR=~TrABn^*~{&$0dn|Ac2ORU<0AHQXkL&GNDY9} zjgLdMakNqpw6{_IMCyXj8HxA_g&_!gvnL-R1m@U(@Nui(=eeS?lNv0kSTd*vL~PsNx-x*MW!Xe77|0j151DTe zEvK2{82dR47%o-4BW2%46X?uMyV<@eRm$egp1l&qwE!fIBB4tkEx;wlif39(6qoDeT#mw5uUtENq3#rGx2gl~h1G@@#69 zoJN8`m7>EQ#1&7a6KSam%$j^^L(5)@PJQ+;->f10;6;#8nC|HBBG1-?bX6B>ULh?P zkbr#_)8H&(T3ii+?;`yVmFzq3glZh)4SvVs0Q3G+r*8oKQ;tW!GPk%uk5C=#ZclIX zC*y|8>~KED z=I$)S6c8ed&=6x{C~b$;YgCM?Q6q?AIN7`@N6@IhU<|5-0uv$H=dnac0a*5RjikP? z0%s5p3h&lTT5XUAL|f5hYBE(`M4d=2(E(1er)`)czXq}zE~#ieXNvfd&kj=x8F1oF z4vw0(VOjP#R!gykR1mMajFhI7!QY~U1K|R*!q^MyGb#?Hf*=_$5X_1}Lv%_mQHQILR94%n@ngv>aqhlSLg<%sIkech)eSJX zP8WCsO4NLJF^78111Srvri0>g4;pMNedUMPYJc`i zPxbc;ZAxcI>x?V{FnY?+zhAz5&AYgu)vfNL32e9g0&uRd6BbanoQzPhz-{&gFZYgp zOt+X>>~R(0o5F6toWfqOx$S%{wSZa6v#7dSgl~L7oIu~JOBKo9=td0Se^UaG4IC`Q z291zKY#|`J<`wnzi<5e?4|yueJcQu;dv)%rn=-=SG~lXJy>qii|7h>u8aW{ z8KPya{TNSeRL?r+<2%mcqwm@(0iQSqU&z`t%XTV_VYvdUv4sq~kohDU<&fUizMuO+ z^eca;e(o&pW8GT5i_tIe$@VJdUl!Ze0&GCE^|x|fSZA?w{;IbRz6$r+c^_d!t=u=6 z4S@Cdc~YRIf(7Qpi%JF1!m2JS=z`+C{wI0K!g9q(e5%?B+_&A6#_uLrL#zHOWgGd< zQLP@FgNh|=;w}818VZ}Hv&?|BcNj=lU2l~>CuVlxMnfl6v=6b*6!+`#t$fPgh23K1 zUv{V%RyhsHuSBS2+U``U?#qvh|6Jopl>^(SPoh{o%3XxY&hKCQ@Q(c~InOwPd{(Hr zOUNvmt1o7$=nr|e;{6IyDV0{%Loe$0Wt2}HilKcJRfDsF)cX(&h?!RcNN#>WwGW*; zFZDCQO@Ay6KR)2g!PXwNb z&Q)D2a7-#(=6aK6PY6YRfP~T7VuBClqCgP~R#r)2@gVpj2dsOmoSgh>2nWQL_Hck! zn=@w?nKOCk3`Huu#tr@Vp(xJbO_Z$ zi+c^;RgFPh1!{duC&l{lA%X(NZL1#|Eog@(%iTuUkt&8cYnNn?_Yig4A+Zcb?LhDR zB40XJnWCm#O-SF0KteLeyVghY&pb3A*|qKk285pu#29j~mj)HqV<0HyZt0GbnQ0ZV zLE2cnrwa_k;E-FfSR`iP8l;SswNM^A*))Puldn$#zcB*#%VYa6n0Ch_0)BA4&FV-` z&Rt}{&J=sA0O!a$`5HI8{-2^IdoHw_k8!tghyfs7w9U(Vp&1LP8UUF-TfF+6VOYJe zR+*|mgwMS{@XssKy7meP!dSXIOg_Iv!716kJ7H9GqBOY`Af0-8U`7Vcy2&lE+OaEf zqhYq$pFR<-ac%a~YO*z!`rAh5)!6_|nJ-aATm+RY$FS7ew-aS9d27D5KAU48V)Uko zlk16qBMdo7Z+I}-MbiWduj;G|>`;13=tzI*-1W;-ZXzABK2;AB_KsKHS(6GxKn=Tz zz7b}fzafIN>e!l3sc*50D%~i|mbk#9d`>x>%v+I~zsb7rFVU7-wXDOW$mRkhQ}SAY zH5n0%8C`ieDOEH{N=vXm32(mSK}GDL?st}_&B#t{0fk6z9!8|i#>Tf;TfP_szTzq5)WS~shUWvA^jd0SK20<8Dg)@2d^KAJ z)~fDCkI$b+LO`z6DW6~-{L7I}2P!$SUG;adK-HZR#z(@0vRElcFo99@ zs%ViIc}#7|p4!_1J9`(UvOH-Mm@hA)nYkL@XcdsM1|#Xqh(cd~>5Ed@v#)iNWo*3% z-N!_Vws&(aFhM56AuK23@s8GX_1x=?v5o9`R?GvoN+~=a&*!g@o43p-?-(@W|}kkWZmyJVOmrA<1dqBHn9%!G9&dg z3&CR(NTDDwN2qPKQ?=%N?g(}ii;P5vsY$9-$Wx>F_v4K!i<<;%6XOzmgN{SwVez>) zYB;qNJ~nXB9*ve7Cu7rnTSZ-W!avAu4cYS6M-uT@VNEKG@p~}^2eJ0K)2<_|{swBn z0Qp0$p@nL3v^yZ}LxEd9Fqaiw;W?XCPMtF?F8MPxwNy(|KB9XzM#k&GR+#n6{0xMkR0GN%vkkHO> z;XrxIQcKEMS!o}f9hm73QS=6Y$T8f<&(-{W-t1Kft^4HCYfT+D-j#t{Q>0Ev+xH3J zY3+6C7GB-H@yxR(+07W&mw~{+!57aGye-X_F_%bX&z8&C7DwP^%vjc#EjMHfQC;n4)FM?*s!cQj)L^oa+T5EU8H@!F-h6^i<^?MkkVO5Lj= z`)jK?wK;!)k7%uOQgq=)Q&E?HV&xMc;wPy5HrKkA6ZA37rG7P_zt0}GYcv*fL+T77hLYMMgOKoMb;lix)p6)?M-J!Y;=3PxccxLe)On}tfKX=2sb*(YQ z5i=Ev=ExGC+jARr$|03CYrVlwyaIVquEI^~aM@>$Cz8??7&V&WnXgp0{$qw5Hb&4? z{ee}4PH$~|@hgBvwgv6s)!W!_hf#Osse!$9upYF&s#o=1Y8Hbcj+4P{_ePm%3kEr{ z;XK53Vtd5!B+9N`x(-zNrn*76=S-0x?MTA7iKN1t(H7}-fUrw*}&!uPY|0>%i@Ww zO7MBSQTz-9F$%BV`>Vmx&so ziz6z9hcdvty`x$Y5vTxTc2|c*>lRCIh1j)TF}^d;i)A31hi-AbP9ymjfSV7Qz}%A9 zscd^|Yrhr_)i=LpAUA47lQ2~;bMFuX*ZmI}wwSlaDd%&Uu=#mXM1nKI=6z_3dRRWZ zzjH2>(v4zHp3YSpfUw=h{}4NIW8or9)@bCEV+3n*<+MTI7CR)hN8-m3-UDjE6*34x z(sDL+HX%`-i29R?v|=v{^e(Vgv*lpOO{Z@cGP^oF-)`Gf_Nb+%P@X0;ndY2@WPuO^ z@MB@ubpZ{%+T+P_lf}~D;k}JcyGI^H>ivgAN}l6`0c9r%O6?Q#2w;}22aAU#5n6S` zwhG(8x()mbSz3Icz%5~6P_ESf`_UAmw3HW~o2t-1Eb)9dfdC6z*Y`Z4+10cHV}^os ztlyJ;<9y-E?|`_Ib`Nbx#WAkUxpzsTFbG zfBdlF*qfd4V=3u{TS#XvH%b;Ro~-AF@KK90jpESck5iy# z=P>CuI4W&XO8Ub_w#j2WeU&=yK04tz{k}545t%MaH{a-bqJE5F`rfGIQeJWpmtidG zIeOgNLg-%kBH}Q^azPqt#_7tnH^nFk1Fj-lz0u-3)k#G@^+uqg=|aI8yqO7($=3?& zXo#W5!9QbV?L4v*ntuLuk`rRAmGy0*0`Bwsd+n&9Yt_)Oif#bO5@1YC2A4T2RL{TK z)06vZ6`7mcqx3sfTL9uCy0Z|Gv!|fnW|NB*j$?N@ZZd7)?lwn7^OS5ZRZ{uMi@>0F zM8ZD9Z35krxG{@oCdtsTU&twYoj9P;d5*fPaQOr5E@E=3TtWTIgaq_Mvi90sbxluk zV#-_r>c3L$GyA&gDmaTT2kS^fBN!LQx|=qVm6??qyA>6Ln@6krJJW0V$H=V%FceYW zoz(R9h|l3spmLl;p5f$0!HDcI-)6F0$L$uPK?hK48XC4bHZg<^5+!rjW2f5TZZ)(owvnXv=Ans!vB9 z_XA9&eEc4OycP`W6v+NvQr`1Dau;j7Dw{Obc&>p()+&HuO#vnl$$aSVJcEZUni|27Kg!%og{fW9APe_!SGfA{2C(U`!L2kg3K67o^b=#4<} zrnZ*9jT0eYoSG>1 zo#>DYaSbt(`VM#M_fJ7$$5xVH3Xq>OjO(4|_wMA*pm$aA{30gD93Ogew-np_mkcy9in^XC zM(E6L6Jgd=+L^~kIcevB$0)g#44104rJ{Ji}rVO(b0?EA~3{5IY+33f4&n7b|OQij~hq2Mj#VA)n{Rv<|R zUIIIzVSUwc=JsG=0L6oYe0}Zu!^+RhMXZBQxn@FU#{Ipd@?I|j{348tWZl|SY@uW& z4!u^uFug?aDo&l{(=p|v#nZT2A}Ik90Q)uap@NRf!6A#ken2Zq@d+THQ)8sV2=3r_ zgQ@Q7p2u+543Iyk8_GxPUy=wM*g z(W=?9lL?=ZI^nH;*Y+Qh=rXBX4}#m_kb@==<8R@#1&4-AJ>9``nfxf51>A+6h5D&w zr;4Qk1lvMRV+J}$UrsZ5edX#q2A0KrZZw5*VAf0Qg>U<&#|IXq$IkgRJ}s(v<}m8D zmvDtRKy4b5tLy)i8a>BOA>%ZmuswC?(va(hUoKn0z)p`fgLyARX$(L>Ba zcg7%OVogelni8^I`QHH%8$|{3Q2>s{n#7|$AJFfb@vwc|nJm6n`%CRqSel(W*rPDl zE)|@Ri3ww{-U<6m&t$>aVkdQf6S`i>XkMoD!4GamXXVSZZLp^owLr?wm>&eC3#4FO zma9?m_8R*9(G`5*?k%%&*;0NQPpY8C^*kpBd@Z`HAHu~6y+3|}M$N3%qMQFxui(Rx z9h*rLvXg6Bw|&d#Y;MIr$mjWZFpE(T#rkkTskK_&hjS#$eU%4Q1^Nb|h1~-(hiysn zkka4ornvMl58;kp1y6r1^|Y}}??skE1}f$D3ZaWTqEU-JMq`k;_QE+`ziFbx++n2=MeFA6HdUIaEgLW&Ktnh z-r8=LnuBYBi$iO}jcCYrjFKsTmzM$Ic*c;LF(&Ll}0@)is=ik!s6tW6eZ55Gq1sL;_=OPpgeJaq|w zTOM_CUOjf<%NSsvL@I63+n_Im;t@zYXeS9n)kj}h) zDF%y4iUynm_W}c_mc>y&w3BLko#w|187NazB(75nGMJnT6iAPi^K)=c4=nA(U|G4( zr}&4ZQ$AYd!JJVSAy@t`F9FK(NM?vj>drB9vAvKi@!+oz%`Gnyjd5c73Gk?P<)Bry zoLBlHUz2L96K+eyEonOHtna%+oTYXB-CFrq<&Lsun)m)VTfMcm<5?tme=~q}$_CUK zO}g)vloHHM!@7Ta4?A+($XL08zqTmi;N3~o@(nZGUTtem(n@xxq)Cu^3aH)=U~fvn zO=)-x&W~;_DmBcC97Kl{TtT@U5+e?EFW{G36>u0&NKB{Jeq4I_q^LWY3UNJ zmrxE<^>F}&o&ZF(-|CZm;R-DA736ctCT2F64E3S)3+=EWUYvEX;X$!%+U^5!Xx_1y ziapJ*4yRU(VF`r_rpN$l5iWrmy?bWv;vC@8_&kj?O$^E9mRkBOe|XS;VUx74wR;Hj zzou0>dZW~P{gesVc??xM$O^DA%E(?a-lKl@wO}=JCriXsY8+FAQhts;y_2MK8*F>P zlMVZ`p|4;D`4N^G+xig@d&-@yzVwu%{nTN?%UUzqQt%sizarM+DsgkyCGYe+c*2<{ zv1dhiImE2JexfG1+*5SdL7kvpiK600;m-swA zI1&E@#+A039Tc2ZeZ}rgFc|O>BA05si3I&Io=0KGzf6aPkcr|?s9bhKfbt1D(&^26 z)=IjO<)^y{vil;)fS7Ijhh30-C9xV={|3^%fm4Qr>b*jCMjHf85_4VEt6VZ}?0v2* zdRf>v|09&&wV|s;7lOx;L?W~Y8TxW?HY#o(;I6C|U)bbQh5}l()w!ZH@8TpY{aRoGqXAtLKOn*YVO1-2Q(@UF*>MiPUVlaax}Wb%h9oj`*xXYkpSg8mpG>HO1l zqsx0?ftTH8)w|{v9@KSyn2%s63?uv9$=jvxC;61aT41A56OvhTK^&(#M zje*60hmuwn%+`1wMj~Q65R?RF)jcxzk&FkS z%TixUU{w>R7*TX7mk4Zpx5rDE)7nkazYYP#?RGidh11yoDm{vwFaEeW8~1|;{|s%A zo!R^GzMbuGQ(bL@<4+9Gc65vt-R?6GPD@NNK^CUHMEjyQ3|YjC42N%!GNN5Pihp`M zxs?{eq)5z3QvpW^8s=Se&F(81<}!$b}OBCy{ey^`2u-# zq?Bl&p^9e0>GYCfVlvnm-L}pshca_1B4h@Y%0)KrdDj&0`tAsUQ@HCbmneS0qW&pF zMx#uB?VkKM*!Ig!iJx)7{=x23h#olT9xjBy9h%0>LdbuS62GZiWp*y;eMcp%{WWwI zJa`%hu+RcRp&Tt$$b6=sSH@)TWjH}8Hfvk5Gh!kMQy)y_Y&7B!NQO7EL;la=eRL5l?``rk>IgHp(WuYzi-p5)d@roe2 zdq{#JvEmg#)_@mj484hm&0-CMcA(BZ0MNYM1aqPLMij{m0WVaV5H?TT3KXP=Fd}JT zR%bHy=Y0ThT2$ab`4qZphdmK|i0#3>(U6~qD8W{4NPN6YnS6Iu3_+ShYXl%K_cBnT z?0WRzxW5XDkZ#)mCTW^pvf8hel(yRl=XO&d`2PVnK*+x+6!pSl{R;|gOyQ|Jn<*vz zqtiQ=wT&=8pYV8*;%uElb&lXlT9}kncVnW2W2MEk#D6P=ExDYMI)}=~FC-Mq#s{^fdsr;cvJuU6^nbdX}U)e$?5tKdgjca{RM9_q+sFPbBd;hqv{*1f^%J*-*CGRX0aZhJ}-gciW)$n4`4 zBa3X|u<2OL``hD`n`LkW_A5A@{dz!hIk?V$3oz`h$7uEwz^ELIY={KwzHV5{45|S( z_Zsx-gl^#@(wpyZj-4_$M51$tyF!S^ey#|V|D>QzXW+?$SfZbw4$ubgJF{6-)IqiCA*{#?bm zKeO>xSnDA&8vf(}(Vo0^s=ud5OVoS`k2P=wuIGwP%Lo=wl)R@yTUPF%WA?3?2RNbH z0JtSeZHi25&TQ_D%!lBf#i*hdPIGVsL&8Cl?J+8_h^52^`wP(Ae#U*OVnnvq$5on% z=t}cyTH$ZnXuEz{+r7$%G>Z{oyD%r_EuKF*4Re5tKRaF*^asc$-{?Uv@b6Dfs*2(L zH`63kPouKapM2VVZw#-dT(%ru1W*f)J>Tk7<%9vLs@@$l{x+g);#zzDYWj%>7!bqu zTpr0P33_OW*PF$gW4GPWu>S?Nyo2#1HF`{D@F$0yCy3H@;~iH(76BmG!YxH<9VWv> zM?^_D1LvQGJ2}VlBpf6RcY7EBd9Q{&06@cl83CHR_SNs0^=Z1gVB}!MknV!xKdJAK zN3TlhE<)&6xw?;{WGjZDG=nwKbi?%#Hbj39OTfqNK1GQJ7lAIPIp?g*&?|A;;$4Yn zL7r}4vrIa6Sw9V2gV|-{^ewP$ZRT$Hj3;&t=f=<;Y|F#jg%-QD@J2hdeEs+O3ogU4 z{D&ij3{R~G3@v~EM1SDr1zxD12mxC!n6(p1J`j$NKJf3_HF;NBdUSMrI#9=hB$$X6 zZXmKbz^z3#gkq$0TnUMcYz%SfIE$Oqaw)*GiFGtp#zDrJo5>1nnX~csqkx+VbUUjH zTW_EWV6K6g$LOwpd>@-Cd2g5tJF}GGQhPYr>vS8<$0qQgXGgmo3mhPLz=`tpW{5jo zVF@v4I=bke?nM+osL0Zgq!(zAQML?tBTX1TVgIc3r-BYNPA>hoC=f5MUgGIRECPm` zixYysj0tZ&^54{JFb~Gj$hg=nm@C*fIWPmMqNIcLdB=_#B|^=Mw`!3LB)Klg0|uH) z49WYF{vLmc%q%>6Hz;3tYX#T7rszRG8X29K1t=lnBxmn+{q6zTWl#E(c9mcInabD# zncuOzBx$ul!r&daW6SSvpUTwCBoz+A!&K`gR+eSJ6(#Uetpo zD3_r5B@Ny1&!^X)JYT}r!NW{?PQ?g7S!iWzes4kP-#9U$|Md?q_RKvJyX>381%h?u z$e^%%*5_z5;*g@hS$lU_!}>?^-}vtJx`*z$U8s}jV!w{-PMNR&UrMSYI4QnL?9UQT zm>%o+;dJ|;)de(Q9skp){O8LXN9!-Cif-W?21rmoWGA@W3@ME@=ZHkjX*K|k60qir$_V^THeTiQU*0mA?7o))(rbg}Q|2mz$J!p6zmVRuX0 zZjmmJGxxnv6%hJ0%!|f<4?X4Fi4p7n2{|hXY=ag^sI(KC^;hGtp|`C-4{0}a@h6}t z1?liA1d~9H;~JKiEKR+RyKsk=wXfO;g$VCVQqdqh3`Q}&^4JmVRNgaetkHFuQ9RZ| zV1ee`!s^|-D$l$U+38_rZb)pb2?W71{)&bpE8<#X>)XlydgKO>n08d(+R4XS@5PY~ zs61U>U8-Ex@OrDGS$ik`05m&RbB~+V3y;8wJMX{ARf2F%F|W5t;e0(OQ4$gGne6{T zagUF!Jv+hmXL{O@Mg>9so^CcIV2tZ`Z*rMz%4lmzgv)Yc+Ohz(du1J+|3fI9p6$Yq zly!k4CoVdgvpaYiz7B`C>fQxkMwrgCvRd*{c;nW@l&=cxIgyd!9J|0Ve1E7UTa6Qt zs-8&9xqB^6(HG`gPIs08a@)!py6EfqvGM6M@Fub*aNtHqM{s)|Cql+et;ZvsJ&o{2 zfj$xRq71xQa$9?(ewf-kP0h<^J00kkcFNd>_%J;wM8U)nmK&4GqE%nG@b-d;T(5gh z7ZU(%AkaJB{_|Eu;b-&{8I%BZ6^HHSW(RKbhhz?ufC6r8Id+X5OOh^2E%)sFPFrJm zz&#>gc!L;S-m^?n#!l{ll!aHZfPxSPQN;64O}?*;P}(l^<43%ueMyxe;o7^2;BZ$K zlB^hz<3X1J;fj2syIB31?j!Nj>iUpaqOqpAlxq@9&@mqHjG@Hv@P?YEO0JGNbyRyk zHdcV`T%eEirzdp)IcbgRSMX+^O|8Iib8KQPY7~9(9bh-MUdc=L=9u&g! z&MUa~eUFhc-^zLRG23za@ngB^D0Y~rm34|}uHCd5%_-qML zs;4_6SWAkt4WEH$RN_J$6@uG*+@iiOfeIKFgu>$$*)jh z9K5TNed*4>g48#de6&%sS7x2@j?g-@KiP^K`H;d8tpNLR0HF(zrn*4q8Zb{u2$lYz z#4AM1f&2W$X-$v|9A1A$Tm9fyJO7Fe$*6{#CPd?~5UZBL3@ioX`h`DmVy|I}!G8G5 z-LyT)`?jaynQ%Hipa2nRXS&g7;Gd8ZLzD&MNHg6QoUrNTR!W26e)x}wg3+gO;$%Gr z1k$lP&@5@%)4v-(3>>%yJIfeuFE~P{l|Y5j!5cZ}$?0K8*^dE`eMJ!4 zQ+6m}5;EzmT1!L`*Jmd-WJ1ey;{zG|3{f$F>!YCMtk%!6i}8O)PyCjddiE6yQ13m| z*ExJ$w`o|319Ee(W|#S`iUSBvdm+pdb z{REdL1P@oyad05Uj@od$DCs2`D2LLWv&YZhFrVR!ar+3e#MPlU5S^nlMJX>q+bHD_ z>4oP%Xp%uN>u9@cr`Co+gH7DC+~y@~2KE)3ou5?hSkZ{>JUJ+yJUBLSf6 zGO!}@`=)HSJ}Rb@iZIt*cDigqDjWfaqY$k9-x9#3H2mZ853l9H@BwCnh4j=!6mosW#IiC|mm zCMpM>PZWTZYxL_BorZb{bfUlgavo(oES}R=kFjb0^={lQDK;-4+*Yh>Pk+FbJ?2iD zH6<|5DA8b8B=uxTS>LrY=pr;&(9@EB!gr5UzdlL8>KzKemTJ1p_2F?uyC2GfA&2jxX(0uQL6D89-`WY zpN(o5cHkd>6kIoJ)W*giVu%>cKf-SnAKh=fd(nQw#25WX6}ACQ2`RtYv)fg!oqdO` zQ5(8GJ5@02nSC4{La@K^?7KU6VQwF{Qkr;e@6{b_v9xH4nbg-7bAZ#T{{b)3UiwC2 z{k_xSyv23)i$O&Zbn_Y-HAd*AOo3-8XT=wD^1#w7G>FQ}D=7`Cr3R)ecpz-*&#fYl z4~dPx`kw5)auEC12L`6Us+@8}nt01Hnc0iRLMqh&%DL$s`~_vs;Zbl(v_>NF!KD+<$gmGh=uFDKfvb>A{5S9c00$i?>o>D8?;p(^dJ^H3hE&nY} zq`VdF{6Jmt1xc%T^px~mUAj-9>o!K#Yw^Cz>i0d9 zxaVzJ>>EP2y7JqWC3xPvLCW}gmd`^KKE8Y8ja*ve9!PbJ)FMy@u@%wf_jP~(?HT4N zwX9V^{WkRIi!x>45=vGVPpPr6yV=rz;TN1#}&Ep~~=MVRSjYda@o?r2IQ&PkIEYx#usDZ1a zf6e;^S^o^MY$dLg*Hm14DPo*A@dIe$jk<)4s;T<4??9fW!W<&u@o%yAevm@?_V+bt zxd&S3G=)I_udGkqKF)iGE>Kq}a`p_#brn8ojSH7aJb9vE>L*k;xB*+_c#&l1Mi#s8 z<+iwC{rhBEB1y*u3bQlB8`t+Jm7O0D6^BcNaa3AQ{3BQK8C9*@y1jF9d8@{q30rA9 ze)A5YE0v8V^Uy#d0wvrGD&VCm0YJL*W|K4K*mAH8nCwK7dkQ1Dd4))_VpM-VH!?H7 zGOEZT%)}>-UQ|R0)8Dj{4z3{0bZuJy_-a1TiI;0`hWi|()lan6ph229q%=e;LD;<{ zH0;F(=`eBnYe)9Ax8G3&8)e+sS6v6D7eaI#ht#EGr1kAfeJ{#0UlYwO%V11MRmK-t z7AOy6($k&ru`x7whqmYe&1ns-LKYynY1ySl&eFi!Lul%p zWuvSek{Xc7@+-|mQjrv$uf}A#>7OVDVgOuXU@LzPOM`L;q z?w8*ck)wSQY1?I>H6(KVZY=!F#fJ2=V+6f*bg=4{ST62 z6>k^FtI^L$tQE>k)9Z$cK?-f+DStnS&qAg!iiU#g^(PJ+zj^mdY_lr=(RZiXhwt|F zXJTwyNp}417aOIcUa zaT5iS41W2nQ+fqZg-QCwxpvbq!PjIB2P1+{qh4Woa#GocDMU{S$-8R8p2ZMB zuzdf2M%5&^cDaRH-DmR*CJwx950f$mzWiE3mJEIHgax_lrWGKwyN_=|@DmXHk4B;x z=7eDhCZ{tWTO@T1!G@lk2f=LS#k39=p?rV@t&p_i2(C*`1&^-*TrRMii`AvNg&(KfYwn9EFY^DkE(=<#J4pM}C=7!~R#h*<pI9aALtiZXnTj9Ai3Q+gt6F+Y?|VRK$roE z8W(6rA-ocV+dRC6LU?*wxFrVRN`O2HMP5K5nBjgCalSPdM$(a&#tfz@ML`go=?X64 z{jv9r67c4ZxP-uV|>G!3!`jtE!;lI ztJ#$Vmki{`EsDsc0G-tu;8PCKywS8TEbUUe>Ke!xs8aoZt)}faJZT5LZnvDfX-f!w zeR57U-Y^q3h5;5~g`-=xkof6f5_6pxIYyDFZub+X)|$P6KcB%{?2=*v>bydq!IV8%Grh=D^fXWUPHINdXXGh?58AQ3b{OkM+V&ER=(hOC~{1)I(` zaEwfH$4S-+Tz8M-STv5Mx@pSeP6L+ttv%xhJ#dmrOzt)90NaxD*)Ty64E?#8g0c5OfG6IR8HL;8@7Z2>)LxTLkEe zH%#!$M3nyz zD1PfU28~-Gj+RArYdUb(c9j8;RaMsw*BMk`jTw;&+?S#muHAZo4YI2h^cba2R^=hI zE&P(7^OxIYCD4SLAC|K5g|)HQ3kC-mb{@13*d#xOHkVAW%2)* zx{6N8Z9C8}(J>KdVC=oKkrciwTbknJpuW{Stj-zu=7)y`KMne}e>73-NHnz>SqOVh z#)Ctu)Wg*Gf?fIW-weEC+K`{HSDdobRi;E1cu);M`7OhlHmYL@(b*m5oX9VxRkhrz zG;&S@6etT2))a(zodLJ2@?`rqobyz@$@R^DZ0dGUPPwj?mpnuTni%r0wg4xc);m21 z&9KMQg5H>g(~13}#;SuVSOYwT;0e9_WnR)P;aFk@0=u&;W;VL`V%zd^w$#h4>QNQW`x8S7*#b4wbR)B`9Cct zXow1{zbT8GNA%o&%Mi0hdcHav_q9LWbr7QZYkTMGo?PqlZhu!*#LVWuRsUbNbPKSx z+{+)NS@)@Y_3N3NxX~?r`OXd8E0vA@XUfMnr>ov}yWEe zjmQ7)WBpq0%)jBENC2R20u1~90RRxddjJYhPyt9=J0Z;$B$`ZZTQ-u<0xY#!cu7ku zg318TL}5lKzut5kJ&T_TQm7^X@e~KJ zG`#q9RouXWatT|R2TYk=%Q39#a$R~vZJM+vrL-dr>H%2OiTrp7DTuI4ZCkeQL-GSk z`iYKduNTIFD6}uGSs}lmW%2I;ptze=>vNXf9nhhW=jw+8^N&j=AVgTEbez~Ul6M2x z)B>cdNApC6pVd+Nwe~;2O-*b9Oc5b=qh?P-Km{IVeiEgl_>EqGx0hEk9KyUb~}NW3TRvFUwtAikTD z^{rHIUC5A>7uin(H7_e;J?^R9=ZaEAG{REI_QiY4cjau55ybdST1qr^td8~Fq2;?- z3@AVZ^;nm+I1;Z&I5d08RyYta+7Xjt3b7>gK4M^qg>u7gK10kD7Czb=L@3JnsW*li&`rZLN=?Tg*Tu*0lIvP^AOtaS1*?x+;a z;iK{2DID$pHD4?Q3G7wBbxILhe`t*35=r$ga8I-4aE8zYpB{S{(Vi2{$yBiU0 zdggF}0;r`dmEGZn7#x)G_4!T|T6B(F|Ce+THS@e-MxXijimVwAJno zOTIxLQekHSmIL(BeYti>Bj4etVD>umN$0+?z${A;bpYoLr2xtTZQe zjF8npKFw!h?V{wd=aTjNZ;P~|j*t4dldKg|=$#Yt97h-6abB@J<%1Ih-H@_k3T9IC zHDo>gPdfcV;klI;$lD2lVi_5GjadgUl#AT^mSXLe2+AdF4^m4<@^xP+L^filLhC%8 zSPInyLTsiajN6JmDX;WfQJ_q8^YH{CEK@6-9z_|+7RsXA8hY}CaUcrqlPb&#`31eN z^7@?X$;NZmw%&6mb3s)7&*}h}E{qmljH?XV*iYBMQBci(&S6|Fzzx&(wEM5u>C)*%tDNJf}+^K4B#0FWM|EACipK$>WfokZ5U-+8!lq(&k`o2snu?0Zdb{j$h{I zz_CTFq|~835e-=pmMkoVisg}n ze$KBaE5Nq640yp`mwXfViKxog8u3!-Q%gZE3%%*z*_)Qf)zmoy8$OA;8UPnB({cMl~QL<&tR^?fmlI?1cstb*MNn*HcNrT#KyqM$`(rWWls0Kyu{$V>6 zOs0n66oX}>3nqDr_(xBQoG4Lu&mFcRls{G!#c6QpnR;J@fLpr=Pl{+XPP{2}to0dX z0D^0*Y_MwSEMkO%E>}n5*kAgN9?FpA8Rn`muN+LBSp7O8(OT-PWSSQe*A1217z;4x z>$F5f$0VCV{sltptEbpgMPLsB_T#Y_`5M&x%=B{m97Ln-K~H$(w^zhH7;<(O>CyGe zWA$Vd7de3j4k`suTgRQT`>a|j?kuraX0uu0oUuC=!1PjJ$2T>10Vou0mzL)HEzy(# zUXCpQNUfLy(C|K~0sIffmFe5v!LlnURJ^s)x$_rcq#vJz3QM>&B^sPZl-pz65Xbb9 z8kfh-@nHP-BQ*!k_G!%9^U3V`m~Y$X&g+$4H`bl?Y=f(xt7a?PvzxZQjorDe{Z@U| zD*5!0K3BKCuOG{;gpTWka=NU)^+^Bc#9Wf@?93;%ynf$D`seghSJALsF$rgQmncjB$TGwye;;|^W_J#bs@`TP65aqrw`cVK?n!WCJH;fjs6Gqz#d zwBm~523+5y49-YW!-xsQW5i#G zmrtxVRllw>b#eV_OlB|-W@~EAx8MMP4A-!NDlkF|ya1OW3@nI{hH+qF#j0#&*{WUI zM{Be;`xm#z_3qyN`$xU?;&1)NYkY&Zdyn_}k3(&UhNU0{HFyFSB9XC*5`}+XFDpw$ zA~hpkTT(^O?gew|=PqT71rkYz0UHXIb*@3;BaGt13rn|`HkJg(I>kp_>~S-`h$C#k z7VmM7Lm0w1u3;M8I7d4v(KS8M8??&DS$V}8HnD>TSmK8qO)}LfB~8n8OcUwjT$`hr z%bR&SQ`w&*BBYiqDhoM?QCh?$R|Lv}Y)D2Z@ylv+tVy+6`_fX~6PQeEmnjoPZc`U8df zu0GMQCb1AMTF_TjqP46o?Pxl8q~(>_c{}M0WUK=9t3+L{8#P@^mFUVw|NC;QJ=F^> z4KihOpKG4Y;>14K+7@>re@=18%w{E5vXklXSwEh2s{i(qr6yAIsWsF#>Uru->K*D+>L&GDNRF-0&L(u6hQVrJ zO|f<~Pg)2qo|a3ip{>x~(jDl2^hkO-y@cLC@1|d+3+apWm-N5rKf_ls@Zmb)7U7Nz zKL(GH!6;)iG0rkZ7*84R7+-K}affj(_H6qY`z-r%`zHGt`(^vL4%&Eu!-m5SLCaBz zpiVF(P#rxSLmW>!_BpOtn_I>Ub^dAdw2sjfk9B7l6 z8+amcFz^dWgN-3slHAyx?9WN|Nq(FZPA_LU$arsU(6ykygRS?u1t$e}1+NDG+`n;u zP{?Jj1ee7P<0f+N9f?1Zb7Uu3D>OT_BD5*AKlFMSD{L|BRk+Qez6dPYJEAJ$ZseZG z;K*s79M6|m$h*oDr|*qQjB1M-j^;&=#i$*wi}^y?6?-mDCN3=QWZXi0R{T#YB0-s2 zl}Mrq5~q{glj@SyvgyfD$!L103RPn^k3Ru407f8$hCm1)bQD-Rqed%0-%`3Lq(LuY znuo>Uox1>J^v6X2qlJM0E#392jwOaK4IlxgSqkb3#ma9)1XNdFTZtd_Cj3v6|HJJN zK2^kX91eePXP}1TC48MDpbb?NfSw0v=LQ;4pNKO>ggkD zWJ2q%_MnJVWeJKg@j;U!lmKy&O+<@o6$4oL5JI+PV6GqyjqZNCbEZmzvHm(OGw(P+ z9e)sNPhgvb2*M83QNh{8Myxb&j5_K$LnO8_!Wko1kXoEF;|H0KYBWWC(Kgo_SgvSP z9eZA?eLiPTp0pL0(3VW*(A8o> zl8=e}o2SG&Yq$~hBf5ArmaZm8p;)0tZiuQs#tJ-5Z~jP?kMWN8VmERMI*{K6u4JM^ z8g!QXi{RBhpq|r#plP6KQhA+_5K5@E_htm886uZgxV9!a#tGIa$EN1fg@l?VLj9ZG|Yt-`j&w;Yi zq~bXs4^Akb2pb2-el_0H9NnxTmhkSBL4_g~jLthToVvhJgxjUn7P=|TSwNDWdChe} z)jr4c^p^t}eG+qg8rgm6T(cffIX=K^fk+wUPe_%#Lfo_$IvJ#WobeWRv!6wv_^6je zr3+0cnfS>9VA%$Hi%`2uMaUS#YRLseS?MGQPKXzB%IjBar(KCN=*^a@9KSK2KAfF9 zDxxs!tNs$Ry*iW6{lmScK10X0q?vBJF14|IJOHFp+|$o>>TvA#u}}KSGhwy3%QWawZwr&9 zKQU4^H&RfUM9$zW8DM@u0s>?bVjp?ju$C=#ey9T6xxq4UHeI6%-zn{}GL;Lv4~8_n z+W+w-=u&=n*R=Pbc|e9hfsx>aC#Fx4`roZzI$?#yx5?gpe!=Pkf4DZYd()$7n|wcT z=q6>nV%+%a2C|m2he47w<6}77g?6?dH4dxwZ6K28tV>=5?~tNAoT$*cnqpASd-$LXG<0O)2n%|%Do)%MM8ODFREcNJtGE$k z`x@86%`lpLtiCVZvsk6Cy4~Bh>>n33RqS-nW6u}drE$e4!JKdQr1LL)`J{nM zOw<%GHC=E-dr}2XG!Ot_<%rsOiDuE?`LYYTkC!CZ+3BPbUqS?ioMGz_4r#pFR47q8 zbDqMR>zCK&-cTe#!MrLa^>?TMzR_Xr`Xf{;;ELA+m;rb0vvs^8mG;JKLA~f64UW`x znxPh6=J%nF7-^QF5Qpo*WjK);tgh;cN~uhvC|C53uC@#{Sq@qiLK}M1)6muy)0;-z zvJTuCiz6w-dM1+ zP2~tH#Y;?(tcrk$pzOImKv^n&202|{QhErI!ZoTr`uW{<6*{t8(kj>s6>x zGs9V6Fpt5_;{ZRJ^3~~q^_0)x#D$#_{ibWdF<Ls}!CLEVH9%KU=Bk+B7e*KW3m772oo+(1PT8)TdC{Tj@@zT}q=66qg7hQlvg=fBgjnZ`aD z9@$>$?{Z6YjC=1MzHXu8T@0HU(vTrtMC#ihA?+c8T?fcphkCm9>Pr1Ke~tPB%@$-A zM2iPXg>OKh#MM3ZZ0+5r|NbTkmTr*@{yXRGOkBa5RcEj9)&FQSK*zD zQcDPVrcX;>9ddW376UzZ^ZGIZbux?^nsMPd#Pu73s~60AizGh8(*O3AwN1oTdHaS= ztI|K@<)!Uarq_v{7419kOFkW&wHW~mWUj14Zj~qmH&LhsJ3SNQnyb-6@$Ck z<#oR`*KeOU;F||SRhDw25I@|Jw4sqVWpL*y>t}6cYis|Ax!t1J7wksMhqcqck zFVRRHra&wy1EaCzxMk+#IyRHQ4eaOXXV~p<3}xLe76k6*Mp>Pg(Yi&qWP2_{QmWtN zl-Y<7kggFM(@JAT7rkx|^2i3}CzfVVs!rkX>)3~b4_?%n_@w&fi+^f;fALjawrM8u z+aaP(E)uWS9tE{JfJP!$Bk`UZYrdO~O!Ny=lj?;=A=%8Q)KJYVq)#*4c-|ePkcC61 z$F0XULwLi?mviOsK{M}^9wF8b;X#1(40H$*LQJx!2bQQ~Z{VV%GgT7y z0r5gK44RADY{hBH*uF^PxIXm|{BxWpi^y2zm?g^W30;_$PziLy5JmkOK(L@>+l&fL3dp+Ud`{u!KE!XlP39`lCkY~V6bkf0VS>?q(qgEY9ZptxL|w0D)RSi9?6%B z@_0v|UjcR;iT;FqbU%b*@>d#ugng1Ir6dk~|6S+Kbp1a%0XT`b-*CXTd-&cr7r%M_Iu*hNXm=o+ij zfvzBJ1-24$5xL}M=op&Ct)t0j1WK#BorPOm7@=7ond~sQ2ISkr??8n)(?ApP4upUX z^s3JgF7De^no#a2ngJT3e4(1r@mXicaZ=w|L)qo4ps-WsLmW$~F`MR(2p#Gb!&2}^ zVH@f}qe;P0KN~`M2%#8Iy>&j(o2}ha7^e91BPV|cuN^oyqo}hq*G46@fua-QlbwF zV@m*6i=TT{_8tmflC%)uKo8~e=!nwALDW$*ILcE~yb+UGOfzY=M96$?UL2Q~V=18d zGP1OJq=&?kYD$@JuSf*lO^NVF-!e}&1tOI~A3_DuvXIUFBDfWZ$I68Ip%+?Bt-M0( zG$#^H?G!M$O!LBEUue)Q=w#QXl0@{-d-d6uPr#b3jEBE*NQx}y z7wsZ}1ilxrOSGDc6*g6fL-S9-ce4fLIKfDmz(Dp@*@<|y=v+S+)I-&MszY>-6Cu#|vNA>~_nh%1xh1qc$|}_o z=@G!lR9lu2&)XR2t2NBE=o6(kW686ylQ$WK;5!qi28P;3Eua5 zr6zjaTxDd5zmB^bniZ%mKxZCo<)3;rnp*_t)ktvEQY5H}YUF*Jo%b%aEmBysQ9-Jv zTMq)t34(2-hZ@& zEpnlrl1kft#;imly*moeTZ8MqG+8vf6KFUc#0oXl_cMc!8-mv4z%)f(-$R6tN6GB%9BNrp$mg#BbB*dL_NNQtj;QmaSiQ>Q)gZ3jH0! zr)UXu7HJnQYb}GJ1*~ypnF> z=9{$fC@H>7W&!togY?T`DGPz_OPgyXM)jP`=~^6B{X{(1UrZ1 zvcMI@wEi+N;SRx=Y=oSndphE3bN%h# zO|bKndz2$RF(^!h+5(zD;M&RC>6k1{)XQw{KyTRK8Nb5V7yCo|gpJ?J^*+>7?&?W% zr}zUlKZ7?koMjTgfIemYe6HiNfD!GssGJahY-9e2zyF*n)EeFgFtqa~}5k^gBuuzLXn=OPT;^=<%NNGMx(7;FP zAz2!f#F7Q7FCJ7uDuSF5hJpU??6=D~S8gI~O)_PCbyifO=lLTfdUlD&<9rx*YHX$= z6^aDCUcCC*;?nd{3hL!ujdBz7DrAaD*WsW6ZV-{0apHzYV|>HsUCV|P__TNDfcIUI zMN@gWb5`v^!W_B#dP#%E1R60zSAo1z6xlBa`O)xV{NRaLEIU+NRwm#8HfzCP8w$L@ zBShN52R1DYS$m18qH&Gc6#?PCwCT0E!FgcY6AX=DI4sB>g1IywLL-_fI`|uAGRnjTV`)|a>>{P z5QYpEAk@>-jq1vJ-44-!g3cT6v0##4g`!vcJKn)fu&YxivoSzTErt=(QKvSitX2ND zFek-Zlm}^=L_)R!z5ru08?(#X^LnGvfBa@Gp~Bbr+N=oC15%N&VJiBSbIZo|VNbq~pN+gK~9 z-a<+xiH1_s9arHPyXTF$+xrezv}cz{_7#(zcbtz~LW+U?z*a$aga*6!OV7akE2lbU-C^SqX*_c-)AP{sgKDve!v36MeGw@g#W&t0}a7q z?jc7l@pRe4yQUOZjET54CPx&w-jP~ ztb#~;!143jGQy&>G8viOFM@e;)4Ph3!Ivm-;Fj)B4o}1*vCysl%shUgm~m?t2F^Q+ zl;Wmb3txp^bTiZr9C5IV5CBm-{J0_0r9W9hvTqLOoYoQWqsS|CMBdX?0s;&CmH;_E zwVJhYUAt|6GTJ@798e7R3cNFz+@L!~+B^;=&uw5P5r7Xtddh+cg)XBVt*jn+-qIJ- zq$miJ?lpt&xzn%%MnVr$JZk_!K)%0YxTnFK zYO#kr=DcD*6%k$>W?rRnoq+7>%i>4-`t{DdR6Ni?GA(|fbXSwhO<5@sd4_9SgqF07 z;1v>@_UzUGUb>}{W-^3qJ|Z(8H>U2iu|x;K!xDkTU_YH9PmAKO<@c7U-{^*LfM9>UDrX$J%2 zQLw;|TNBPRS6JdA**y^n{Y^{jHqY*pGCw=}JM|{jp?iq(!)9Bmc5TfTVD?BX7FrG( zd=YX*q7mLpUDrFqWU#ZW3F~wOB1#*rC??%sktoj6xlrtxA!CMH*^!IztlvBolzVI3{F*~}GxrF!52J%#)^ ziPZ8pW8?rHczt)Ncmr3{|5>4uKq=K;VTHr+KfdZm9=V33o-8-@Jb=?xOO|OC^$u7? z>j$S;r7G?43dksTg+Nn4mLRD}ONo?Wu<89=DJyJzbC^DLCZF!BXFxE6ISwPGgT1*qTHC24z z6`@uk)52QOO-MLgz7egWS%@x9c-n$im%!1#6{uHmbp8WG)U7a1 zS4OrnhJz3!VbqR%^5(YJR3RXZVUPzcg#^ed4EVKD3zQzIb~K^a6)7fUNMsL1%p@}1 zBPncN=e1Da*yG^Mi%#)IC-t;8RkO}4Y)`+LC$@^)KlcOJmoCK}ApbF2vmc)tD29`| zUVHuNY72&cPew)q(0)XQsQGz%iF1TFr%!?gR}{B<KQ zHB7L3+03WcpGRlg9pfWa$l;q4`3=1aKZR`CuSM`&f(T=k{KV);18V%w+FhWSx=)n2 zV<+{EHGI693YF%xb|f|P@3k8|?4C)*|JPN~V^hEychhc-TZ~A!MG>=RXvRDJ?bZB$ zG-+|6HRbWnhV?&Y55?`TSPY@nu_zLz96AOh5ckl+qJd(hKoK>96oN!I@m)oVBTUV9 zMsL=Am05#8cAEqMzp9H5@*q4)Z@jknt?!=plBeDSG!<-vj1hZtnsR)ke%sSti-X8m zRhl&!uxpw}i-;KmX;6y+k)Ae#bD_*e1qE25-s6oaqcTQ7EYFxsF)^SW2cS}fClZsV zL8aP7hJzB5K?Q4)`)ZeBK)F?BmG1z&p7CzwfNzyEIa|em0;o1xY0>-QC|naQq9zNu zo3s+|dd!ah8Gj)r^^XDinyZ&e#mBcK*;H;1jh@Wk(u926oai7{S}0imP79s9MT- zleUw&TPiLrwd?e^w&Z)b-=f&c{Oyp=-lC9qW&EcKkH4glFN%(2LifDSD9XzaD76Wc zry}(i661@M%PWY+3w0=#9^TuV(X(oO9hpcs<^n+2lCdWrp(fvUF zf(JV5$CLYW`P|5^opDV@x%VqrBZKRPDeH3Uq#nna*xF+tmbhmMxaMoyNcmCH`Pq5m z>J%8F0e$@6d$FKGKo*5{b_RPl!CE0=C7QBmgK#k<@n*HaOxC8f>9+~j{GIOA;z0pY zCk0K>E^Nss24A(YcyfBCID0%?WE4XFS&isw*MOt)+FdYHD7FqT&rWFRl=g_z2@h zXv-C@CY@B8AeW{|Oj=d}M`?X?S84U%qs{{W`a8MlXmT+rX)Ci4hP7w@J_Z}jVO&Q| zgud(#hV3hPr6K#P+52Pm+p$P+ioZU67b(}MPj#J+#Ey+ykyZ?_KL&EC7A`lzs6qMB zNU%f``VSWW(F6!F#%3YD2Ypjy!^>q(=XC38I&jBWv%Ajqr?!FbT$N0{rQ7?-zFEs) zylF0tHEF%?q4@w%AE-fz#2bK-X%kCwrD6p)e6){*->?ToH3{gc)K)%sXKCBdw`cBK zBzm36-0~vc-Y&2?V1nep%hxFd>lSL234^j|>tczE%Il z>wjN^$lp_D;z$aJW(vW3(%RnHgxu4u+bpmlVEbXsus@Q$>Kcu5SF%MBAfIO*LK6n2 zUFl4GRYl~dp_ffcZLz;)iW?De0AU&|$Eu$Kx4--Ys zI+etaGuRsBLwpt|-++bT|DzgQn-SV0z3_qotH32LH3`Tojs)MX zwQbj*=VMKLS*|ZfEAxZ;C{o$3yYkD10_#r>CP@Kngv#B1tu-a?s&E(EDCG9qA;Yp8 ztuOoBJ@Gy&byVm>(ZW_0gzoA~8csPnYSDJON?zDnbsFn;W7&zb&bO~TM4svJnIiCW z_`qW5f6k_srjDKgVyOnYTb@ekP&zg3LThy!YzuY&emh>%f~r-KZ`T8Ep)1jkVUsFR zC!?+)S9gt_%GQ{?6_6Usv7&y^G_4WW#ArM^Vg?FcZcy5J9g%rp9wAZj30A_H8aUX- zq#QSl!k}%bkR&_bG4*75}31F{ruY-?akyBhV$zQPvGQ>Cr|72C(f$Su-aFIdP2rM&^1BCDzLMKvB7WtzAUbE$`zX*E@HQT0q; zY3H)w4CKVQlBr=@{BF%DoSnH?TiD5kV+P;D)$P@FUi_5*!9pGv^Tnjcd*9Wx-Lp7q znTzb^`6^Az3n!OUD(VO_2B}i&SS1kuszWLM664u3ezmt_3Ml$;8@Qqr**Xu7r8>C@ zn__s!rz$uxK4p*T*U_E8g6%wh+pyuO{yB?oEx0?IK06ykq{7!qx=nr)7R%|O1+z1p zsvFk62Nn0f`53tu0C9^e1`c>_; z-o@Evp!k^ez=Tzt3)xvrnHU{A#o> znLG=ps>JrD)nFTLuj~juno)<|STEp&-&t)>z^;TxFCVI!WHbh+<41L5-ThRrjN?nFK1h0XFd z34yfvIRyFWSpZj&Nv^pJ zY@517QybfutW%Tn@s(ktr6ov#pb&)JJTWQph>@NnNox8Db}1AFCx~8I;8jUUt)2wB zN_ElOP}`vky)5=HH-_xH{OvPpY2R#s^yi!@ z8SNIpi#fd(D#THAkts+;jNuaWMT#k-PcgnOP)m7+AUR`cks+z#5{uiV(qwtSjX={G^KOTlPrfR7rB<-dUcFV0kMKw%^3}vGY>-YC z)GVBx7l7{GOP)gg3f!N4!bC|tHEc+k9xt?(e0kFlBf4awmBXe&T;06l#vHT%yVK`y zA%6KA1Q-STkj<{+N2~r?HS($r_7FWP3{L?7p%^dsZkb;x@LO#pXK}^N^B{Oj>r|z z71Uq0PC(GZjc~S6*8yQ~nLfRT87M21h6~iQ&?dG;bHP~9zivRU0R3zyMGoK`jIJ9s zC!7W36ZJH#CwfRcONKiynHBr&NwAI-H9& z<>#$wCI#VBLetfOkar*IKS96otx+dYeQAjvWF99ntI7^pC|nnRINIxXzyqI{>;4sW z{2pfv_+lQRo>$CjL&RZFgU?aA`xo7_=J-8{gJl{F5uUyw1Ay~80(tg?D2CJsts*3< zOp|deMV?`A+=1RlX$xt)z4u#O*B?)VPfpc~elYQ!=l3hkk^b?^1xN0?a&&iW3#WBR zH&ECa-Ylc#9-pNQic$SnTnt5X0)im~Qt$@HhNhxJbWw6`aBD{VCiueSA_5F&n^rQ< z+L<=6)uFR>n+k>l_!LNRy?6>fY2@j8fEIs7j$c$IYbnAWmR5qHl2v4lW*G^g2S35v zPmg&E&~D)dwZduJW4kd?F8|uTwwTU0y?BOu%_M zKNrfNUOwd%L^C%+%jMOCIL@unSR9F{5m7*A?eJg;!^h}8gF-stVm=sYGR1(_v3aoS zqcaS76@Iwnyh%PV1EguhFJ~C20xc>SwUN==e@t+TlR7gk;2y;@Ro~=&2WDFvRPo{_ z7r0q=^0cg3bgHvYe}T5zk@mR+!V=XFp0&yCyX1adZ;uuxc z#Dv=R5Z{X`$Hz!)iVCQEqStjh$QcoKomMHSNhfVZVdUcYIvd~AJ|G{^7&9Z`u3kOz z9zrio)14_$3LJ-vdUsR%P9xq z!dsmb1et|fBo-0w%Yb?im@6kD{Ok(a8T9>idt3C1gAs;qy!0PbX>T3qMZt8LVKvmF zBmcu1*;rL1ttnGmoz0Xrhd&<)Q)hZ(?V0_VqED9Iz`CZc0&4}ir~=dVoksd$MxXwV z?L#y)xSaFfKjR&~MC8Jko9ZE>%aiLWjB!21nlGF=_-}2wPMj~+rkS^u?C*6P|81L) zBHVKo#oy%<1Zqq@D7{>Wg-s@UVvm9Ap)$gu6`3j-{^KfliM+3*9%wmY^P#@aIEK1h zg3i0d@8G@YIPf+$*n1yfzwg9*B|$+S0qxA2x;>O>MMp#VKsgI@&9>}P?rsWztINEO zK8|ujEDD-~a?-cMrTPZ;h%6n7M|P2@mfCs)cC1;e(1T3v5hm?LthVkV6@-td{ z?$jpslJ{USj*`xVTy=NC%nuo$d)uPIDug}P95!6TJ0}ifKq!BM%(s~*T{ASI*y*U&R2=~9FIjON;vLOeY>Nw*0phcEmdtQ zf941neIU@N>Bi1ftR#&bYsr(M8DHW8k%%BOrck}8VIwbH)awJfDFc!p4$h%(_#bN) z2_|4pG1eeKrXYtW`7E-KWAk6qVc}?DBa#%t&waG-MG>G%;e5F(2%$+b)5<#sja)#yLzBuvIZMENQ?Q|+A+_s=p%5!>DuHjyN zDijJ!9q@?hHxEQ1R%?ZzRsda$=`8AT?i0po`ss-F0nPV) ze5kcchZWREfB)tQ9hIl-Wr;49(1R))GQm@f^xo{!cu^UPD`XoOCn{j9k3QDS8T0xX3P|Ce6a;EBU{K7sznaK6WGV`rd$vU^w^#oum#w(e~sNTWK87{J%dj(lR%sPN|10F5(8 z^t}eaFTHH$wl%)IDphj|ua|Z-yQn!nl7}C1!qI~&_h@Ukg;paA7_0{uwNnC}fMU>8 zgsxe+8B0pC7t2Gz1%N>+SPsh7a2+RtLpFncko7G0Cf*YCMLD(VEUbssGE{fC7@I>_ zws5LaDkC$Zpc&az*ao)W!%RboUOR%LS&!WHtWMs*gZfhZAeo68^Pt1U@axOB%R(SN znMwfdFIWM^qPc;zJ>M!fckG1hn*6uTA^g2ReUbHyK_4mwtyOC4qs`CyUkW#~C?JIHjN8-@hI5(;r|&;E z!mZ0X%o^J9=OdHn_tx;4GqJYamYFp+VTUlKt=U4l%m@8*-}uY|<+L9u&Jk1L$J5l0imqCo<~A~GcSQue zTVipkL;|I+`4s((nyU*6WBYL2dvYqjIJb`Ip`o^nm43#UdAJZ7LTkXsECOAZzWAgH zB{^vKHEh(;=6S5Y+T7F)Z9~C2iKu_m8Qr;a?v8_{K&s6lo{Q^hBE~e;Q=DDyjX00P z@cs5@1SCo7-iIBUPqSBmio8~E_(pDnsn*ndL{Jn3011Vfj|4TLJYyfpn0h~LKyO>~ zskC)4b*fRU!^%!GweB$rse5~m(j-S-0?m2Y^8LsFXfETUiEcr*Vb%93d((YB24D7E zI+)8HKJNAHs_ISDg7`o0tYpW2+?uHZvXmxBofornJ3E!uPTzCc7yFJY2VdB!&sv>3 zJ3w9X?AY!80eWlxg*wBtxKE1l!JQZYza+}Z(k1ue(N*5fZu;p&ie-kbx%LPgWI%3wd%TI3{7k9N@S9v zX{M{5T{UJJ=^2D1J%_E$7)q-4hppkoVp!|GVxzbT}1!+79fz_tQaQ4eb0! z-w47ruru4=*oO0C(3~};?Tni{{6o;V2!u}UCZ2#YLv67Be$mK<^p;C=S?!xv z?_ZfcJGZ6%iPhEof^d5crUma^PxNP(0Ia*}K{-p6_Tu=neL)%F=_7tNxMbQA{D=s! zHu4V)AU&E790HlN@hLx(k?rwG6Orxsn+iUn+NDSpCObSxa2>-@C4n0n|={`d= z(m}dceOg&JOP~d}?CRt4d3K~pgMI18=Tzj^#G0<%y>qELNbx)bsT(3KMLwnI2Edv^-LW+IsYwip@h#+wk&-r$t{ z{~j;yrFB)ecP8R?E}NsN=K(txnyN`g$LQyk>lJJ8W3rqY+^ckQIa1G#s2H3Tw0ZI1 z2$|Awm$BwMi(y70{bh`poSGm>kJpX$f1pQH4A`da{YVY>pVifwTt~H}8VPMoDF_Rm zm9`{t3n-i4(q&RK&Q7@ zR?*P<&QBNs>u#f-mt7u_T2olpkv5I;aSY5T?Vg3o?bWf1I3E`mENDj-28Ix6Z8enpexW)(b&HhXW z;EC&*c~yFFjxG;`BJv#~`&s$X)`;4l$*oc1(MW0Wvr?%NWFOfg zwUjN8*ZP4kjuW5KA^EE8s|~IHnlsnCJQYUx@1?u@#F_A?>YL=oj$+5LG+$jQgtBTB zqYZQ9+;(as9`B;~G;pBsg-(fQ_{)rFtUoLpQWy2$)V1s&f%;_b>D6?`xuz{*G%V5~ zA2NbTNJc=O?+sPFUZ!>;y0<(inRD*DwXE*-8VQ{FeNzAf#diq|tU*Bfa@bVZ=Pw0jFfMQg9j&PFw0kSxHo!8L z+mv0;(1L;d-sW03Z69F4V1MB_7V9}d%pNM7%i>xx_(aVu3pu#Y3+IAQ1>Z#Sc)+4V zvYI&yAe8zde#>^psY~AUtTm_$6;Ux;K78_F5VaNOo?<_|@l(VLJ>1Rct!jWR{~sGw zI`BD6m;a*#!LPe@;Y^ZDYsKl9AEG>$>j)4?Bi3 z`4a`zZ`a+L3kh`QlJrt9izBK2zEG&eF?(ypWXabYlm{Ud@*26mjw~a zl9FbpwzIqQ%rrQcBz8X#*^MS^Qk>FvJh6*Sg{Xt;AapSBn7aMNiNa>-mJ6a*uzz5n zf13|gQ$)=VX;U}3<`kXl$x6nl!?mhVt_XVk+yeb~a&V8GKcbr4Aa~EEs6RTC(9aos z1Ku`m<2*y~&(OPo{5tTr7ltt%UFaJG%wLj8ciH3ST9%v>P(WQ{keep8$wza%bs@1XVHy2O+;MaSTsdTVRg_7!y>5)5@ zZ3gQAl_#r(L2e}h!H6?3E|guw#>!nyh(EDOL3qpGlH*NprXK;#whXr;|5k@khPQAo z0Fx_)Xa+T(pLuJCQJwV~Z?7H~Pb{Vj51p|4%-t$?Z$e7|e4@TMj!K-mR!XZmVvo#g zC-jPj8;A8iLuO0mfv8b>9SB~_(wxPknnRH}WJ@QHOeE^L5YO;fz3?88c%+%jZ+Ofb zBRs!N96wQ=kZW>9-KnnU>dM=1Eg1=iktx_E7x^e1e7&jjyXjBQ!eKKUXl)Us0fzj! zzEPlT2TTFBaAC2*Lxip&@iz@ItNf(r?f`Z7@SOp9Xr)0dIHseIm-N&xLJKGI~g z<$esfTS3rL(!bc*KU6+Q zeKi@FI!<$kRu|xy>!&Z_j^!)4vK9avUiD$oC7cy_EWit96x?2R667M$(|{mWJoVhk zBD49|Kpsu8n`7}Q=OBt!q`uzrr}h+!saE_sfI}(uyrAYdX4UABMo%{{GPAAk9>A8G zA{dEe6ntzBN=*%BBpfE8t=ufobCz@4m?wiThp5RVOR0=eEKR^iyi=snmZAi@QaF4 zCG{7y{BfI@f$|Im3tE`eMWHxsYzv37`!Zd4R7(`h2-U!DO!{hg-Oba765A@4rQb#C zT|iT*)Ex9ECm-0p*O#-`8!q@Tpx|d084X#g3@(8tkh$UI{e>QY$V6_Tv_xb{l23nt zkn}F+@v-DvqMD)28gJpTW23wM>;>RHfj$rA;#_jXW zfB#Ax8;6nJ)+T|vVvsDTl{i<>W0*p0V}=wWg_LBOip)C26)J#XiecaZs24>xtqx0G z%;ZXzPHu~wCKN)M&r{rhQs#;3T6l2lLfT6DW)W$q)n$(Bcv5Sf}egT7XTiOJLFsnMajdZt}jd6vB#TM7Fb-#b2 zaZH06rL6~lb2ric;dL#G_9(R@eY!6)k}pC`-qr%cEwQjS6*{VMhp_x zTI>?rge(NNcKf%<(ffYGPBrP@JIBV|E|0%y^q6lyiCZ=`{5C$G!P4_%FqjE#*?{+I ztm-i(=K(e*gL|@}pAf?F))OFIeZlPBmAtmtVu&gO?Q0WuH^nXv-@y zU8AW?Y&e_TC=rE4LRmM2c?(=ha~M0zH9;yP>W*;}^+}RY?_5X}3H1lTk}~2|As~Vz z)6ru5B%5*&Kl$DPgL5PfY(Tw<7hzBFp_4VzHbvC*>9J}|tO(9|n>7X;d?9EXBKLE+ z$z&;svE!<7_yHo2>ep$-fXGA92T47figdJwJ>=a2qB*k$T07;ZI|>zGE}l5CldX!# zMrp=}CburZ4|*o;+*CfjF2gNK80rAy%pfxr6C@03#(?4{tL`NPy0^^C%PgQTlDS|z zH*2QpfNRAz^{!$sDggVs*aD}k@A*-Z+7uqJ!6i#Ce!b__k7#$C!kkiBlD9fH8^Z;G zuTBhfgPF$;+h=E;{x;A3xWX=Eto?bM^VP^9iSqAQLpKgwM~Pwf@jQpflYTxq+**TA zxcv+uj6=u89_}?+k;S{`C{>-w6t6#I)P!lwm$n{)I1`J1g~?Pkobm!uRt;7_eyhZ* z1Wv84LeBX-Ol^k~VT+UbN>1&AsC`auss$NoCGNx_Q4zgm; z1!p1f47^|AP%5M@iP~DAP)#(=SBap13p}ERct->z0x!oBn9YP#nU-zMP_~59OTriu zt)ytmc$zRfOuknD!%>#~L%;SXazQ-X+O2YrcT$CCq_M(YMqx_w$20pkv4Qd281^BD zAD!d2zdV1}8(sY8rHj{RUu^xS;^sr%fGmP-)B)&bxg5mEVz6ExS~@E^qB=(E;`6#X z4UZXeVR}vtHWZo^4)Yw-SQsbM<06+x>{Kx@+HSI>7DyjL>bl1K7?G4o1VH9CRx>D2 z97tr42O-F{wOSrx0q=sYlEsfC8+adv6`O~`-6;!X7n=b<9(c#OCY9r&y-Pt{N%tKA zle0axNH1?7+T-O9tc@$Ud=l`>$2&k6j1Q0DfC~wRp?UEdLqER8KB1}VPsCAHrAULh z*hiGAo0MA#hmh%_b)Qn?_F;wmlcZ@R*Aen*jSsRVk`M@>imbMD=%J@+LGzj8e)p5d{W=2Uiv}Z$$0op7n$K*vr3zvg|<;6Zt z1iU1afsHA*Aec`9FDqFEr!33Z6085zDVXJUIOyCgGxm`hekD935xc#hC3=(D?8aMv22l zUMO~+pz+S5moz~1S_)%~!U;DemrtuolXQ$>&?EU$^L|90*uIAaEx`XjpEch#Og$lV zzpBOJ`!-&kaG;qbgiqeJcmg4@DACYrrz96(u(a6lOMQ!vw0O>$Q-<`<+6ro*9+2!mu;N(;iN;5k%i&thQ;qYj8xM@wH| zE<20n+(nM7xkZ)`>O?a|Ru0oJSyeM}N?S{~q>RAq8KY!K2-BEUPQQ{8GSdfFggEQ< z#i$qx+0Lne5G=(N0odmQDMUVzyw7>k10`d(v%xQz8jrm6EKE3Q6lfbW8cEvt5|4mn zYbF2FK$C~=TZ2$LL@uwFQJ^vEQYemnPd4}xj80VgL^5oNGRN7(_X85m%Xy>!j-Z8RRSy1pC!A?uqik2Se^#|NM<=C~p?Gw1UXyos|o1+B%Wa zV(5lG-X3|S_enc_kt9B2gty?~d4l8Jt%Gm$ELFrCeT4TXhWGWxCd?#O#+uD1Z%Y#fF*CaxT97n zl)*>`FH4=G=E>7c7$j3BGeH1}ToF`1qWNy==%Is|kKmv)j5(2wqYaO8OqgqWI5|9R zo#1Y;IkV{s_rrF*0`Bcci6y^KZN4$}5;Nzj@KUt8)djlsxl*!Z8R_(6@WzWvr%1CN zSpP?cO{QxwaDT<~bsHIU-BsS=H59G<8wO5c=S9LeX{VbZMj;5qgLKW1UPjl94Dwh; z9WGvjVVVE&?uzHVCLNScC}b~%P8F)?fn%CUOIkdJhMazg6w(C4uH+_q>CD2dS&Zh_ zy7UOoWYTMg@VK4Bcj!K&Rt)J-t?nQm&I&1bX|7B*@ZeQ~37i^DzExt&M{z%V@aPqJUu7Z|H+}M95_Urcl5E>JVc2PNDBe)69G|*2poftkbWIeD-2QZENnLO_PH(cs@zdq5VEH3PA8$!>Ie_^0!5u9}<578lhxh(_xM^7O zT?Ar5^zh}aeCeaka5B!REIZ~%266ZnNnzwB>pQZ~M-LJRBQ<1Ku0gwU$vl`prqFqC z;oiGy&XQlSrSwKYFS#nB`r2vJ^@uTHmXxI3z@zYp`+%Ogu>&SOJL)P9-Bzkxkuj5= zKDGk|V_R)SdMWr7o!u5})23%U$6{%D?daTS4vQHfsw~4Jxk{6&EgcP`U!rJI8^zKE3BsY~03|tX4ACTsQf!Px zU}D=9)Xz6ZcoM~y&Hrhm@g{)Y70JA_(#> zjOB|ct9zRUAB+l3#tt+yN#m95;kVd?ff)zQxlQ8=6f*iaro9HE zM~v%??u&XDo#=bbutZ_i zWLwFsd6cS%-x5o<_r(fxJr(2{{{j8m3Zx6Cp2YjUAutNwcYL`_2&huF13Z>Nm)#(;G|}Je+0)E?PSH1MDC53=W&s z9P4*hDJL};o5b<@;Mo_bX`Q{4L&67-gb;BJYXC4f#u`tem!K z_3$h+sG<7lSht|c>!6-eJZ#45%1OkSeqE@7sv2Jzq@`p`;U?X=O5BYXsOC*1+nN2; z@jz_QNcax|o!v82cK!#&>(4RjBC>{=*a~BYJ!0(E)c|^t;4r2GO#^8}opG^T-ZIj( z+d8q^6-`w1=BCP;R-bO8s6SIr3j2rQ#GoKLx<_DqAZ8=o$_U5L|5=v*wUW)b4sWd- z)cf8%?ZOY~kTM_N++DodGCH(byBxuDMu&5RPVmF&RIwfTU?NT@R&0_MMKK9#xHsJ0 zgx1@YPL21tN`W-%nrJXQ745nXXECkjEDqXoJ?j{@C)RnLK&`*8iAIH{ttde#%i}(q zp^Vd|;x??eF4d?Hw(&EWf|P-$GpsfBrwyLsQxbBmn2EYg4LpT1CYs{mz{y{X;P{ij zzg$4iV0B>`1m^(1{O}f{TYGUMvY|aIO!5?Is^13xqwy-KJ#S; zD;6eUv{?fr`J!KVN9I4+MHWgw2~NDY@;b=>^AtAf--WqdH{EU}piF^}>nP;L`ap_j zrPAvDwNAi`uKO(-G4yv>W7A$JX*_fL9o#k+Um4*=7kZ0P_^%}@4}bhwoEGBcO^2eq*cPOWYCnT+i;ug6SQgx4AT z+nre=Djx1*OO};Rc_{CwJ?tsw&}dxmZ|;-(53*ZB9z6Qz8h_2?flbX{Nn;TX_0$ZCUW&)TLx5y{9qP1B8JaR3lwW2TjZC9DL1@d8u2M_1~V zmCS~zM?~9==DAphIGvD%Y`&)PJV|g{FUxtpG@hl(`7Olv&$wn;&)PaEBCKB&KR0;% zSs(E|wYqf$x^o@aMfNNiTuMU=lxtscK+9UR z2&4VdHIBXGM<-%r=2+c1Jg{WGFxKPe(cHjd*2GZQeXQ$8lEadraVdD9%$OV#yoIyn~hD@sbv)YAFJVGM~%#>3092@iGj3#AOBvm=`@ zi49ahS~GPe{pKMo4KjX5@yN|9xYaPC-m5aUmFMx-1%&4H{_Ueg!nphW`)_{V!Ea6( zMMzI#O_?66{%Pks);^RtU?J6Ggz~&VQjbzx9Da^@xxIbF=4FZ^{OWA`lj7(R9VoGZ zuB`A~g>FO)8CAxKEei?+G7$#*WJ(d?aKW0+e6L2X&V7cK-l~R?Xel9c0{fLNW?4%(uVgTPM=bR!+T-Viu5{1}sQOr}Od?1NI0epem#igyIp$)MsyQ}a6Q1f;D=r`YHV>g9zcbxSf2GBq}D zkz=%}A5sq${c_XNuObe71Zb{*vC0I)F70f(wc4mDo?T9F4%Q$l*f%@j2xa|@!Ll3# zwDsmFGOoa}D_L7x2w4$}=iyU;>>1}D(l@Mqgs@t(jv_M@T*mZBY?r1_Os13Rk)%02 zVZ;rbS|j1ryH}ve4S}tM*A{`zCp8iGaFNGMu3Qx!(I4b=m3tWPJ;-rFH*0s{esJiC zG|j=2DkZ|Wh(0(8UecLTCKKYfKbKt+F*se=B#4sopb#uY+!#7h6P<_#b&jF7M@z&% z5_~X&)eS+VMCQ_{O52mHr$$}qiKJ(>Dirrdd-tmxbR1J;CU{EoWKmn?xHye7uM21~ z<+GWG3j`eW1l~_|t#8BZeRqBDSiwvSX2^vR=1={*{#DnZ-N0^EL07Vo5l1&ABG^a} zz3sn-jSE#ZIOY2{@J|*^{sw&mWmN!}!Wi?EU(qbnrUKIrt7A3bOeuu3-oOol2uN9=*NavHURITz=r6GldXX7l*h?PQ zne{#vzX{+&((9%<1I0R-L~64PfXS3XR+?oxF%!{)U90j2y>omX+nkqv57~q{)dB4J z77VF}vhBp-6MA)}_{ay#h5l2$3UrgshD0HT-%R$1&S~H<*V>PCsxsLlO1YXMxm3PC zF?j3@{vs>vuPP)F3*oIxlO#!vxk$Ax>fyl^>K4B5nTVQ0Z|j zGT%bkhiuU73@h!lh@$gAQ{aUIit{Z(w=XOPSZF=<4f9a!Hth4T8Mr^U^FmM;)b0yD zpZxl~;oxasKI@N#glE0bSwdB5o`UoVgWisdzF{M z+x{aI>TRL``9AB*CmjO9cRMqgZ2knJ7b6_=GAMDGdmvrgiiOW5IKQ;>Jwog3uHxLOkU1QgCt=_7O8U%P_lx zWBFGtdbrrJRCjMWT@ex2)48xcJD`i%-K+i&7}1rg8VvIQY8a;ULod8(s)X4Zt=@k0 z99J$Wg@EbizWcx8dgV>q2zevdSDy*IJ5ek_D9>@4U0FpqkDbsvAXJQYSRFelC8Ur1 z`{*f2XUJ;p@^QVld-s!>ndM}X6~%0GzyVG183d%>x1xkrluo|LLkPM%SXc4Y5rbhO zX&O*CI`g%%5@KHNm68%*7yp^v{N^wBb6A-xBX!_;J=v_mI2G>ja<2*Nx2K{( zI=Rk}u{VEGmB-sa?>Jif)4^?Jv$S8WNDu z-67XyW9*W~2oM zsM1oesyU+bP>|4q1H;Bl(w9st=X|I)ORn!GDuO3*E5$w)yZxM`!J;^eVHj zR4T@^o?}OPpO7gYeMR6`i*a?i@r0yfB?0s(Q?NsSnAwbXrExkP36}XQa;A>XtW2MM z0~yyIz2d1Jp)FIUgjrOX{0<}lj)Q>(mU-I5BQs+AT_0%t_SNlSHY%D5q~bs;KiXHk zEOSsFblZxIp!-FwFttSD}V- z+u8koV;|LtS5P#X(bYG}^t%7az3t>pn5X4!Lg`oO>t;>${A!J-;yWz+(Z9NSY9LpwApKcd-cX8dq zH;E|=2V^i9A(0y9%)gFG72#V4AJySH%RmO{kyrlq4Oy1741s63elC6kwv?Udz;x;R zb*NQ0ZFtkCbdT?43}cq{=t14qJ<%f{D0+osw5W7ASncR-{09f`N8zU9LN=o$9KRI; z$3k>w9WPQV$QOLbaVyCT3tfyz#NJ_J^N&8Ky*C2rym>z&zXDFFTFC`iGu{jXOO6ri z)*=hfrH!ATyDFtW_Q;ouhzL$wk@UN(6Tp-LU)CVN`(;;n#!y%oPS1@zxA*pHZJT&= zQ+M=OKUIXcNf@@IV@MZvm)6d^Jlv#H3tyrL%$4MHH$$` z`CSGq%^E*cD@srtBlX;_GJ|NbE5D0Lp-jH|Ob#pgmWm|+Rii#O%7{58UO;6QAEd9VJ{|)A@xl8e_RJ}|CSoK;Em4OO zu}J8v@$>OQy0|H;WLLe-p;Asu_Jc_O$kS>5==T+0kivuj9)SVW!*e#wC5 z!_}0fY&elo@AmyC&2W}>DcaE(a{37Y&+3Bxy<^URCTNqt4pYTezJl&TYOsx82R`+R z-$Rx*m+8l`hglr2)e7m~ZsbC=13DBZ2;~)Qj0!sM-0&L-H@=|LA8$(?j&>k!2O` z#df_((yvh{Pe`+;YE`N!5`N7OS?zT`#L;1?M3jP(btFp^HTmchCel(d#u_@KVG_fd!=bp+)GxqVUj`IVCF?OHP9`0$0Z(3#?Lw=ys zjc1nERK*2V9O%cJLNi)m`Ew-QKtVA3^tt5lU>rK!O@wu>PMMXWQC;mp)$=?%%-We0VoyI>Tumrp`A?n4CJb;pVLjfDPE z+!$S(FT~N#@>F{t8}QB5)*|lV3asd75)~)L8HFs?#D9@{#|HkJr#cZfUI1n8t=rYd zHlo6=PR&5}?}a{uH_#L5ju_L62FqwzufxGaOcmqc)#pzd66a0i8*~ldDTAA)^G)p& zb2=CVdzUYzqJFh4zKm%hDD=XmZs7yrF%}he+9yiU1blJnHk*G+P51S3RAh#e9`1?9 zM-LS(q?AJ`YBD4{6W4HN6znH3@lE$ccpoJssn*WnGb&zVt+D6xp`grLJ6)-8<6wDY zu}T7gXOB>M6CP@HxP@QdH>9Yrom|{o?X;bjj9`kHQvJ5Oo#+X6cunLP8eKtO!Op{9 zNrZcQx`FJKvJ1T1V|#kvyuQ*m&bO<}k*ck#nr}rF>a(L#`us{l{`s*;MNeI!RU#0Pn4temR~Sjb%(olN#091kn+dQO7ka9nel{%u&hi z@H$>~;D?=%RNHp9kn2eIPV5oKXe8?Wcg+v(2x zDmxCJ^pGFTr%$QFDz$lUUP!JuelZ=wV7sW&_#>6EM_JG8KrU~Qhq-cE4_=|ck1 zoEu&zv_?gB>)9}4qKJsch|gW_p5VKS z2@8D7oG;Hjt8bm_p7fL<$+nNNNagSJTP0YP%A*Y|?3-s84p9YXN+pP)%X%By(Bnr) zlMr2(#adcXX*(DbHZ?exX{BgLF%nZ+f{Cz!sK9@wF8Tw}G^?uVm7vJwVeNxjNgc8^ z+Sb?Bigk&^4Tj`2VG09I0*u!^!Nk&$LJE$eQP3_*PbWTX*2X0xB4PB;d_#SB_>-{S zEMz=Z{Pj#njr`MAk$Gsksf}NAjCAL>~Qvm#JT2}lqjQ? ztu7sl27YV?HFE(R(ikP%n&Ft+47-&=3NHAWix~GZBpgtvw-|S(K;=AAvE;U>cjo$< zXpXLGh8xV6hIZ%0mzT2E{*Xk$$q6$4#eLV1n!4Ek^vlLX{81_h?sR8F`@m~c)`TXv z*|K39+IR2H2FbH3+O|h*`75EJ75fl&=U#fnY;vi>p6ZYf^hGo%3W5fx)!9heR+R#@ zf0$hVjcSS@iF6}ag=V0^D9I{$?i94($9SDOjiXo8w!legzpUCvMAqz;+A-_EeBQJE zgx%W=j=e_qbn3fnz)o)E+uk*&eQxNGJAe>miHga^JXS5G)MMn(%Er-Fu|#=X<+;OW z$)mCN0_$xmrH{lvTt@j?9;;a- zx3cr@sET-x&aMr0aukT)Hk4)*yvKo|_g*iPT~>|pP(+}vZ209?!t`}@v%>Co#3kqt zb(Mvv8vin1TxnN^oPg@P$E(p-Tjw+R*u3T&j&|(Q68)Jfs41n6-)%1y zKYvPY-yc@zE;;G%W=}s-F$KpLIR?j`{;RxV!gOwqbT&U+33wcxrAAo(DOQm(fkI$M z-*SH2XZG5#S5{{xg2CjxIlul=RU3Y?9i&bh=6Gh(@>Xtdm|M@WM4!x9uO*Sxa%oFX z`swHY`G%oY5PaYm7xCZ?b3xsVu`K=5nS?H8?J_q(@W&+A{e3J~)2vWGOw47aVVsBY zk-y$%7^IYW`uMS+@#!&=&!!jBQp3&W3=ACT>WCLJ_vP4qpZV(3K~rGMnub6j#H9w8 zlyF#Ada22>A*F{yE?aQ6)4uCM0f9VYb*>@ll2a1tcS|1{V7}5EX@`&nYn^t2*g?8V zy!`If8g3rM4ZXwTA?GlYyBN}UQ^fMsSm9=bCR-&hbG z^ttCvPUA|rBG*q%i4-H=1WryLA}wPzX3D%6R?%{xMAxIPFtG``2xF}jcRfh!*%p8we5~Qp(s0)FdV*WuTAxkjg(3MO@oLCEZnQxe%#j z_R5LQ|-Y=&@FnUpnHF0pYK+T@HLyW?x#rF7|So#P9u+hTJ~d2A`d z-|cyyb)gClxdr+@i&Zg|{j19)rU@;$1(QstRLRuaz|nY0~BLw!38zRXEODLsFA>`o(QjHTl~f{O?V>WMrL&i{(-F!3o& zWD+{HjMvuDvaHB9Dg{@@`(R6+w47>T3mqAO|3>>O*i(uapXG$ozWjVP4GOFr9fo1f zn_>wEN9bUZTcmvyrGeeEN!#99Sk<~=y~~SPQXBKscTW0!?m)~;nuZI@%5hro^!7#v z`gR289aqCUdt~p7cov&=pq2HSN3k|-ZLqGyVwtkB{nKaGA{n>GK-hADD_OAi?u_;g zhNJ+yCYkP}R$ar34oI=|*|OUv(wXs)Uy5`%=OWK?oA0iTh-|5!zDE&O@fiG7&2+f5k!J*CUns?1RmleCaqR--da!ujA`ZrXUH zmHz1JCOMD5-l}I-EhnVL6PG1qsbd>v+#K@rK!@&dvq@<(J~gz0V=xg0DACso zwY0t#W!1K6As5;j5U7x5{pgr<6E)BZqAE9Pi8y%@o7NPqeOQH+TI!<~ThUeHJav4j z0q=~Lmv!-*?-_IjW^XNu4N z%QKqJq}hYp1)(ZUNzLQ+Y=Uw|m90Xlu0LR3NPRk>VL&(_8*|X;@j|m|d>RyCTwsy2 zm9QS!G@om7lje?m zeqpWv3SYO(v><~m$k@};wac^CUCHDkF^;qIA{Q3ar5T?XZqo)>?Vq*;zeur7peorT z(1=^`xS>tT3wL=f=bVxmLG>(?@370JMHXjn(Xw1{6?GqP>DC0S}7 ztKzD+Ohr5|JClz^|fNmPXNec+164sg@pWS04=o{8PQ=rv*v6 zQ{XBSIcb|_E)hD2<;kZ!4K%jcrhC$DRL|jpbaLXPrO#bf^Yt!u@tCoIpe(;rCg1ZgN+w~#r@z~;m2UBEHmHxuMaav^4{as)j%_SyO{h#C zZ+TQ=pr6HSHX^F|lJQyebgP^SG|7@n(T<8&@4hADP73wFC1MQ$M3s-l0~(XP>SJ$2R6WTlDP-s%T}YXcz?@dk_De-6F?;|KaZspI(oo zo<(j3yL+vBxh^K06b z!eg04n|Ri9nDPbbD*k;8on_JFh)8GG$(nMg_uQmQQqz}nd3tMm(lbd)5zvp_A!t{W zUn8T?w0W~N_t^D?OX6B4L%n%nK9I{QKHL)b6|JOb(!=5aYH-}wyDbk}GinB3p_-aX zc(ef@=kWZ$RAMpU{&+Tc@Ig&g0*`ExD1g(uk<%?Ih168X6S2@0BJU+Pkda?!Y^zAMgY`o}kAh$xv!SYGlG1|EvJg zvz&4hF zwBzJbdx?6Ld4dS|smChGNco92gGuWYcJ7TjSO7+UnCSJazDmF~L<1@y09&>}N6qvP z%KNmAYW%!sMJdwfiaB`n;w67D91i+TpJ*F;uujN9h4U~^^A@Ubmv+v+n4gb`HD}Uy zO3rX0!t98Si7uylD8cF37TqCiy-iI#CK(BlBh-;RFypvz}m?UI8M8t6|TA1mL8 zUn&Z2MhfAwApqQ4s_`=-+gGh(JE$?*T~m)gb1c4Pv{*DY(3;XatDEI|EZtwLpI!xJ zVfHxjrDck6@b2ml@G|F2_Xsq%BQNell_;l)v7qiv`Pct8yC<}`(58aHw$i2`jaXRd zp>Vra|Ik4D9Zo#Q>BgcCu4cY;LTAps&{4F21 z_Y_8ny9r!&JW7T~l`F%`ijRyMbh+dvu?xk@x|FzN4I(S}A{7c_fW_TX*Xm%oU3(rv zDT!gATQ_t*<=S4c1l8tt?jRRB5$~nszOYl^Um_L>cR|371Ze~s_dB9951BAxpm3Y% z(M+U=WdpjZ>r(gIy&2Ae?ANP5;*xeZ}Tr`<4ZKqbTPR`rTmR%QedRrrZ@47l5NkSK!^>V~7t| zb-thX-*uUIyT9HaJTUWep)zLHo+;!`dri&1nmnJ#FZP>T)_i9HMSw!!6v5fiu*x8& zSJ2C~!co7ek~$+~iD4KjAVxgv@ges&M-Ndi@(l^~bd}vO^?})ZH zteV=bSgf^=`e)C@pVOY3xzQggFotP2w3m%ULUUGOA&$mBZOYQd zkT>hw8K@wK5g*$vb0}Yy72IunJTEb_a2q|vVC)v|z&(r{g}L;R83#?dK-*|+Z$Jry zXLHxI4g$qo5*2#<%|5G6*pF@>EjCy>Aa%*5G^I=yBzym_%{owHGu4QiS zx;-ktD;l+z#=WIK6MCfIcKnn8WZ8n+@ zadPl$=9QN%f?`1FV$B{xXj#cM`VgpWYCR|euODR}HsvecW|Fv2pR6{vn+{g3Y>}VzuyZhp0Z*-AQ z95q%TsA06Vuk;=R6s$N$pGWn458-d!ou_FFfw_K`;4K#&<1L{@aeukr!ND108p&4S z!w*vunff$BQTA4(xUP^b-X4BkesMQOS&YY-?L0%r7X$O%!_EULdhw6it#Ob<qIRYq9Sjv=q`V=RO_sE?i)`{rOWL|12o|_nG7g29@;ebTJQ5~7= zb4qv4gC7UU|Gu%hrx|wmnbw(iy;N1T+<-N$HyKQuF)Jd}b|Awjt=DK5hXZE|K1p6& z$a`6u;N^8iuq zMqKaGW_{~!5X#~4CX&QUeB>2!iRkz!UX3=@g~v6lB|Hvo5|=pEkYzUq_!FMb;s6;u zE7NFuHxV#cl$5RE_*HxO+%~hMKZ$g@eN}55Xv+8DBd0af5<^!2(vixs%Q+S-{b?q+ z(eMSxON}|LchEru3H~$OhahM7IOaZ z{t{|MT9kN4pAgVNYshS#sQWQaFuMXaW50&?LJQi$NEdv$5A(<^`wX#QuDC$(|TB8aMg_TpKa*-T5z;$}i zR*71Q)3R+q08@@oG1^$uva~YWvl5uwB%J>q1WfvSRig=vh3q8`LJ1#d!$HW-w=0FFSpGNhHT z{%Ty(53kP2q-TZdipcH5X;>cS9+x3%rwA+VsF5Wb+oo zrPDb^|L2iUo(ZieA0zYUX$Pp=X6BcC^x$n%7O2Vx88v#1k4-pvdnn$wL))1GRA)(; z$jDKs(M+2G)t)p7ENCrvbSSeO@IoD4nKRlAGid@RiDt+U@Aa&F)aew025$%qaj>)T zw)AweL7E~RTsLq2V*}t_4BWUMpt<5%^UpTSYs3Y#SadAhyoh>!tyhAiNRKYim zCc~o-C3f|FG%-AKeRz0^i%(!H=AOs+&A268?in(6ZMwq{=8>U71xqPMc>rBa(K3Zo zXRl0O&;R1&PXY)(!plin)1_Ta?fo?5ek4?YMnC#M!imS8ewffBv#da{AF$^>)eIVO z8SSgFPqiNu1W4S#sKN7Uy$ANY_tzuNJ9@o@0w%y?z_>OZ?X#1UUZrzcz7>`ylf$wJ zh8mJ59s820#T+(=F!fGUap!m8b3-JXc{P8|@6v*&`5a|hi9}HmZr6|O>rjqndN$HU zi6MT``51@@6>z$f5dom#%_=-^$4+Ik3LMRO;#2yBDG2Ha0)sn99Nen^*eVfHM);Q^ zNCDB}{YHAR>r_3*<@tp3Z{|Z=-c$bR5i?yXHc<<{JY9h%i(4kV^fC*oM(NV{0(|~r zypjD+l3C#9IWbT8YUZT0kxfMDfopCI?=WcltGU~ZCfZVGdZ5-a0-a~YCTds0#lZ|E%~V88&avk> z0@`-0T!Oq%19B${f!9{qJbG#YANoWUl1W8TwKJsmN%WCyWNOm9`)m8tv|h zL;=O8UAF_-ED9vw9Vu z#UshDCodmR$H&IAg?SU)5H;&Y{by?5o{D!{t<`a$uAIAeyp0o^xT2#YE^`pE&DQVw z59W9e7u?GK)|75=Vy4vm)KtfsJw;E*LC288w7p48FahO|`qWdidjpiG`Dd+0y2~W9 z9d?hQoeGkNkh{xJyJgh5QyMz}+ip>^bTXuE2bwj^HSEiK!Ttb~c;HO}Lwj1-gas~2 z$aqos{aw+NI_;B!KB%)-ty2AXtfw)m3--p&<8zU(+X+UxzH2M~>*Mu)hK1YWE?sZVuy)IHS@m`99`%wYs1#xRO? zN{-Sd*sIIxe*qRxN5gm|H6D~$+LpAG_e>X{Q=U!{}7WQ>f{6*NSuXhB%3;q;DlDuWy& z&9qU68G<<}wXnPx47^!JKrhWX65>J;j$<#*jNttfd@zPMY0io;a|Pu>TQeB@MYB63 zxUW?e!#KtjI}&4KSt0T*srZp%m`=dj=UQ~3+#!|pxGRfIVWz$|ZN)RL3EM##PN91zD*a!ir*>cXaOW5WCvfN38UfYbp*Gp z|4k#?*~M@2ixeo*^wM2QZk+s*jFD@^N8Tm#(A8<90Z=a)72Aw-2;E)(w(f1S@5aHW z3S)R3FL9YxEEheOwAU-HR!=Ro!*|*}W$H;zMK*hSzlQr*;`pEPNvq=3(Dj~Z%sR=J z-Wu0~;l7J6ijvOHb}yVrj%twQ$=E$y)t-o+4(s&RKe|`jY+@ei5KA@fJl50L_1fac z1?83I(Tf1AKBvy7)~m$Zr#`v$nvU~Qg+ov1bQ;TwgfT3-8oCQM7hNH_>_ahE*LF<3 z^tCD1payjc>?=&U%CzWqJlYE=QbFz_&;_1OOj>&+pKMP{m)85JtRb$r6aLs!);}0~ zk;qkS;&<1=6euU-A=yf63!T}=Y5|(i71Ogvd7o)aPqe`K_j&9L=3YnqBw#;xR_}{B z9Ut68)2BN)=fj@ttqc!DfaO;2Z9eLfZKcZ<+~#Q}2pcNJ_SG4bASKX2vhO^o*VjSL zR$;}poZ-5xMCV!+d-OtSy$0(J->|+I*HI2r((JZu`*0nXFDjfcF8|)D`U0hMZkHKQ z_;QcDp}6u0`rmQ*$$RH`UP_s*V<){n^ptZ$q3aThQ_$Xl_0D?h*j}O>#o^ZY9RBo7 z;gdMu(Va1^$tIKnRctvl$iR>G6c2RTFg~grnoPn%x|fKJ9Vk}0Z%6ibW2pVOwd;0w z|D&hu#r!gS?lAs6F>LTG5`4t6WePFv@vHbFU6y8&t#-nnTxic{byk8xgUMQ9gp}qw=*LOU3E640CV1p5J9yk<=9&G2{4xUHaTH-pH@pcgZcR54 zk4ItW=G}#*`Yd?X20N^BIs`QF6g|}y-?-L@l!4&KOb(WQ@)2qL=)~khYk?yp#fK>O zbp{Jpc7%ZZoq;j9RN_)`8|~JammL}-2;@x{qM~BH!zn(lg`PI%rSN~B1n^cU9aYdo z6CnzFAB4&?D^AJflc0D*+zJ0%%-*TXg-6>Y28{leJikl*OZ$vL$O5Av~4Fi;Dk)rWHQLz$T`*B zE1%TRWa#=j9<4u@sSp2jy`c1x`TWd$+DK`>c3JDnwLu%=ZVpmp5K$N7?tE%JWXI_W z_yT3|`oxIT(PjKp_j89zn3RFh*Kef-TGG%59MCu^&gEw#(Pa;6`xC)BQ zu#UB-OU)TW0lvgPa-jONv0ZVyl6o|sMvR+^?m?1F!^tIfF`fgj3Jf-__*p~5^lEDXyAy-upz+#a32;Xxzvf>5clMTf*F zJrSX9O|k9UQ|XYx|)&REcoNV1&KuiehQ*^vH7UUvnd0$jk zd4_Mje7GmvuPj~Oz0MM^%r(60%8^JC$79Zkd#z3uKU-Pu0r-N=(On2rrV;w6MGRzO z)F5mOki+aVx;BE|6HY44SaDBqX!IvCqVe3EH=~>^S9_^C8h3@OIMznh)oxRoNs}dl zKe{qCF3vf>ZpzuJF|L@zET&uv*-4qMeN9c&WKS(TO`E*?-u4j*-Z_|JD*QM$+f87o&Jppg z>PRCO4z{4Ez~UL zYWHlHLB^gy`M1pw_ZC&uWR6R$(eL>N#%Z)%8ypY2?%&sxRq+ZA=Xjko$j*_gwGK3v+ixFC9eMi1DvXpXlHeTd5wAs*S|{I`du6Hr*<|vU z3J6PM=;T3%n$7g!#JK`8t8x=JZY<@LMTbqstm1K4?pB|?LSK4pv~UI>U`q^W5LWyd z#oK%a5wxfxUPlRbEsnUEVv6cJTIpsuc(FxAL=9>~oJPZZ#Cb2olVOgo`-rcoHv85~ zMB1#Crtc@G0H}HJ-oQ2Olczkdd6dSwEKTa;?qF&#BT@ zMkxBBS}^3@JeBd!F#-*|WHZR3*PtNSvmp13hg)M;5aAoaTFxL&Q-7i?*G*IBti>x; zbGe}v2mGS@%lMSB+-QDJtO%!U+Xt6g49k#L^4RU%?8nTyau~~AL+P{aUsO~~lDgPI zS=AC)pve|rI#AJF_;F|Ei+0YFR#iJy-gAHWw5W1VzJg*lHoOljp2!hE$E!YJCRf~* zZ>|09b+XB!0Mc|t)NOuiq zJ1jyEFyLer_mYrG;b&&5LeZL&RjV;`JxxfI#%+lgd1_TLrR8z@QD4nXEq-|doSh}eNjH~m!j0g=sjJ96x3S$`}a>&}0s7cuO(ftRf7F?wJ&L@bM z9|1(cyp2R~8YNVMVS<=OkDMSzdr)v-_b88jAMW<^$-6=I($9bAI}4}P^MC&-tn}jC z513njSu4+uM5JR)zf@ceZxsVIAIuMQ=y%DWEV@xc-aKZiU;4-Ly%aIz4}9^SMpGuV zIVnk|3j64jVqkxFVvF>S-CtS_{pFR&w!i-=qvX2b$@A~dmnb>}b<2Os!O0Vn5E(*k zw6XRI$t(^0x0=D6P-ChpjfNNSqu>p$hKA4iOznKqVW!Z*b2L7hcbwr*I(IoPw8D&T zkeF*z-~#~+>uguqUAe;HEKbj0uGC7=AWrLV_$D#_0~~8EUFQEiONg$4k!>%1xK(P9 zuK2^~2cQXZjf|5qV&w5Dc?KbO;3yE27~aIY&@!~GDy0Vfn_MDSjFgwu(Mo|3A5rc2 zLav7cDwBFH(eub#<#(#^*5YiCC7k~IQU$!k0TPk|-o~aiCxiBC1_fLUqxj{qG~xk~ zcW%gnAMh(`g4az?OrhfC9$@#VCbs`X>zV`7uxz}?)z6<{vxGYSl7p~euq6=C=c z7bySv$n2IKVT&9!^nf{aRjslm`<&aPX>SO^$W5~c?VZGFZc~myaXeO#8u#)BWy5D? zyYR%Dx0yg6CYc0Le0)RCKr%iMjYOgY$??o3qb3zfrB%vVf&hlh5`~b%J8fuc*p&0A zUjU=AIUB%N5$O(BC9ozDt})T1VFke$`fxd89pfRX@TlNnI{i?%&hXX1c~K8y-y>I^ z3cibt*g;!DG!SOhiV8X<*!nUHT;sElEhhGH*TqbcXqR;xPg?6dk6%xAp`FG5>tQk! zP?jtxWi2P(PkVi;xNC?1Q%!SQ!(Eoou2!BMxj57njSa?+Cz2=p#s9rwP5!Uqwg54E z*+&AR2FDc#JNXFSNt3t?XJVAq5;EIeN&}=Qi7WG}aA2mVEFu~XRFm!~hgnL@^7ElL5Nhm44su5<~i&HV80u91Kf zow$iE#Bo&?j;fR)lB-CXf+*_<<1~)-uZq)pqAy~aY)}LPJAaVL=0b2pgWf}YDRb)$ z^98M>Ua1VdCoxisSCti$Je8-?v}1g7(WO>Yy@>bW-sHHo$+hm2Yq2dxEPu{dP__8| z09r^8mb{HLjzWY+0EKL!OdFpj&mbc_&6n9pl*dRC$2x{0iN#=#z)W43T9bw8$&;D6 zPPUW404sSlr-+YSB`$uCr-?!fZ`w^DBhG$DG9LQ%TI*$V@8Mv)SvHgHa#5ZHg2q}m zfwd%5BgZP$DNOcFK8V6baMTxLUfD9lgHyJhl!ay*)HW6LIAx37GRc^J)K&kPMq$Qv z&~Rf64v^pxVzN@iTlJ$D;=r`+Gpe9Uh_gzMlqnwcF|3DbHTf^@rn_n7pjon=T|+Gy zNLLw!AwZ0QCsmNs75`7k7_lA62MfyUIVd`!0KOoDvkmaM;!)%Jv&Pv?zJJO60X)M~ zHZiZ!Ovl?oR}7jJIBt7rqBD)U^HfwLlo^PR!UDU zoE(b-k>G~?YbU-sZcKIGWleX{{Y*wdIx&@O*ieT0jU{b9-#wn(@rWBwcsCl}PV~eM z7SFCK*>`Pmz~$7EB6w2Oym1p2L7Tv1SsgbLf?F`S1Wp2o!o$u#*!MG9K@L>W`i z9CVx9SHVIRpnU*cB~rR+MxfWer*)Z>B4&&>S_O^Jkc0Y*UGw+L!Z`IH0p*=77sjs}` zlHV{r=)?_lV2LP+qS>~=qjCk=u6A2%_=ecTk)@x6Crr6LI#wfzpT%j+W&romLznM2 z2^IuI0&8{hy$ijYEczbmA6m`Z}?q|m9+6eX2w4R+% zK4Q7U9>F|%!6iHH_>tC))|sC!o|H|tehutU>pE0gi(dBY+*e|iV+Z=fQ9-%%cN7=2 zL8q(6AlBnG(uYlUsch(?C9H-KqGf7NC{4akI^=Qujc}g8p&Om3nwE5^u_ z*v-M`zx+1?9zwD!397!hS7G4IdExvUlMk5e80WB&TP8vwr4i9tG@?)vDN`wp2;*8v z1aKO2To4q0@NFfo2Dap4qrj4rxZVq0RJnL`&upCgWQyfT;kKrl82I}8&Flc_()y28 z2Hw{dI5=4>JME7kmG`GoFBf$7#`5t>r!4)x(NNkuVBxcf%S+$Qo>7`lC4x9NVLv#Q zLV-!&wPw>b!w7_?ujm1K-@AFu2Q)nvd9CGAl@0sp>P=EbFmru1#1rS$CC-F1?>eZL_||HO{l+p$084hPmL}N%N}`-e#Bk^k{z}>WcMQLqMn6zb9Urk zWo#;2R>qm&KUL>tbo;jVVT(j!kONWlYm3;+a0p3Olx0E|DHj8wuCt5rhO0cwvhzRE z5e9?e#AK14qBrT%#w3HbQ*uo0U@X`l3s^x)A;+byS<4jJq6WkEO>#)9zbvwVNVoBi$tjS_XRcZ!aQ|7h;nTwR~RXF zr^_m64qIrU(#t>l>Vk}S!g!SKzj`TMNI*eF|XA%uh>+W>ZJt{bfOQt2mu5k-5B`X-R&Ipb=8fBvD7r;_NDV*5%_A9N*o3xZO6&*d zFDHakW{^0koFr~GuhCkzjfT`z2TI`($+6O9vE1#|7WO?4(SB?94l*7C=p0n3u$GvO z=iBxTo0FQ~HWT6d2Nq`v8G7vU{}e_+Lk7Kp@Mz3->k?c?Pax$s5@XX0!2@Z$T?!|o zKqDI3r6=Qn7941E#y4UyG{O{WzQg6kT#~VM%r%A$ z+F|YAbgK2tUu4MkPkl6Qvqkq}HPp&X%l;6`OuDJV)DS(}wiXJf7>k)C3rpEvP diff --git a/docs/.vitepress/dist/assets/inter-italic-latin.27E69YJn.woff2 b/docs/.vitepress/dist/assets/inter-italic-latin.27E69YJn.woff2 deleted file mode 100644 index 01fcf20724f915f68a974ef2fb85f86f3039b1d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46048 zcmZ5`Q;aAK%;ng&ZQHhO+qP}nw&#v*+qP|czkid>ZnkOClarJ)8&}6XcX|`ed!zGB-f)m7A>|pe(@}!;R(i5_;Q;gPmmVKMFfL z8U^pD4g0RuZ}j&Yi?dvCD3+ecar)F!3E+b%ET{xw3C8M7J{@t?MBWQT zLw_ifuEbJRdIiVDI_r6xY1G<3JMm-nFEcfCjA z#v|O&s%xgb4Qu-4#eM-HHbII@&llh05HDq&f6hwq6a9iH_V7+LNmgq?gr z%&`j^DFl9a*VO(wCqECKHZo1pWFNhI!r8z5HSYFFvbWdx``e$@e{H3eAZG;>M$Q}9 zcyG=RmxTs2L?SQ<4ddA$mX6^0Up-UYw)@~WUBfW{z03Vr7Y6_e!^}-=hbYiLDQz~! zx#i5%8+$VqQqTB#_VM5K{XFsg`Tm>MS|!8%X$m8QBOR8-Jp>8o7)AhuQj7sGgmz{e zgdmP#7=+NqFbsi}Z`pful`~V_xm*Jth8hQg1|5HlcR(%<6j->ugynY%EchaWe{lYD zBYPwJO9e1V7bvRHAqgKw5=51(C7Ye*@5%n@F@zAtFn~yA2qA>|-!R4)gW!+^B!(>% zLIn{qQOrQwrio6i$|93wtJ9a$*CyRPZOv47w%2dl&-2cqvnG74QCkjvrlLQQpM6+PK4MTZd!{t~jv4_eMTh`r zQN%)c=;^Q4SN}`Igs)1y57QL;Ay8Esv#k*+G5M9;o9--`3D0dIC|Y%HJhW}dR@JfyQiShu-R zTdjfr%lvBYs!_RFlC1OM#QCo}#tgZ@QH zU#i~j((E=?*O#)ZF{;JF2)U~$7Ti+nP6BId%bzl}6cH^zh6S7f4m@!?SC(0dp!Cn<_v`0!r~C{&aL)xkluV+&?6Vk%AQK`!>7*@^Sd>6n zQCZOkU6gI(W`>$U})@ZUV?IeK!3yH`8K_n-5hZP{M_AQ2?RJ^*pl z(R1@!lkaMaAIdp2_Gl~ZIYC5_kc7Yn#wsoh8MiCiKerq_Tk47?`a{`TKMP{-JFG;= z(jat>m+U9hP4(7AmG*(>F8lRy-$j_yr@Lyco320L!|*{E0jlqb{po}2GZ8I4dt1fi zputhPkmrX7%Eu#MFaZgy00PqpCjg9V_=IKwfkz|+QstCmNKK~#R_ta@e}E!15>i;m zgt35g0i;C+9XZa@DcjBE&~-L#yN;7I@79XeZMSHyQtz!sp^HvS;pOCFO*b8pRMAWhJBoWdx+i1UN%fA&Fo2+U9IwItXAI9)L|X z!0MYhz#d@+KQr@#`)C*GjCQ#;lJ&Z?WP;o7!dq z;a#gl7s3RZyF8k!f6xdj5;vuTRq|C_y6AcGbMGf-BhY5D%9>fkc#AP)F~E2{f3jO! zxVw5%@THW80z}(dm}Hs+Fv8fAA!=0)7^<-c9x;bL=HKD#Vg}{JfL7fskd8@r!#-ao z4sMyHD25@3c??7u20|13bqtM5?%sX%z0RX4N-Jv326)bFv3IHUGjwFl7ENXg^U_ux`e~bJA!1E*+F}U6x zRYOj{wYMxZAOL>+fG)ea8+ty4+iSaY znFz(?XVn-^a#z=RxU|uVySWoSnk`Fl8*95(*^68zX#>=eq3oMVC3Vd@Ywl&vLmhJw znT5A_BefsURl~HeBfgb3kl3MV4VHT@-E4MAU#dvvN>6T2uWW(Y0yWJnPQQ9RY0YJB zQncEl*D15UlskND!0@k_8*@I=eWgU4*I#Tv!e3&qysoYIM4VYL@o&DJI~6B}3^>(* zP7s6ly0`YtEM{EU25@qPgQ5{M8B4PUIjpB_j%PXU1ElG?sV>~B?U2c3GTDsOq6uy1 zouqFGwAAf@?Ufd)nN?s+EE+gy3O!;;X1Oeox=BiMjjss6 zrb-CJFi{%)TFoY)^l}OR1e+->qlfWboYLujkMaB$W_-OKl4YnutC*!HZC*|#va1J( zq)&EClkK&y05#$5rmsWJl7Tq#i2|qtT4QT@P%Y&F0oI6Gc#|;-aEq!vHXiyCNc#Jd zfm4N@g~l(8X1C7JtF!-ZHE)k~{oAdbqw8S0s`bRH^Myhl5txkA)b~}Xn^p-ioJ%xN*QccE#L}_e6=f0g>$U&uh-nzDLLUmm5Q@2MW6NSu8zK z&a86c^S-slfdC?1xUESPfR!&$I>hXv)E-&P?!i1lCxQ$+Wgm?b?e_8t1FK!AjcZMn zUc=s1MYVKX97EGfz8aMbB{EEcohY$kKx~ZUmdvzme9s0CPNad0R^C`W%>@^sZYw($2&uFVl+2K17+0F5zi%p0G#mOe z*^}O35lo{S&BB<6)GJCxuxdYET^~Qf%*d{4wAUmb{6&S>4PY+W0s0}xB}|}L4}>#p z@{SV@oMIUkDQ=JV6rc(e5{-&u8CT!gIPX`SU*>~oLPXKDjWpFXbUV#n`dE(%Vm zIde;>{Rew?^n=S*{!y2vC`nb87AhqmY73%OiUp6NtCT!U#oyx!5-G=3o?!qzhs&^9 za`ZSQbyfJdPG8)26Xl#%mnXC)WcjRlY3)xdlUTubJrCC)o~gZW8hT8J*^p`5YBA6m!o@t#amWxKJt~bqIO3UE`;{@p>`@W zP@2<6is8>3Hf9%Y%&&)m{*TKt^hlHjbEdSBfS}G#G&?aXAuO*Zc4jthCt0P?8nDkp z&nn|E4DVM4eo^1y=mne)ODOBRMO&yswcO%Am{*zhq}Jf6{FkH_h$cp+qU}Uah2xhec691J>8bKvfO&qtBih3^ZtC72aRAmIK|s_Wn83;( zcfe-TDq$V$M|9T!w*Vn~`lMnwuGkrS-16ZJ_-}6StXufQ)fXIH z?3n|}_6M<>ZalzzphQYMv^Lz{l(olOfP+wpI|hlj;O4bk&^`!f^eJgzh)Fc)Aa5f^ zcW38b1+QIvvAMc?Ix!g7gd<=1oEdkKZe6I?O`Z#b5n1i1ECLX7P$OFp#z?N2m(lx_ z;u#AkhZLFfNa#{~S!$4`yTsd{GGth$2(!_)dmhj7Fzn6m!H;Be zYl;%&#b|8G)a5^a=}AV`%?ZMNw#J#f$4qoefe!Yu5%Hy~p1mBw(3b6U6$~;Z-fGUwnlxC@~c?_e8~5Cv2n zztXN!1Bn(5M-sFQGQ^!1@p^Ur>}Y4y3Lyhzuou+Kke`^@BtIUUuC~Lqr#~Z%k}0#_ zRO|4NN2x`8&N^yBE}|^EKzTXH%!nH@Yi8}EbO2W(bJrg(Qe5`d4M@>*=mw z@gnrvq-&$G`oK_^<_S+dir4$<`F2}cKFc8_9``-kvvKoO>EKCe`|$Uhp$%7D)P+mg zy9TDuYW*X&eQ%144@W|e20kBz%C{Z($tQD*&!0x?KmF}T2~1~xDJ)Y%GWJdOs~p~Q zETw8+2O($m62?Hicvboe@7{b|25+b$65{Pj*o`_8ELizPDhqG6e^O|1Q&WRUVQ21Q zgB4sKxB*Sp6$U4#w7A{x)RQT1a7p>)SBe+;jQFQ{JDQS_CA+!fIw>w=Atv=dah+uo zwDrjm_cXe2*K*e7yai7y^Lr`c$36%(F=IIBB$N75U1picH_F*PN~1Kz|-y63>lOpdMHig=x5TfIT$_gF>jC^a2#aWfXH z-cUgc8m$G}0*~L6^8h=z9^2Wvg#pfHb++N8ClRJB(of3NY~V%i?e_n@f8Yz2+zI|| zzVu@;8n?1ilTcOHaXlGiTL8422ubmhYX}1n_cbW$OXgS|wUAJ*wSmS>~(#pu( z)Dq8oM%~aLf9U&>{8NIkoSd+v2nBi6zBJVqs)3~yg8Vpe)fR*w##`C= zUA|z;Yo}Q!>*`DIdIWy^6zTbC5pf61fqE2ig#X>w6f>G3!PXn4&N`12!jm4{8b|He zFXjg$7pGq|!{%428b?7wl{z>)T)+rjwgic$28EsddwpFL3V}!|lOb_1Xh|djfljGZ zqcIVJLW%P8j7+XdRoM5NvseO|N|&n{HozhblSrXlMj{N0N;bs+sH0@0#z@JE*De^AhHaB#fGm4>%Z57Iw$*X{R#7ICsnBhG;8Ic^t4OEAhWjR^ z9LPFYDyRMl>APX)(&nG|yn2sOU+k-uqG`SwHtu}cBq6wsOGc4YYQ$PM*(Ixegr{sQ zNIG&-+Ghq}WpblRa55YB#4BrgOw}^P+CDY$rLXO@dM;btt~*)JKKN3e`)tfvF1pG= zP(posgrVz1O?^Af^yS|)bElbLXg*EVeG^5oK27C3+2}c!Ua0mV)psAOSQ{kOx7>5e zpTs8+KA+R~06s*nOVTx+yX4x4K1tV{@8R>jaG;)7qu;zT+?>kyO&btOye! zHB}>_cm){I;1qHqnKk4j;nlx0M|h+ZIqZfp>hOr%Rz`>>WJO6CnTS!D`HP59*oG$L zAkG8?LYo|+LeVKzRC`k`QZc16oy^DDX;~v2UsF}ST54ybrg!?8@wX8`Y=M#xS|xVLJuqxfi7>(0 zpF%*M&>9LmLT_dtMrUA%kD~+@ZFzy|r9e_O&v!d(ANw#u`q6!Jm66ekkyq5Xdy(Rp z$R^~TyrbyPNOe>Ofa9NQTqzogD-ok9pU~**p5Ap-Cdi9pqIF-+6>BzvewS#f6?JE(-s*A99Q%egOs<|F9WGZQzMhndK4_ju@P(mT#~|! ziDm>q{W3lg@p{BxSO_%=KTpfqq0>BQFZK0AS)6tIsmnuQE1iKhYrd$RilPh zHD$w2q-u%AnKTL1x6K{?HGh84PW@Shn z?-iNc{fDq?GHoSvKOj(pM_}@8CAHrW2^w&Znq}5%`oYvtka5v$mor732JqX6;&fQb zrlY;=0t?_DEh?EW(0TAx)d_#ps%C$KuYhFu!n?Utjy|R4-#}8=f!|6_oVl5MrEk9G zK4Ey!@C{ktVaK3@t9JVQ8v-j%-UtR}JgcJy!+eB7W?%Q}Fj|*z&8}&{JSeDajFdrg z2z!r}2f&!L40}A77!xAw08OTy^39~(MWPo^LwP4}Q$|+gB5>hGJC&^O9s1xR*Tu$nn&il@ofiM(-P^y4q8XYDnHIj&8L8E!0 zgf@vOm1hHuL@*8PW^Xuioh47pFiq@Sv&3z9rWsYbwpQOCu4KD^-bbSiNGriCP6Rq` zq`)W!P6oW=r3_FZ+s-FgAczxq+KdeFnRAiWH>}fvjPx^7-`6C zh@8W_-N2SHi)ZM}sxTocM_>_C_~FTr*-RofA<_miM2bmJxj8u$H;iW6RBcGns#U9Q z|BFwfT5FN2Rlid)G)B#~Y=7j5m=6xcR9l`TJx}}LvB;Uh0iU9ziqN*w? zA|jFGxZP+_&}bOLI0^tzP*p`mL?o0HQ@i$m?r8xel1cwp6~X?8zY_m{C`qO8qFi4R z>?bVXln6H~j4;Fhf&)lVmZl&GK?sV7IHqa#PC$6KxHgg|xBP;u|gzRx^=aPkgm-Wm$w1HR_itl&5HBq2k_wp>bUNo|qLwtddN zAJu3Nj0|Jjv{1Hf)BUG$g1G*4@kABOEWdhHuqm^|Y|{f~71)tAF<5eEmD@3SZC_NA zPV9v$r^gtN{1qF(^{Y+{EcOu9Ad@V+Qne+fjoNKGU5+LKYaC}_%yBD9qqKld%$Yh? znlNi4LHFayi*LpS{n4l;BIVrtxw;KRyG`xw{`L~LyK|CvRh&yk4r4iAY?*^QKp0zY zZ15co9D#fEA`g)ek${gva1w!=sgiRqK!a;~l2uNi zw!lGZhEn?E!@T(_>Qa%ZtuN3j|4yRXGQhZ2KGykEdYu@IUMs1;4NS^6fd+iCO&dI& zt|Y^2;wRMHpx@1fOgIMi=9VMpAh{`(eDHmuXUsmjA!Gn%l&Ba_L8<;3aR;w_dg4CU z#J@0eVX0|@x#WLWlF6Jg()l>vf!1-`y3O0ETRHQxQ8y%4OP#6Bvyyka;-o#75A~AQ z*1`wYR4MD29elN!-dIjJI}SaOK5)Tm{DSYap>|i-GE*ST5IHs7**j*WZ0a8i6uI5eE8xEe zLX?$rie&lgtCN(VtWNUttQWx)3(kbui&Ix^d7@?%Krf2$VU@+9ZB&pSM3SY3T--ZO zkRM6|Svy+AJ_)l670kZoU;rA1gNmT~j|_)j>SMZeai9=c(o+P-U(ck1U%t?SDjseO zKXu|!e?Ku~vUmis^nI5hhA&1CRW<(j#lD*PntRr2uJ4U{fd8EBDvU)VAK2{*SLj5^ zMkg2>r~HPkUBX*~lDleW#yn2VL%9ZJugkK=X?^_8WjL`-b?bn~FhQcY+U7{82q|=} zO%@bw>2B!c;GtVO-zKIQesY71q8=N@n|C+o9A`)3gW;@P2cofN7b09vTXSyD}5 zNlvh&(nj(bB3{=w@~M#*Js`0=m2W?AP){C+VN%$RSpQ^2+V}^0$Rg{AD0TP&a|z-| zn7Lb^5z;CPo~S#mTR@8GnsAGnz>e^NLuZVs1cjJB!74O#k))ecij01KZ#tn`1A|1H z&NGmuYmvio(M!z0Mu1C*&5#1h7doH^coli~j;P zCJ4BY1?Yr#{3S=?wbN4j7j{5yv!{8OtK6%mV(VRN4Yq zcR^aC+*lzt0~QS&7OSke$q2;&+>PD&g%_*p8tW+&E(S0Kpc4QVKnvo$dQZWwcn991 z|E3RbM=z!BXCTmtq4%ABcrEY3JpFerhs1)YyX8*JRU_UZQ8O~pLo$&BQu4VF-Lxo? zB6gu2N8E8S7}*Wz#mqE{S!YCcdz4uu;2#1_A|Y@}X5;+CHIkON@-*e>K)WH>UrHBB z)w~HY524Ya*v7i)WzpZkhrE}#s`;HVPmE7))*b&I!gGiw9}+CqO9GQKh$V4 zgkCW(>|xXVFO5ka>=Lzz7igh*Bp>`_bU`=BWwk+HRD?T059De#K`$(_efX(y$eY2V z@U?j--_eK6oO(okz&qSFc0cTVQ>Zhz75L>RUN890NAPRD&dguzgvJy%o`63L@cbXM z=ARuOOV1bczb&~xE>vfAHX>?sgPo`eU;dCX`(!Ks1*JVJKU_vVV@rR_2hCY2dql@I zC35G=(GnHsc#RF#6x}ME<+9+W3k7u;@#KRelXE(;PK@A@kkvV*+#0ODuQC!XK^9&H=dt6UD!tI5YN~%zo!6#K;t;U_MjcQTXC+ z2c^W#Wb7eJ1|z+-j_)a4wm6ig2RTvf&kSttea|auyhox5Bc~nUHExAYn=i{%3c;{R zLh8Nt)X8!5_UVjiREcM?$W7bpex!4nJE&N7HxWe10%0}+i52QJE#wH73>hWKLq;0X z62Z9Y@sq4!~RTDm$frI%7Qg=I-CC|SBR8&a>K zE9w6=@s8qlxG(W~f1~!8aPR4P#sl4&^@athU`mZE4I+eKeu)5s|Ei*@ID#M=>vFYp zaJk1s3l^`lbjr1hG!SlOt&~bVlxU|UqEwLQ7gunrz*grt*+h*UOf$MLCfp&A>4QgU z9`fPMIn7-EntQIweKzXJ@z|59^QNW$j&H^DwsKv?PA*_zB!l!E09fWGAfwCkvRg&qqh8M>_G z=XE9Ky1B{i?5OT!k(HOy2m%YR3H4dIAe$Ib-f+`6zPeO?)ZGz}PKnQJ&FkZA)a2jP z35by%a$?*oI?He|JoK>7zI}{25x}nmz-OKoeC^$@3Lt=AkMCdD6-IeoK5?gj65vQL z__-VKG(OgjO$y}21;io<@}E_3SH9_gry?UzT`Jo~;`LL6 z*h4X!L(RVXc4NN_+x$;upg=l0%`xUP3b~&-6))EYG4?ZKUigpXsRofIAo@ZH6P#j& zOi(6}1}7*~G7>$b-`f!Hc=YnrlTFyCh*Yt0#%+oYF(+zgfY^tkDF*@x}HCGbTN8YDT~}BO*WIWEUG= zvLj+9(Xq45vQ0?k4{*Q$deS{GA*h1C9lc!u1boK5K*WpX*1Y08xWlSrPuim-QIo0~C=@|6w-@MuqOL%1em%@k=hi7l5Fc8}qA^)X+fuNQbDklM9TlYr+m zo5Z42ok)73ARS~G)o4)pRN1cHn;mkc8D>4Syx$lbw!hQR^Mm;PSa4Q=)srr|UQWEY zbE$mFsKhAzX$%Ks40##GE#R+GN^Vw9i;gUBR#UizGtaKRe@JtNzPG}@wk0A1>}$NF zUh_mpI|Ew`WX*zURwg5qwSb@xOe9!Go!7}kEovqH)Z#s^G&&gO;8A2 zC#7$g${po}{-)%)*@WVC`d!m1;^34SaVcgtreWC1)pMb()rS6ab z>K&DSPL?vAY3)-HdE6fCV2+@~Tj-JlcEb`tu;BQ^kUkP@%wLmM&g44%A3-x~@{T`l zZNq)UhaUf8&dHpUXdr9_(KGA{Lwjm0$#t##6Qz~MeYXeSZ&${;*zX#BAlGK7F$#?MjqGloIBLu=q@ori7 zYL8UaeRceoXD0P`y^@!03soQ|yy@fd95r?^@Z>2Mr9@W*rw?8Pj?pbjxej`1LTyKs zmtL1kTLE|x1H3phQ08nX;uy&FyJFhFOf66Bq%nM7hmDz2nm`F1P8275azk?ln^eJ+ zPQ4A32L_|f!hmB7S@*0HsDOv(x~?~yubbn*v6e%_>2Fqgf;tg;W`>Z{-9vg=ee_T# z%I^;Z<-RjBw$i6^3t7E8%M(wEa$p*dODepSHL$^rOAB|rdN6@iZ;fwJZA9*1z6_RVuyMP_xv+PML# zK<#+0sEQ0+J$HV+&ve$Kt1?4QsfWETEEduu0`8n{)@iO{)&P(iM) zWEDsJDt%&C^R!bZtANS5`MZ1U=06)D!)4q>qzX(rlza zUltz-i}XO6SCgF9;FSu3BG*VX8L;c_AlLGg9mOZY3&_tZgFES7&NnRUxJY0GN+N{; zOx7BAH-xrlkkkQ7v-a*~sSfSXdSTj4sO?&GVTjl9@K^LzbTF3~wX}sHj^lx!(bWn2 zWTrj7+d0W~*KDPpt9|ss^v-UvwBUrY5uz*+|IzL{3e*?xF+cL1sJC{o3{X`Z46K$U zz_0W@t|D4tp9w69uOEcqoeQbWW$_*SQOA+c52PIJp@W{jqpa<}5=@g`qhb; z+ZL9f2)B%|J3(t~cwU;-ro?bT*Yd%^XcLF2j20CcedZoh2DHjzyo>3Du#<(=H#?7J z@OSh41=#!87dm5v?5pSUW|n#lHE^>dc?v(6I^vl?^uX-1e-r2`zfa|X32BIcS_pc~5S5 zYFzlZCZ`0E#TG7?%PltMc(yK<~VnpO%X%nG-+Bgf5S-%fDuq6_InHRbGCF*btd`Zl*a$p`in>dNZ6E z5-8WQw@Y)bw5T2-rprO(7rs9Om1DWC)IZ z?7`q%OqN7#2iXAWP0D?@s5N(IpAY+@WtJtYHYs1X8>hbjG*q%38?jpUjnt_-?6#>4n|ta~e8>D9jsts5ZUQzXU?{Iu zhW=y|w>>aJ`NBw2Iu&}0&j7+$)vcb2Q*Xenz8a8Zz~z;9z#8LKR8aLD&bimK1&MWeldSkddeAiqj76R;f@u zuBp2NFi1J&fzRvLOr^w1y%8tCby>*^uB-H(cL`G0vHr%>69Rbz&J9zU08gN^qoT~G zgpNl+tl(M~_e^`!8UC`9kTwNcdAhu4M#;VYPy=hm?wP+6p@ELyVnfb^$t_q0ifK@s zjArY6Pvt7$`GGpM%AO$w!oG-1yvJGBxu1r&=Se^S5p$`oBtnc0cUz=8>7u$et4{JK znEBzkz~}yxG?Mq$zJ^H&=VDjIo@?4_XV~Yl*PI9wcJwL#P@z)*iY*RPIV}j(n_3Row4^2m!hEnNp^kw~v z%sA4Nw`4t788?~#E^eGzyTqd?w_bixE(vzE{1*+^Xu2cu9e=+-C=8B@<>`;B+ih`l zT*vugWQ~pR>uyYhEcL5`z2qWG{I1`g=P3=&%1aJ?}yF+ZN%{%G^9Kt|dRk(I=e$%?%NNCM*b{vCeAdzqa=ddAFD!*ku6UXFB5xS(*#z3um30 z;~vt7-^P*QUgHc`or|o+ccKZ?=OsSH_d@xMl#T$&F_WwrJ$amreu)aeCr>^r?Wye* zXTX+9)4_SP95S_GZ*6mT5WX3n*~+VAK1=1|J5PyA)Rht!>*KaQJ3R<_MJ*FitrSxb zT7q%AzQ2=^iKO)2(%Nx`j4n?41xj^(kBMPK@1a8Ku`9Sbti3;=Nv^iGLQTyF{e6N2 znNt?p1?H;PGk3TG&hznrZRxrNseH?=q@#d3oUf2JR{*{>OB5b$&%f#+w(v=h{A(ET7~ygAhl2M>_(= zb92~x^~v8pVQ>zkTn5Hh#5zSag7a)Rzfx@YY7zYb2G=aY_Rj0xyh8RDa^5waovAkN zU#tn|?$XVnSC2{;U8(z?;C8UDL&?r7tEcuuMW8<rBYQU5)#fORx~8k6_mqeP{}FVo@p2RSFUWBLO~qi zrS7Dx=Dh^HNBHhV8EgE#^3@)Z|2_8}uAX`gkU zw{kE~zgnC2|7B<*sLV7xQT@HQ>Lru~oWIIt>tqI3%{YR|WXy80{1?Q=rK40S^+wgu z79K(x?MxrG077Dme*i*DEdQPCb9Dc|uT+!HSfxeff0E}#a0qxzjYrCQf-b%^66V8g z9jd!YnCf{8%mcrvDU8V5ETo)Xqp8oDzHhD!wr;%_JX3_xB;ud1aHjROKH?q%r;#z- zs&>aKe$agZcjSNUYPvh$RUPjP&APo)$6ped3R>q0C@$9*{!V|A-KAAp0n zl#`!%DdRPZFL5V+yF34qDEGsWz`a!f<&av8K{qxxuQykQR^rpOZ4^`xf+tY|d7C-V z)iwXU(o_PHsXupPHT-*z!J(07%<5VSSn<*l@de&OWHsI**FX~eB4y8(^q=#eeXdgE z>W@U4w=W~@b1#|Guo~5qR92pm z{+W8%X&b<6s+LE&D<7`*=l*@rE!etVJj#>*ftC1hZWk*qM(5h{dX--;KFOG)7j|ec z{yj-+bWeK5&Y8;_S;!L|4LVQ03|O=w8E?c|y_48O@po!6)0BNOa<-v2^guQ&zcb^c zXg~;L`;KG9k`oq_(sN&?VL`<8GvB~z2@A0{CiUcWt_jm@_*jQnWM52|9h0y1INajS zgkK%DU%`fDHUGYljn}KGwA{3+T+UC!LPY(hX$xkO|7>c6nFDAonN#OA{M^cA0{(tF0{2`vLBO%G_fOG;uLo zd4{GAp(nEoye0{?Kcx=ig-7KweI!dON%q?9>408LaPOstoBNKSZD;xJ$!VirD|hfc zdNTtq*1XUsji5*QwEIg}aJG%6@L6l)jkZqWX8+ya1aVBp-@qQZ6$Tks%h$f-f9uO` z=Q_^43-EbG9-$<3dQEU+Pdvz?;Wsr-+SWckBJ{W1icq{OP|Oq(m^+h%qPmXXSwa%@ zbrJWXTic#{kSbzW?^U^L8@K5y#e*OAsux8~zTn_R8at~WL6tABZuKZ5wjJV8?mIm_ zp*hKu2o(geA`rsCKn?WOMtn#7*B(Qpm_7iqjfYbKN=tDvlIE|v0G1MEF(lZ@`wpOa zouFLk25>?|koe7mIl>8pnkK-D?_E>`&m64P7~01|Vltx}7JoRBoNTMa_=;`(@-k7C zvT;{$%QV}v=OEIv4TWD@>xHoy;;6l#(1@&~>#=;;-1 zzobcSL-WI2qE)tjzoY=HpaJHcMD&mev~4b#IL|AZg-qX|7i!KOA6pt9h9B27Q1H%B z1M|GlRd1$Ph<)D=8_4(0gYNw&M3!_`3~my_7FY!=v=l#Y9Sh_?})5 zIhu;w79aC5nUo!BQfeV3+f(d+9^-$*0zthztK)PQd`>#4GoyxFA8w>9=CqcxD6ETAWCYAM$Io8hC;msf(J7%}$+f9HxT3()o6mVw_p zC&!g<^8G>cX<#k=THjwz27`RYpD*_JE&4v{HC-kpy+~o|Q+UAYS+uoE@G*%~klMXF zzgpz)N*lJyPnOpo&0xpySI1-TM0X0rBvI)7m|ocAT-cG$IN>dIG?!pDgN*Etdx(?B zA1*27`KkK7X8BF`v8c+_pU%@#bXos;3(PuQ?lsKGdq>;!Li9=VU#a->y>BBZt|vAi zDewfGPOiAe>PP&oRJMw7IsIv@J=K>>(artrOn|j}g%-}lpS>6^O`@MbIKNBF|H)GW zU+WD*$<~w&jPo2G7cp98QJ6e;+7SaMxHT<2-rZWiGbTQE+Y8=&SzR2q#O0tQ5O&SXUe5*X>SUR;+6L& zTc3ltY6qsSBSK!7+)b|sJxjS6XWL1d8x`ez(|$^s+nvRPow7tflNQ%nYwdPeHpj%= zwP2$XqpKWE{ZCizIG7$<+`nmdp1TYdpR2EW_#9!c(p$c!)42ODK7uSesoK1m!(!Q75^OmzP+ znGLEmb2+RHqvL|kjIxRz#`7$dx7C{;CDNZbQWLaoV1jl(B3NNmI_Jg1XMmpk%Q) zK1rE6|B?P-@DY7vJFkI%vbb-etr%ITo+Tw5BQ$54Z|Xczk`>c^$1}eCc94PVQ1^!X zR@+?99epgzR~`^&0|fV+LDz|Mp?AFL7_AN^SD?P$>Hguo@Ob&K?H$mljqS1Ar+V-m zTPD|>i&`N9>U zCS3~D3_usL#E5_O9;#hReL1=dWikNUFpye1Y1CH*=qXflaQdhMQJUtRuY3pnrQ3!3V2WQ{+^36X-oe}y9#0Y}H;w()LNDvIY2_RHG( z8FY#SvG;tXeLVYd&oQ-8bRruae2plnATjA|Ip`da0p={SqyXgdBH;=@RsU9;rHTZ?ukr+2LJm{{B@crQqJOVoydJYh9T8fcrgQYPd-&}L zJhnUw!_s_ou8hVgiLqm>^>L~nFAgq^a$4_&#gQ@uUMF~LYv~@e;!OZI17HOD{5!h~ zu1soeh`_jfgkS4ew>@Ga`}^GGld{cGdAv^5uaMz?0X9I%zw`Hq*(>=UWCTiAIK(fP z`ua{>S|g_UD2;N|zFan4JS`Zc;EM+p?rLn~r+RmAEdCIb!xi@e%6_839XxP=gxZ!i zyr9zn6R8H(2O7(2V4JidxiGXrlH^a$z6~f3RE&@x8y+cv{lW%O$hRKgPq}#f06>aI zpP{bOW4XUi&7REkTf=5z&eqO6=AO;InZ^7SlPP_+ZuT(;I1)Q$($tGV%j+?_m?8XTdas;et^tQv++n5cw^*3+qp z#1#}N#wU!!-TiJ>j0BL`(T>cVd2}M-1|Tg1{5Z_r|7PU~lgx>BW@gMwkNHbL^32BB ztw}rHT9^h=s64X?BWwcV9pw?d+@!dF}>v#?6ykEd)=sXVG>2;VG@)D8t%*_DR+oXVi27X zz?E`=P`Sb4eXvt*#>bfjP#ex&qTnRBGnAST42DBm!Ed08Xmo;&@>--8QCsx$5LgM3 z@2|Qy8xR%M?iUpN$;bGV@7YXr>I+H)AR8$i)IOtQL<|+4d4psm##2U_58nsZf z0y)v?2fZ7;FmjQ*60bb2FlpNZg|Da=X*cWS*w4nhZeyE47E$PS7OrKK{HfyDJj}`7 z@L+236NNGqiq>q3fCk#)_s;PLMiOpxWH>#!TvZT?LW_jHdps^TIu1w_e!z|9UCLnZ zO7u$RpzE&5jalCt^}Do}T+MF)ElNZBo3lD$hUPH{SGZdk_pGS_0+YI-%(RgVIZ*8M z6x$+Wy#ulXuBHcoaO{9ercjuvGBALgS3=dyfqoI@$Wn>^e0|tk7k96-) zhU($rnHk#)bo+op?<$B$V92cP*!71eBLpTX~(%Fz}-poIhbR zkyqK@bP-p9YY`v#1EB77AlbOeX5q)|y4Me-iBE3X#+N&p>{A5MIt-f;cs?zq^1L=_ zeX3t?g4$jHRRd6}^%KfioVsdcNvqEFq8aI%({l4YsDPk8#2FlahOFX8AqGC<5%C>8 z_Y^OsK7Nukie^V-hKD!sLBx{U9#mAD_ey#oURCK9;l`>eedtxFnn{L$_dlU(+QHoS z3O&TG)89CD>jH;?S8smaycql5ReXo#M_;V;&$6)(uSGD^s%=h$Y#;Y=aEv2XqXMB0 z5%qORt~k+8q&`Flu733P&-n$NTUk-R%XfXi)wOgKb0*`_iBN`Nq@UeXz~(7m2ZwmI z8blzJ7SdRo;*Epo8g(E-WHQgq{*hSKb}!%acjUrXgil~TE@gVAL2M@6bN+u&g=W}j zyFT|7=q06qW1>Jx@Kpyv93ZPVgYsYtalDXkl%p?ReB{nvylYbVyGOqIl)Ge14pEj0^@I?5OhZaZRx54b@c zfkh4RbD#(rqKqHz+R?*9X_AzfRoLPx7{|SSpsgpREulpcK6-}N#%N1vY0nRzxim}s zRryxboiiy{=9KR!&qObQA109~Dbf{{$3{2Sp;T)C!8h+lM>?jQf!aVFqe6rH%UB4v zRb1ndxyi}NMQoj<4K1y_EydSAwk-}yh0^#8jvuDp zEvhvT>Ui7R%|EEgA4*+@2j$n^_2lJW@O7w#dm~t#F_BORADdN;PK3Lc6hCqY5)1g= z;^#HQZNG(G(RJLQU_t9Al9qdzhElCTGmxsJ@P?mhWmf`k|$ze|bWzZk5htxD;I7P`;k3=X{G971tI>??i{AV+(s% zf>OI|c_uC)?TEnGxFBkVnOmrd7%MCSoJydB{q=MJ6hwjM-(!x4@9XkPP$TZ^Yd5e6 zAZ2w`>R7UHELAv#!wqYk=Kwo<-iZ!-mwfjc&IQ&}2Bh!GDNpw~l{T(2Jo8@!|B%VW zq{9Bp5$d_GGFyzC07+a~dA`pDMa`T4H25d37?X_nriQQMy6V$-$_F^+@iA;HCu4Gf z%g^uRnop)YSBgnYpPJ*G=UPmCyB3BDw62SfO{g$dg9lmGHaNJovB~HIP3tb;)hQJHrWKc?4FPA&o4n7>Pix~^ zCe4_d=BDKjaH*4De!L=X^WrliTfkyMro#3??s6YmRg#FHdXXAlELoL?D^LKFM{w{-9kKT;MvqUkaw~t?Te` z;8Al=K(cl~C%WW9*Vd^jDt$x4Rjr$L`MJVoiaoBYaREuto zOW<05ozF9MSEm`csGl+o@~av};@W?`k!RmWIx~0u>tg zv+Rmhw;%bfdbsTpiv(9^Xkr|ehvk3nS;Mpk<(omN;TsubkOTo_n*&Vm8d=>1zD+p4 zviEsHBml>SF#zC;N2m*xj?~J#HIG4_-y|_%eGmWbW$O*$_99~XaIgCWFJP&yFE4@9SFnhssEFx5z@2`G*(%?%i<@fYsq z_~XW0a{=m(lh!|QU;o9b>j9MVXirwuIyP175O9GT+1<~@#n{O069ME)z!u>KI?-}o zk69gUNA?`S--Nq^RHOQFmjY__xGa@wvPfMUHz}aH+pI%u0-2o-G80B}JJ`$J#nS7W zVpX7@i;Jya)$K5Kp`{;ObO(wcpN-!)m?oh-2*4TUwYa^&V?4GL)%WruN0N@PfdogQ zSVa7x?on|+hEE)no@eRqr)TKMjDb5s>6vkWY7=_NxYjeT^NRp*dcFm9ChEsk@1$XN zYDlHPaf3z1Mn{{o*^#j)#|IMtlKPz}oRFczuoww_V3I$_hnCtm*acqrgirZ`FZqUJ z!?DS?`3L@qf8?J#0q>n9b?CX)-$8uzG#y=@c0h$-jvML)Isv)W*wt*_s;pthN)PRyLWHZeH?ED*kTBv z#7ON3@0HET29|YsswCH!Xst9q5`}D*T6($GLhG~^y9EI`hM#7bR!1eXda7wzS5=qf z)@C}oWQ3EpSl{&fn%Ft=+Ss1oq9ivIwhT3`)n@dZ#j?4EN{4fe$(9AW!{z;rY;t4rlS(2}!DYE?nW<$D4TSR|ho7AJT0YX^TwZ`j^-9+OW^l z1w+t2uX+9f+b%r)F3rPNR5;3B_Hlqi9RBHus&Jvi2{6rjHsL$U?X~X`?}ZI;j=Xw9(XPK_ustw<}hVs4%P*ev6qCN|S1JQq8g*>nWPa6O;joL4HcKGWv z=L1~_VAT2Hmb?l8Sg!eD&S)(_z8N5I+t~PuUfqa^oV@WryC~C08RXe`&^kfZgKfbY zaT2VP5w0%W2)vO)GqX9VvQcF>|IGZ<5D(hYV7Eq~?5PN@?}>>8x297>dUcS=n*VTr zK6I=;g#jZT7C)QWz)qfbbbJr6_xb6P>JCgmko4amleI7QS*UE3>h5>rA3FBuFJrRm zzEpNJxU_!Sl?SPz|9MdF8UUPGH;wq_Zf7yGOvTKCcIg)QTL+VeI8hCrL_OX;^Ap&S ze&@jsg>wtL+<7wm9h%?JX8@+IMzq8TU}`c5(+c;*t0p7Dq|C)G3`lai)o&Fma^{j zlxHyX?jfiv#rDmlI95TNc1e8ZB>A?Wx^vRh49Sbsj9f0I3%9Q(MrSsrVFDb)+3N7u z7O6QgqqKek>ZL~Tx4^NfzT^YRui9xTdnqreaH%Az2C0Wo z5vU%N3{8MZ!Q@~hxCk5#{|x`n@^@e|@)hzUDjf9$EkM_zJJFZW-=$ln-(ql>6PO%K zC8h&2j1|F}W1X>K*yl3JGI}!gvZrLJvR7nhWFN?G$o>x(h1-%N$z71wmCux)mw%|B zu3)S{QSeYWqcE)S0y3pgVs&0`&w_b{?ImAio*JJ9%>ZR!2(^u3F z*FU3Qr9Z5HOMhAaz(C!=)gZ~B)L_IAW@v6$W;kj1!3b@1(uiTiF?Svfs*`lTt+wAggY^lvjcvmmoMvpsWD z^G@?g3lobDi%S;M7AqF7EIwKsSV~yRS{}DFwxn3PTZULBSY}ujTh?1%vHZnK#Y)F2 z!>Y)t$Lg}xq}6k)J+dU(f*emyBNvcs$Q|S%@&tL7yh?sSen-S6#BSVf#%{&#`IY<5Zr|>w-T&S8s`lRtZ=8LX z{k;8qnmEmhc9zylTc<0~Bk0BSA^Ix)DSeCn(E;Y5?_lmgb#Qj@aR_sWb4Yf`b*OQK zJDNHMIkq~^J3ey!KLf!~Wau(17(q@1r#Polr$wi2r*F<7&PmRh=Cixcs7oXt*!{uo z&vyT|`_DU%yYt~aAMN>k&$m3M;AmPKz(4`efMNjP4v0};i$W;(SqM=i!5pAb);cpu)I7QAsGAc4Uh6an) zCojg6Gd6in@-d}GSz7WI&E3r1%HzWcwTs9nKlju#6!PzK4sZGzzVrlt;XZ9G%2_tC zTIn|8#}#VoXsD2`cY;vU5*BjJd6$}Zb|Hp}Es2n@5+24kgD>Tiar3S|*HP?|?u^$y z`%&ikMIsXGD{{U3&SHgQhcvTQX3bPE0g2^7#CT|lLEzn@vBVg9cH)A#$>B%Bt?|tm z`}mgDG(d9fqBM&O%%K}#g=y13` zX6$@S@F2K;H6?@eel2%y9}I3wH5nBgehWiP7}!Eau-K3mhTA&NKpThQ14pd@?c}IX z=bTqablPmuO$cT&Ax6|lgaumBe*&#e<$pVOQbzv;pM4SUO(u`utC2kN5Z`KkHr?I8 zjtH9%4jF0t0&yAI#g}Rs()0}{3J@NfQZfTZiZlPXveG5_KxZcUR zThnRePZ%%GrL$92xlFk^2IS(1jW1*+2&eR?2yj+sJK2Uk@gWc zMrjB9etJ1_$Ice%_sdYChSl&nu$rt|3m3`Q#=y*YWTRlC7QJyZ>x#z%yMSL6vLK?TJef-)l-1K4u1 z{YUvg3RIEWV+f6Fp4&fIW*C}cQ2lBj*tQBlC1)??-h_S$t^|WnX;85j>3Bxw7a~V7 z*L`qZncHI&cP9x!pqBV;qKOi6ru9z&P_P}Y@H@VzQD1VyCS(RkqLc{qo z#}bU-?zKS3WwH)=>m0fl;lyRK#eBKWs64-_UXmL(EBzF=WVj{Awf@;hr41T<8}zF~ z{kta-khwg%Zm0ruXd}Zd{h!zc1Jevvo0X4bU4oJ6!bpi}08iVQe@h0XUq2fI%hKi% zL>(Qi8eZ7++wso%jY3BZ z4wzT3!slmPf|c!(VOSi2lj7RDZMR9ECR{}uFu1DX09`nDW1?(=6z!FfNRN*Xv2el*W%4;C#9#72F5j$Qoks0ao?oIc$Z(k_RB zvs;xrs}484jTt;zjBXPJrESqLD@SbrSXE*fN@JCb*QtI$A~0Ek zy4SAyT1vVDrmxMZ&@ijIKA9C;rXPHd$D(Op#YM|Yso5BNxmsx17^6a-0e10JPsDsY za^DZ!tG*o=NpF^$+Xn|~8Y&{$+|%)C5gbOYbzxfGu!sez23f>|Z&fF2u2zE4iL|~C zHZ=~YLd~>bV6{hJ9cTg$SDZ=MJrfiywai3H9{_l9#3B>NsPMQ`ZTIs*e9{_0WgTE# zNk0I6?#)epY}S`)su9u$&~2EZc2En62n?`&U=F`_H9G<5tiJXL0(x+y1~w|SqsLAY zVL(7_)6m%jBcVY@K&ucWR9TSFdl-CA!Q6nDW0atLd>Au4C6#3Dq=%q`&#Awna+-E- zjZz$~cinW24_ST_@^c_>md^mnW7S%hxJF?lB8Tq)2B)_m{IZoDj47%djVunraoY|p z*U?2D*c?cb(7^3Px?}6y1HWEP!4H^_19TyndTVs@X+tzEd3=Oz3atgD9}hi|uytBN zlsf+JB0DJc7642!4Xg|2fg4Te%-%6R_(qsrEoSH(HBf#t;jLXZ+KMh*_I2sk(bbu` zEcjX*>>}`t6pV^T_*W?(wOQaZPU@PnpI*R!_~3?#gI67NaEW7&N~<3-5T*#u@`MC( z6-;?1+a|k=^`uY)tN|Oa=HlKl*~SWCiRI`9MmS; z{FMg5Z!V?Z@RDh4Qbb7sb3D|XI2Yxsp6{NCFdrDc$^|icx$~tn3QXp$Y#g?Infws( zfqrFpoZ8X0b&n1=wp7Qo@}P!U5xkOOdsr*PH(W&XcvY+3p&vIts_4t1)B1J z3o>d}tzs5A3-&uI)qti)TusJ-y?n=hov(?27oSd6V(afP!0Z1=zv-xk39S~zj;oI)cY*gN=6iwHC^tr(lEnXQDN6KQQ9 zj2j2Eq3hMGi3b^#43oYt4p`Dm^uprZD=wb^*2>yCGHm(Ea+HDrYWhNs;X4XnMk!6b zwP5-s*FX1Oy{LX?21b=+bsU)|Q-nk_nm!UD5G`l|s1=oV} zf-*;a5mb%k{V3n?r=4cp=6t=cs-8#?^)|}jBB8neF3E{vM_-XE!1s0o|Te3aOa+Tb)}0Gk7M-u-luBqYXgh z$td(T`gCCIn5QbT=$cpdkuXTqaX10_TSrv$17N=S+qbvF^YxBY9EO`*6c=vT-p&&X zKRaE5*m~~J84#v#*C%Aum!ohxlERV_6rG1EG+H9$U}S@$*kD977uGmy{$qo}^1rQs zdMMJ2oViAqe4r&)!W|RuzA^(mcJMf=V2c1fey;k4VaTBW1K&X zMSD#0=Pi{t{6R(@?FNj>FbWd9fY-W}1`Tl)^z-U-zbXLC+>0#h`%7ZyGkk97U z^L7t$xKDoRtdtu$uDTU5rdvfJ?K@^z2?(GR!gt#N@!$_Wr}$ajdIi}zVs&f%$xsd^cu7%o!%s7H@@;)pJt}$>s#zbyvF15PLhB(YTbNtf zna>8Yjd4Wv^bAWN9WB$B62w7fRF<5>2FhU3BTWLD@&r=5{z zjfTenW+1Y=6B^tlY?D03vCR{~h(DnU*r>8bM#PBkeX?wk4SE!!feC71jMg_@kP3&h zS_mJqUC>DSbQFNd>X%vgt=P#`i3KFe0p+MUA~*OwbM(yIcFKUgU5au?sJj6reax|u^D_^Ji z(dYM|K&2@P@F>#U`9jJ_v%M=HmbQ!jPjx*58@(27COq->$ADI7b(C*dFA{At)KIKP$jLBGYh#K_ET5Ms8ODwC?3?gA0N{O>zAVSICDk5>CkzQdFO7>M}vp z9AyC-v~p;Uw&S2LBVV9%y(WMYxBejy5lT?V3_!~#WcrtCrBGa(C`KrR9{8$h!!%kl zV<_0}4qvu0w$5u{6bmHO*FdD7KCXEYl?YsDN*9x1gkWLd=*2QYLI0?Ln(heT56_81 zBDz=;o3rG*V7#YIVa2K#jD8yZn)WN4*jl;4%WS1p;=(b{z+6p4YIKfgwC^>rG^(Ez zXtfv-y(w`Z(lg0SMMTN5Ac4k8=Fk&HcM(&yg^F6&scyR=5g8s#$$6#N!8>euRwTAVrX0_rO2H7Zi5}^&2pd%CL{G9sF ziVq&1b{e%GeET?Ubs(jQ!MQMC+QpdOmy(nFDG?;DqY3;^rqqwEyg}1wO*$j5-7D0{ z6sq13^)}Gx)0U(Ct|R@!r|gmOq`8%X9&;972Cb49ohaW+?t{h00e^eseI@q)pm3sI zs9l)NHmYy+4?BuPuY^5d)aWWWw`FqK+(F(oWV5vc`9I0k_wO9{D8s#d=G!@g7Vj*w zpIAyHpQvaPK}v|XL$bYe9x(ak`MXCU=sjlde>aouDJOoSLbPCkp2?JdYnXQthj;i= zFpq@8;SOW;95p?LQck19L!w9UTXYetKXNyqrFV%Z>@F=PcuS6HU3SI#A0rvF2&aU? z5k>x2hN_R)T7a`Dyyj7@ujMBEk%+u4aPTpX>SM?W+YvMOfFnC&?-_1~maS%{h+@D^ zoksgH*N7R$mhN0&d13}}?(OOM;r2BGaax5d^$N2eD z?N|_HB2%%S_PbBSavE?y21;>DwCpsCAmX=)M6FxI63{ox zTujOOy&_P_-K#0{mUh2ke)+Ob8!vG9b{FLBip)kbJMXe8Czl?_-u+`cqFE0R&wsG zI7k8$W0;0Q!3B6)2RGluGlRp}U2o>A&Qoj*m^46!gmS`HLbFJ62h(+*XuxH-%>kZ+ zn?7u2Ksz|)1gh_BTb&vjaq?6Jg-c`enY?V39O}1fSJe>@ZZjeTJ}vZ4Za#n9dSdA0 zG?0obQJO?=4iQ4u^+iSMFm;#5VwVd0tQK_Mjvnl`dD#RwN)WSJt{Q1C0V}QSl))|I zOc2t^0k*t5xf?bpKNC~f?Q{SEFE=9meTXbP0I!owNm(jIZ1Pl7%Ap{?P(c*NeVe&H7vs9fIDZ z8?M10-lIkA3&!$YIgMp6y{BVh6NtqvO|C?92hGwwJqiB#>91?18#qvkKMai!58(mT zySTbQf%g8bY%A8S)Mdi~8CnuZ$FiLH`5d2i?OK?L?37&Fhe@e_Q9Y_olTQC{O0TSv z-t)2pxt+)*-nd`BDcA^q$X2zceEPU}`kREr-Zk(z&V3y4yXicWV%nZD|*4UIxl+~UIB~#ha4iNw$*^USj4{sAEOEHS&a{#3x?0G4&;!J^G}+rwJn> z?XM;$<|;7h*gF`v~-~%IN$c~pZ z1=lvpJScVKO2XnHYa>OI3A=w~o*f^(D7a5n(IxIQA?;QYvnPYLsROM|NjLFu1NNu= zVcfeN<`CpG91hcvc0^gr@Tnn9r5SU5?y{>s zex1eo#XP7zBf}0xc31_q_}>BZa_}V^Fh+AkPEIw4ogU_vMKY|~!bcTDS%agnle}36 zT1AN@-by04w!Znv+LjGD3P}T_>}mZdE;vV}O=3`DSyc?yHOk`GBIq4st*cA*to`Zg zm}R1SXs_KeYW|8@uRy-db_yAazf zWjM;0l{8SG`?GV2tawVN-#5vSq1td#a&VzsJ!ah0WlPB(=uCR-cRucbci{(jGnyCx zQ+iEt{1kNaeUe65m$3!d+;&;FQ@Uq5zM+A~sZAjMJPM=Fatj63ih6u$h!G%go&c*j zVlZ_FLr@fX5ML~uKsmXDztgnpNuy9ekgudCLv-ctGLZh}czk1beVZKKus#1f^}u!s zf>#Zy=Aax04e1{zC+eaBL%6XTKSk-C)G46^?mdyN+Is+0qCab>95BV`aF9;$jrirIPB zD_Cj*h|7ieu$1QDI6BPW{Rt@GC@F83$ANl%B?GNhT{i3Ub^7 zLMFt3^gx!gm%zqDgXNn~@G4GK*4Jhh@j!2WgQ1FuIrW zPFUa8C6T;jlmyUfNEAjD4_c+Lr~zmvlF39FtT&r$_p+}S`SxCBWu0;g5bO<@ALz@l z!;?5SQafXH2JcJ>a(We$o1BVItbK+=s%&om$rSvgkxNz|0q<^4p=X?unAJ7 zz=~3>VEb=irGD&A-wb{uurN`HquurDJ7`Y^rkDl%eVR8m#A47l5LT_LPu|+uw}Kcg z{jF2p@^;kl7(7Y-xZ$U=CBxm=A@D9?p&i_NaCTO$;!s#p`ZI>~Lif0sQx@;Gb8aML z_Io07RyFznyoBU9h*Krg5(%Jjb6Yy}g4d1lIzzc>I@|fHCIjlE9SmvU2o>;56LPFN zro@+RVni(r2hc^~X}mB*Kt~mqx~n{XM-*C$1u+X4 zc2tTM&3E*bRuGFI99an<8qJ|TKRW8SP7h`0k{G!u6CW`nj)a%m%r<6d$K4BkHUFgWsIo*|){@qJlMU&l zRNyFu!GIB;AvHXv7uud*qpJNtx$K`bTreV({Z zW>@JXvSsvb0%KwY{*w!A4}|=AUFm184o*H9HXK3?J=pMwsynoUopjnQ#1Xn zY)|(7?ZwnEL~bAXnP;iby<&hSa>nW zV*Y&caaC0nU<#xWWI8wEh3uFx&OuJbkWT-OqEQ-d4nBeOYf*?}hWTNp|REAAnu<0W?m z&Q@cvDqdBTV`+yWL1m(yto@kRUU+xxw3=w*O_ z??Msm=VN4))scn2v`H^&o08LmYT~z|l`;K((9YW%dO1no%`G>jLpYxadtE+h-PY%R zzB+C10_!)(8RKi2XbIL#Q)f>rn?Cv6#w~;%Q2=8*cbwQ*GoRu{2l43z6zSir5J5+= zP%9V|ydb#SaGZ2M!^DXI>R3+2+J$T#ImrJi$N(Cus z$ZKI56q^Rl;*dfw^srl+BD8g8hGa~9%qfB59_9b$GbFMy95Qe&H@EgOF-F+QB>60O zI7ArCAyt?iJB$BT>&Tz{0~;P+-!@nyR$SbrXIQCyu3=VDzOn6v4*lH+;}jx!PEnar ze~n1RI0cz$=q}6fZuO+&Rut<8%)3qNfgscvYTfA@9i7c+xpjA&gcwQHk(>k9Si7sh zw51d4#sR_`^ei0QH8%qQsg~?@ER}iGvlt9-;=mUR2sTfI|lxL(Rvo3L<3I3}$gp!S?cB zz;B9QIVtD-nzCsMks(gkw2~zo6TJcOQY=g#-Ry7~PBKx(UB1v7WE^VnR-dMfQVa!9 z)Z&ZX!Re~Q@69u-+HEDasmr^1Nk-HO@Z*=^mg@bJ;t5j;!%^lWO}!=|tBghEiD8P^ z3AM+Xv8Lrcn(op$B321bP5oh0<|jtlu$`KqHsHT7YGJgg8l6C$QE?+PtEshZQ?ZNEzeW6IST4?9C znqRfW^1I@{KOW%-URm-`-*9dN1m_|p_)58CO##C9VzF4I z+p;KPC+@Ec_l_SJPDaWp&`3i=wjXFKm^PnZ$&!jpRvY3P%OmlhzhG190;~}hs@|t* z!go_q!lwj;;6c-g49oJhI+0T&DSt=|G$rkc0~5N7BbKE0Jw|(vW~P&=ivdsKWz+%k z?ewC;O`o)W)-b~maeTV#zeE#E=y=TS#5o)0KrKlqP*o0R>rY0gkespDcA%3s$n*fO z%;AukG0Dj5P$c~L^wKOM%9yU7#QXv>*jM#T*b0YIhPw~QX58?OF9-ucy!GcmH{fsU z{(_HGe&-~s{GV8_!J7xaGb6O%)D0eN)?c}pEY8U@u|-YMQQ zvGK)YqaPa_$^xnQvaKAVu!pLaF`;P-L@+pL>MUF5x?TqXP5Vq;$!(=~a*i?`stb!n z-0g~T^a}X99a*!H)$;HiivtJQI0<8Ow_iE!l$r3V60tOiDtxhm^{QII`dojhMqZb! znn`gg&*#jY$k_>u6Gjd9ZD*?#c6Zn#-4SMKGqL)ES&;>>Pv|CQNUOkHRuv6=#gZW_ z5DJL_&K1zg$yckIafe{$S3YpQO@SJRr?h!EIwHdg4&Hj-U_Ay;-q%<#?=H(NuS2hl zKx8kHJ4-dZ*!^Q`^d;5&>+x6Lw-nE_o-UVXRzeR5dsAr&YWkJk2$hGc)uKeK($#q0%kPWo)*2dv<1SlJxa%;Pm5^46{V_&@9Es zy(B_@Nts*^TQak6)uU476=h*QuKg zjO#kNe;|7G$>VHEVX`#g2CIlz+)M);f>J72`#0u_Wr3~`)qGybu-{JL@B4A_jg7!; z0yZsZevv6|Q$X8J4m^ubz^4Ggx9K|Mif(efG8##TW>^EOfjDplWcL!E+>2?s$A$17 zMdWR1#^TNSKmD|_W4?6F*E}JaDqcV#+mh$|6xFyQ9sU{Ml`1ouL@BTa{4oc+hTxzs z=Sc7$6;7LAO=0t+M?E@@c^FS(FFvMesR#+^_v+t%x(T-8ppDHxwT*OGp=O(iuumXu-q`N=1)kVuq)VW0j+(bj znQ~v$fx^*?@GsPWh%8QP^44DOmCwqJw!SAcEhG8d8_T%AyIp3|!r?f;dHgCwFcNuD zScW`huIT-H+3g(O>L|Iz{8jhqJ11S5aXu2f)+}u<%ecosyphnfMy6aM4Cb^HQb$gq zjwoKPMDuU863WZLvrr>8Nj`G!#a$xC@ij`%c^PfxJx8sH%~m4ny*))|@>2ZPkY=<7 z&w>8=yjuQAJBy7jsjO)U)Wki!7;d=`h}h%TU)EcM5|vwW2}aYi&}TFlKYVG&FT<6gwUm$h}eOh zQBpnC^eeBmx@QoM1Qi1 zxu|N}s1!|sXAL9tnQz$H^e)R5aEO=*b$4uD5kw;1#o(}%1o4**xasn_j}VTe>Kvy_ zlMQ_Oi@hNbyWvMYI$?Fw82ksHb*swOd|ogl2^lZp(h=ys!RwU*N8g{gml>$1l}OXz z@O{Q5l)TV#2HnbqaKL}{07}hZ?vXXp@f@Pv5BfBgk;iC}4!Zh)EY`Cf{2`g^j+}oL z4&2)bwe{cpVlsW7O4`nx+1E~$cld3u^GC1R@f1BX`XSb|E=qxd;jpsV zn+a2+HU2tLYe@*!7hu zgy8p7IdjNC=`b)aLYX+YxYc_~4SMFVWC;NH*}=-c_BQnnWbw8`vkSR{(p4?+bNqKB zW5Vv`!_%`uWABzuhlubYvvdzeKMYxSbu?=&Rw^Y)7QvhyVaXmz473jC*2;`VBDNZ> z+Xsam(KJ15H~Wx+RYK#snya;I!6->-f7-BJcN2}n1Jg(uJ2_1Azx2~ImD2OiG@&WD z1xa(Ac*#3JmbUO%-Ibhr8gA3@bd3<<3+;Cv_?m;$69al&AF-XalR~Qu{;%yn2(4r9 zVSBAxy5=AN*cD*=rh3MFlB0hQm(`U)pwo9^S-f!mS zc>9hbwi*NZ2>fZ|s#|9#(g208l9-C9Soxf9{`bjtKT8~C)G(!0{me9JM>Fjhx;Ll| z+&@EdD9Y2{8dlyueRW+I%37#21n1t**7n?g^x*;Hk_uD^s3@4ZRl!egFYIB;A;-&T zv$blWAIxIiGz}2s+fKh07TrKk6+3Vr@zWXLw`gn2T`E()R|e;-1kSu0IRgZ{SdT=} z`{OhEq6j7UN>3MbK1s6bE}R3-`F6%o3NZ_-n;&H1jaN(cX(?;ex|S%(S;|EYsQ>+{ z&2Wer7U1pP9WRJE(4t%$lj?tfUW2>6>xyW9P`3O3e3#sdG!Y0vT=z6EB=nW<31f1P z*tj`Ut7ZW{{BodxCZn??PB*ks*9Yoiqdy1>9n=l^j8J8GcI0YI>l#QY%`Iv&oXM0$ zq+Pb#rw*zK@)$@3ehKtWT;?TpVLJ7Q2oT-mbKqbU-A!Xf@eY=2oKQPzZ&J_`E&ONm zGMdSO5FZabB7APAC8FXYY3fKGX>e7r{vHi9z;Xik9Y=ByK{}~oTcVUJ-wTZ7EjhAH zBiHYKD>dHQOc>K@EO9e6 zj)05CZbjS(;N?0JhkB(+iS8m5it4nUmc$M*p~}hpaosOc4TaOJJ$u1=&uXS$(=(EV z=~M@vlG8@y8#I_1c#6dI@i~SHCm3G$)HiqmlTh^a=awRRdo?GIx5^!L<2ap-CrHW) z{7`p#CUB)LY3nWikYtxID)VfhRYSdP&*^SBSTXtd3Q_Vs_+|LJumLs!T{EK0;|d?H z9jU+_WE56{4SmSd?&3SrJxwr;#~sKD5b?#xh&(9!HC?jVT!4O6epQN}x(I`72G%P< z!(n~*^zx!|mABtnRz(AJ16lP-n$qA`mfwOf%)}KI6!8t0n@=eU52Ek7LBD*f8tzIY zdmj=^;GUhV>VCqxCbk2~Z9Oewy&NciV#gdhk$pIYk$3@rB93)H4sHR>58T!MIEcMo zCS^H`$YA0eHM(L6N)G#5lB11o0!!YDPDDY_1oe~^MqUlguqv+h?dMu4K<{dE_ICnm z+LpF8z+!yq8Z?34jDU{Mr}f%6@_aP`o+=MC>TvQHX{lD)9_dTO$1V#LVM)uY(!VEP z!QqMO)O&KaiX5)UoqU-0g<#QN=k1CqZB)Z$;(kS&p8u6#_BQ%TyK#+P>-#Q<1&_l z3gTl?HAuW~U>MgPIeg`zK++M~k0i`fP6Z9b!%Q5r+EhW)a+*>|VC0@P&=cB@g`kn2 zfQ&?q7bm(nd-q|E<_q|O4Q8eCt(z;=5JZNAH4q`JB<7r|uUV-BUA>t8Z-P7NDe~pl zetchY3hlNieA9j91(J8k$MS;Dc6Oo{-!Z$Iy2v#Txi*<+*x$x71~?GN3v_(vbd5|= zN>WtcjyiyO?`W2u(_;Qft22c0tYTuC!`>`)D^IZPAf+t_-A7iVI^UbC!%5G2DJ(Bi z!beJHA`P6xNTD-aG}dZu9Z;&i^`z+_Nq7z8T-n&Y&s9m0*5NTzKl}NEAybPd64BZ& zE=7i)-p-6f5K<{6SOamv78zM7A=FqEUrL>Ub8oFr>?wbta^L2s8hGH>;HW1{U#;){cmp7d$1fV* zr!+`-K>{({TF*z2FNuP|f8f`t#)M^MQH?*RGcLhn2WHZzcbisblIq9YXuiMAs*K7% z8&S4Q6jtZ1aw<*2NI1-$&bF~~Ner=7q?(Ou<~_%+%I4u_cr+8?CHbWV6q#Vj?#yc< z$>be=er7@H*(f4fwl#h8Z1&SCIO(9TXi)kbr+R*U z97XnHB|JZ7jKMYjWvrAfUPmo;1lF`5S$)L`|s)dP`X%|aV(0dPt?&7W@<%MRhoW-2CO~(-6Kn6w6n=^ zVrPN+kF+ET8>&jj>c=yObF4cfG4tyrYR6?vK7)6bkL4m*D_v8OUtFJEVimQY`21hp znyAh@YgsF>k>_#}icN=)5-H?yDM?T51RIythN=4hKv+sNxeZxPoqc zyfw-TL0++d>#opPBdtxBssk(Ycte-49*<&{tQ>WoQ}#PQ)z0RF5J$HP+I*r>pLuSG z+0`Z`@G@pqcy{*%O;NPny;`|zp^LJAZy@wx@cy@8*gMsmF zg-25&88|D`XC$$Fv>K|deg0e^BrlH>4jK6}@LX#EmrtK~`+Kwgc+9jM*Ll+a3oEVA zwO2Xg4=S@ll3>XBZ|0;~5zpgc#%X(SISPC~Pu|gM`>qp<9awvZ(ylwtf`)cw0}7Rk z)Mlk#Kv*5U{8J0kXqDE={e6z!%&?#WgabSdG{=;x?I0J0kwH#n%c)$?R=(}OJgSrf zwezIo3ERJKL^Gt#c)4J{QFtNsF=#=1R>w^BIU|2JekAH@M8O*w^;c>p4B>oeaj1JR zr8|f@n&}GbeS3q8ByQhs6Y{b=r)Ie%%- zSYKy{)Umg3EHksrfXf2(Y=z%_ekSKmT{F$ASB9;zsrjYlg*gf~Jvjv; z5GA)L>I8sRWF6784=r-u@0?@0iz2{^XpXi;H$JosQlK8S^sZh-0;0(O+dcn2-c_Ny zo&_~Bj4$uBjmsYKh?gqGPJyecq6Q3jJ1&>&oenZzNm6+$Ug+N=UCt0hxdJ;s-euE{ zte~?d(Z1^oBp~%|N(BliB(E30L=|>jLn<$lu;i=(Vn0>7a@WU{mA4$kb%(jTS+p6$ z5B$3Js1Zha!C(`Rp)7lBVP=y-8|182`T}|MbRcDxuAXY(7F_43^^}y}$EXC0kzD9y zpCaz?Zr^`A8||Y=Z7>(j*h+Rh7W*3>Y$;(1Bvxm-WA!zfXr5ms+jGAoeMOAX@s@sGF_RM1$Y+!QDd&|J^x1 z?Z75$_D|bPASQ2W`(t=Wj#LBr@0gE7YBKr7R8f{;9-Ca5$lGG*+kQLIsU8^bXIBtVL81Rs+Z!ggPdT+=T zpf7m_lqWt+S%-fKi4`9dvQqwE1YF~Q+q5V&s0iH2+p@(b@LQ$@MWjUA-bI^OIit8kcF5H=}32z37_kwVCPGcTOw}pBa*eD>+Q(Ys07a#n65ShkHkiP z<2VcFMnH<>>huUOOGOHGl*RwI>_HZOIncXi2JSe@Qd@C3rSo$c4P)!|WI9udXZ^OD zf!d~C!P{cx)iU>WUnlwQd7E^d>92)~T+1K7)0Wv-!joEvqcjTaZ(miY}+_v1CiqVH0)2_v(IUDbLbL|qnmL>(TPNlH}zXm6@uWwgQ<#og1b zpOY@+)p#vzs5ovZVb!}lZTh?6?s%cF_z7D=%EVCIz(S4P3Y((4TPn}(bRg}pvK+Tt z4z72h;k&`itl2dqq5xRzN2}oW7_icktA+*8T2}6LO`hry0pAlup+XJPZFW`a9!QEO z>MVd&2ZI;law#Bnjpf2p+|}F_^=QgU>6A^@mP0fhK9PO|Nmy{dfyT|6wD9UR`j(_? zW?Q_;u+GD_x9_%}{r2Kz2q0>zQGlW*ex}VAn;|9@L*WbbjDc1JKc|zR_Na=eZck`~ z1zmaaa;kpMrYYk_-9`)uuZDF9P1_WFjwNXcGF2SNM`4&d%Hj>9_gfGSmppNRR)~+H zgc=b&3K})&SqI_1!}1~QU$E6<1{RKRXf$Bs$P-PnbdU~4i=l^cQ2LLw;0e_D{kY&Q zG0-?X{IF8hy`BBuJ~WoM#pKGRFJyeiwVSt zHM-wp?0w;3CZ-cfnEXSL!nRYk4K;Ue^|mowI-9iUU}&18&eR6HDG~^nFDqD|=pWqa zh4WFZr4T zopFyQv>maz(^!v3pS_}W`s`1!;Sp=f@r9OsG`vE5z|hCgYg5ac+3@o3+Jh+Lfseax zrx0e2Q_XlJf9EEc-Q_k?77E`_aW&C<>B&;ALqrjf+}Bg?$2m6kq%LS5oE=PNM&L+5X2lR0ojIy>Wl63U$M9{2S=8C|cp17$(;QTxVPYb=lC=9$ddYWe zBpWmFLyd{)Xrjfd~ zmO{6uti|(vpYV^@-=m64ODiXc^(!;`kls7w|58JW`BWUw`oqyfpTG8T{k^w;YTRwi z@Fq%s<7;4l;4-o8ZDYV~c({2U4szyU`^kbOa>sdG#I}jZBgOZRM5sF<7(H%173C|S z<@R_8+5Q@}c9HO>aUUI0VL-On_mH@hH4H+_+rPxv(d9VCvu0n9)Xa^>7#PeX ztkc`#^6I~$7FRU@z|ckpsDo1?VM|$gHdsAz%qe7RL{_V9EYK;)9!v`iC8;cYZogGB z6!7G4F^=D^_zR2N?zZm)z@?%TeL3yGYBW*mwms`6UzhU?G0(&Qcs7rhK=tp6FRtXrL#XZpch^-Zk>6Z0-f5v$95L5mFwWM#axgGTWn~>CLrm4 z_K&W8V}8%V?TcJMM!K{6y1(emIxqh#NGHO2H7X5Wmyo=D5Z>jMN=d@}G)+g=q%~cj zfhX<(uJ~mSlBv~wHAxklm|A4rK(17I-C~+16T!n@adcSU1;r*>Vi?1FwQ40g(sgDk zjs{GJ3$R^GqXvfY<#h{CrHIYTG8E?5N{P^EuhS zeP#7gt&mkBHptf@=9ml=DmN$jo=ykA#PB6*70PxLUPIgdml|uG>ifaHa<`Jy2}&9n!fj}4YV6o#l(cHGMR{(x~62y+aCVKu!uz7 z9iHzoFjSXxG$4szBsqu+Lg3Tax=UrKYm7A&{v=SNW14_#Eb|B_ekJZ1yR;Q@9)(b* z!A%%D3CXd+dW$$2q(g2AkZfByxZ5c)&R%x{IqZS|Uw2wNKm=#4Xh+MIJk@-}!0nXA zkKPPMZHmb++}IH4gsK+o=k4W1rF!^<#fO3u$Bl>xo!x;dbVzX zGzNhn7YA3)Q7pgvE_SF#-OH+hlqYx2j_xtPLZbN4oZJckOe`0hxo<{-BRcoCgRI_~{{O(@Q zShKV`sb9@-EJI@v=WUYupee9yfmg2zi()wk+U~KtI$u7Zz7U<+v91+)$jd2+ABMq>C6DQ)e_b%>>06A4{u@5n8xm@az|YL{K2JD0ijY^>_Yd@a}V z`nZ+0Z%kPBc81t8lpF;jXdmdK%09C$xMy#P^z1Y6z$n}ShshwtCKK02^0<)YIi~dk z(D}t_7P#sHCLg+bv?nQKbW%m#9tw|cAK+glL1A)K{*N>WWiAbhb$~J&Sy-Fz^X4ZM z>hF-nHg$j(z*QEd4QuoZtY9yu62ojzdWiu_vE=A~@z0^Q0kXgLwR~k}pvGvEmcbpL zY@_*t2|v&pQ5qSjf131AzD&H-T+92;3wbcuRdK5?kx8&| z9Zhd=5jD|6J%E1u^(AGe^wFPV%$lX?H)~vaJH4x56~g5bDlHzP(uI5bU!tHloGwjE zVxuUp%%#ngAIF*&LmM@nsS8A2va6PnXp9qHF~LW$!UzCekth~cK@-UGP5oMd0x3X0 z44-g6bSgmWC|=@slG`x@XHwGi;8DZ8ZgIN;UbH*UM~cE$)(KXJXu~i|52o$B4p8(W z=AqqZAAVWdf5N5iC;Ik@?9G7)=V4f+r_$7% zOv5feQ3}tlm85C!j3r$uHxwG0 zDJr+xPcGL|3&jrpVC@{WabaN0JX77vWj__OT-0IWwOpj`63 zX$P~S+2#v1Kl?nbD9?cO+=~`+L)cs)R;x+PZTzxL?AJbrf_|kC3w%J|4zk!FGk_I^ zs)5)%gDX{v9#*dFIIrW>P2wo-K~) z?t+$AeUx*m>ZD4W8vx`K#^}*hQs39tmRW?W6Wj=fV@aiM9$!#*7&j+$s6tf+4hj{Y zWZ5Drx_DFHT%Ib7%$RVDq&F2oLFo>shxut|`lcY1*!&0Sc7&C>$CkWs3`Ztp zz@khB+2OXKnUY;%Rpzpp2o;;fN=;aT&@=L+Wp#F{aVxh~fpYCyoMHN9 z*rA*vka8hOa_k@VQChJ8gC*1~TZ7PaAfYR) zQNC5!MhzV=1=FLecBye82x{cIWv7EeH`5%gI$&6Mb?K5cYee~$K9~7dUse8bjC(~3 z4YD^V`R}(b0OeVb!HJq&_oBqmzd%bBB=CWi)^bS6`?;U~w_t)F!?D9crud)6rmRY?Y->CTEO zaJ^@6nl}n+IqQ7Tm50FMOvmuUR1`Y?kVKL^zcx?PORGX6nMJMne6W=c#y?Y7cCr-l zLx6l328N23^k@wkhvP#xfc`tW-T}-qSAyvF3>6}}ca)sQvu-;o@%xC-0v^Pl7(FuCv1U=Z)?kpQ9I$KLoxkkp2 zwkm}CBTCEheA37=`gPzbPpJc)i80{5=T}&kXiwuABdH;Lq!!aYSN`L;J4kK#c_z66 zOcu|^Mml@f!6|#F-N52Y@LSJCxwNP#%qvLWW{l_4DKVTasikTt{Jx+h*ul5tT&d0! z*?%5`efC8rPn7RHxv;sE;1h?@Df}z0u=F$OaUGC>MsEYA%(lHo&Xev$?kTV_kmn=OFXiaP51un z@518pNC~+2&#X=;mT5}D)Fq|UzEHyn>+#sR}lR&tXZkzEjhk>zKpx;S+B=V3tw-#ny( zNd;n5UE%yzzFB3OIXksA`K=D#IKxuY)Xy9wT<5viu&Flk1 zG3cnp6s~6&ZOSp$SZX4O41=Fq-YTN{DA1FindZ=VHdmYw2WMrGo|N4sr5JLL3ER<4 z*7Ke=W=2J)lv>3bb)+_j<3~dn9aJU(r*s5C7to|OxsqWtlz*vbq$@lhTuz1M4Hnkd zPmU}RT@<+gVC0CQnfn})MSf7`*d$8EE!|YqSVS2JbQAco$S%_89_(Tf)x?*!J*u!8ZaJ(0X_9>>g=Lm2nlsd|AAK3g~(siEC$q?gf?TWOxCu zV7!n?Bvz_)P%gPyjz$k#c~zS~AO%J9SQF~@L zx`CZ@ZNH|U_+r=2`YCbWr{7}hPgR{U&{3rkl78%0 zxP{(aNNHMpd`SSKQB+*iUUON-VJAr>$5GP>r8eo{7j(%|>Ro%hoT4(!&QXfYWT=5J0~3$_+iW`Vwf5}REC8M&FD z^?RH>5*RE}_Rwh#6iA~;opWJ!1r_&2{#2f+EbR;t@kcUd*o8uht*d?^)@jCT zmzM)ye(*}D`GZG~O>XG#JV%oqK2>qClapFKl|`}Tu56y$8b}#dyW4q*&Xi*gU8cd^ z>&~3FwOY8bs2A-UnO!lj_p_f7{=dD^V+ zy;ncp)v~3Nbdn;)uKogos9wSVY=Vu3dt{~$yR?wSoU=|KhArp zt!eT8CBr+iZ1k1pN>TND+h5r$gB6=cHx6sPMM3Nm+nDKOhk;I+62(fy1PYZ@!CK?d zjx7Wx-47h13)JD`w2upsyj_Qk9V2YJNjPb4vDe};dVp?;0Oo4__FLS>(9>Y~54@55 zo-f#6ka5N;FP!Z9g6P0c=FX*kAGGd5>UpXDAdydgY{Mjs{Yms_r`!s?YE$roKDH2} ztv;2eppRQ8jb8QG2P1E{AIt$1tyag*sD@#Nl7-!FZ51=RyR7Qp*}Tdl$Xha;3nP!? zD|Z3ufqg@E9KimjV(Kn3X2-rfty1NsAsE!^COv;v{YZb(n9%hn^_D%8 z%DE42c-dJf#VRWE)pF_AJbDX>6?BRjG>G-DM!_C8dbx#DDd44j@A3TB0UD36`)SVx zl{o}q-x5L3!#T*8P?w{ph0R2aq3*UpC48-E?kf7n_YGs8X@0myzqj9gS>9RTF@ zuUm$AKMqJw?ZL>)SgyVb!WzI62Of;eESjan1rrLADbBM+nDH+c=i^%Pihj0{!Vajd z9ljs98md4g^DG0;lok`r1t1KnWV;6JX+E-nBZN1AjlU8O0?JOD`k?YC|B9khfPY|+ z^K3liu;)9pu0t4G#)m{3^RMJJJ#xm-8T-pUwt7=Kl%Ono+_}c$ct{J<-Jdg}Rq=?#WuNp+0;Mq#p$_Z+`beio zR`dQX8Ah(eT-288v!FlSITWB#Z^7N3#%4Hq9Dl@zlWV#iR&c|5X8g3=k`u)~}7vCi0eo<#r! zN&rxC(Xo|>uc-KXXt9BK@gBRiFqtw=5~VEhOIit{0Y@igQz8LM=Gz@WVwBeVGpuy| z!ln@fiM;L_BMJ6FK@CE)6PUuyUKYj_-PFcG7NuOjt5TOA+)Kb9Lf^sHJs z`dDm?6c~*-?#mK_xFWLZub_@aQs)m8_nsL2@pt+ExH>4UCrkTlw0U5V=uLY&%^kS` zn$~}Q;HL78qHv5e)gJZ>=Yy>!c#t&xpQL67IY2xX)38g-G3TYMU)BIgxOy07ku#DZ!BMg(n20YZvao))C*pE>vY&zrMcKe& z!#F5F_qv)zfyWiJ0gxgHGkU#|(ktPO6G(TC0>;Ax2#h!t0XiaXM}TU}IJjM&X~HTl z!WzzBBCzvZMAg!qm`stqIJSisJWBj^(d)tIPc=J|GL6~zR@`>%Md(wOySCK`W;K8w z!=wR-k3{62*&~X=D4u_JR^8Lj#H?*&6Tn?8N#7)@W!Uqq4rz6yi8FqfA}g1KlL;-N*3t@s6xVH444(rs>Goow74I4Us3kc zoP)`EAs0^$C#79)a!e3$4lRk$?UDzMQcEMWTb0|Jl?5(U-w+rhAmoCX4yC~?mY0b$ zy^I#f9#E@dRcm%r&RH8$xDvmMqVp!bs8gsnsW6T3v85sSa;Nc zn`IYpc?WRyfeJmi90Dwb%6Q-%N$j0is|L5KBr@A?_P;5og$zma6Z7leqBpt|E};!g zM}iv<0SZ=#bc!atf8)%*<;lx`*8#Mv{m}IyxaC4L!K!2=S(36dHEfeuL2vn~FU-Xi z#x_4PauW&4?@G=?AV7z#8%1vziM@V2-%wRmSpf!%^B_Gq3G!H5=_tP2l7={sceREg zBIlj)pC){ImzfqEuHgSCZ*=eG*JHMUFVb2zW#I-I4*xqt&V?=SpXf$vGx9P!*>etV zat`L+U3j?Av+!HKLb5t6Zac_DbAQPVFN7BEEM#-xd;r%L!^Ced1QxjV!}g0@_66Cl@gH?r z2#D%Xsl=R6VKKW#(}gEIBsD%c?pDN-P~g%Q4KK;fSS7)sL9imI2cXW|We+y2jqg5| zFCfYl%?K+=rDhuQXXfvTqp>?G`XDozVj`U)XaLb_F)K^npI=n{i`Ny@AWJyjp& z-oMCP4`C$IePhJ|X9@Wmpvr}s?&o9vZ_1OIsj`!EA|}m0CUpLy=I(>968v`K_;wj< z-azB6xRw*pEfGt?(h5z2>M4&_0+63y){G#LsUSE^+cJ{oH5s72Wyj%`g95oS65$Xx zf(RXWDlz^V#x9E;1xtZkfxI9Bp!F3Q2Tg;g(K^|>@Wn&1@CR4e+wE-Iz@H=TWcBNq z)?6TdkR~S;z5xH2B+&2Ctmb0+8uFku?Qq4>0RVh!PQM0^sg*}~>sf}n*U^IBo5ZEE z^i4;ROW667m0x}N#R(Y&e@1}jTx^Gxei?ahV&F!+zkghpew_23{B$i)*m}OC!cjHE z#7FrV%GQX&2Q)SssDOF7PHd~7?@A~d3TQuD)Zk-V>VD6*@XjYFXoXzG}G zx%28cdjq2Y;MI1H&Vw6?~aZR4OzA^2t>J-Tb@~>IfkU%g!j)c zMJy1);B!4#U*eWm9sXbpz2dNYJh2udk*_5dGF6It<;F~AW&sF#u{%I%Jl+tDCdd-Z zD6U1_D#qV46Ksr=);A^|-6T)eBzC)AE{@cug&G_v)rIkeDl(u0wN5aIJ|v?M`z}59 zvl%8-xbLJ0<4RNG*l^JAMp>bTQnl$8I7ja8drMMwwp(_nd=RspZS+DaPrFF&H@D!k z?AP%BZ9Cbde>#08;`&3eZ8~-niTBbpS1@DQGiZW#Qj2H>#?t3Awe3C+#lRmCKRDl7 zef?HEfpObYrHNT9zS9ORHRAWS!4*FXZ+IF4h5saQq~+m`lyn%7ZrKR})cBbS0v~1I z%IQry=E%YTB!v~mWyBDEe*p9l zjtyL1nVLabZ=4d$VHh$#$E7YnNE2`njl!!NKORt4l3~P>Z!aa`@C$u1IZb4Oqy1Y? zf|I#G^W@=-LiOvew@tB_EbGSw`RtuK)CjBjbK{yDUPtNatH$gPc69qd^vwc6KfCum zWxD0F?mp8TwJZFW>&;`%*o7aMww>K12+zcmgb8Y9Sc2OmnZ(`Kk;vo?qKl{%RDU9_ zr8*H)Wyz2T{FvSo?=^aXsd)>3cBCW>#RB!XEk#KJ{0{jUVbIIyMRarxmt!Yi|L)6g z;$Isx-c)HyDHogdd{j92s-Aayl@PXyqbd>El4bin%iGiKfMmmp1U$f`>3cK>E}A3W zzJsI(?v)ruPHsXVsiD?YhkeMm3p`>9B8g?5D1^=KsiT7tX2(FhymsIs0Kk!-esA#e z0M+W|X>0ze4c`U;(E7`xgNg7gZuwK$@g3E57{JIFpi=x#&mEDw!TkNteRmb%0B@T=H~bX6I5i;v?u%r7aFZIPMhlUbaOH zZ-DJ81r7J{dZ)@vyhLnBi?XFb>B1Bz%Rk9D#A)0tjxBhl7fR!&(^#aw1>DTre7er^ zKRuT*?uiT`85x`JOAM6voEJk16WYUa$JE zF6OpH^4(;vwnimi_UJuK%5yzEH$$}+6T8{LWL<hbMtWZEjpt>qFj z$gjsQG*{8N9jEzb%bn>s*epHcP#_uluxAHSGgM8opGziS;ed`)6dy zA%+{nG5*_0F7AL1Z(-dd@$D#ZyK;Qk1-UgQ>*tLzshX{7BbYT#x~A||7iw`(GA*UH z321e894LjbX(hboshY0(SN%~%?mq38D=PR2MF^10=jxjVbe9JJ-P{Yu?Rvma4r|S4~)SwdwQHz79$KNoBs^Od*PH<~j zh}q#S)DDok5q_9a>TOzYWJ<$>k2Q${9q7W&>uD&wBeU5d>Pk+1gxTTY9cciU)eMKs z=!7w}m}T;2JN6lXwv45d4>GWt7235{?=y95M{|>c1uL;P)(AmgeIU6i_%;Ip=*;NJ zePrv=V5}Q>b>5>*Hz8H13N9`<%-g;oUVyNWqzIexMZHIj(Jzjq#9>$ zaJq*|bbh47 sTvrFz?t0n@H_#3+vfR8EsEJ8i^wZs1kF6SeYo*uNMpK#ALjQbW28Ud03IG5A diff --git a/docs/.vitepress/dist/assets/inter-italic-vietnamese.xzQHe1q1.woff2 b/docs/.vitepress/dist/assets/inter-italic-vietnamese.xzQHe1q1.woff2 deleted file mode 100644 index e4f788ee02bb687bc1d5045483ff0d381e7654e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8784 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 G0002QVTgqQ diff --git a/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2 b/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2 deleted file mode 100644 index 28593ccb8a4d849a746f2b970678fe426cb136e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26600 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 diff --git a/docs/.vitepress/dist/assets/inter-roman-cyrillic.jIZ9REo5.woff2 b/docs/.vitepress/dist/assets/inter-roman-cyrillic.jIZ9REo5.woff2 deleted file mode 100644 index a20adc161f433a7c4e3d92306301b9228bcf9fb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16780 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

KZ;k8ywA} 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 O1{o}0SRMEP0000Yp_Hru diff --git a/docs/.vitepress/dist/assets/inter-roman-greek.Cb5wWeGA.woff2 b/docs/.vitepress/dist/assets/inter-roman-greek.Cb5wWeGA.woff2 deleted file mode 100644 index f790e047daa346583880da2be470431e35aa6054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21776 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 De!(H( diff --git a/docs/.vitepress/dist/assets/inter-roman-latin-ext.GZWE-KO4.woff2 b/docs/.vitepress/dist/assets/inter-roman-latin-ext.GZWE-KO4.woff2 deleted file mode 100644 index 715bd903b9b14d22a056f10e6d13b8d7e0acce57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59608 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

Skip to content

Example

Let's try and play something with Warp!

lua
local Warp = require("path.to.module")
+    
Skip to content

Example 1.0

Let's try and play something with Warp!

lua
local Warp = require("path.to.module")
 
 -- Events
 local Example = Warp.Server("Example")
@@ -37,7 +38,7 @@
         Pong:Fire(true, player, "pong!")
         PingAll:Fires(true, "ey!")
     end
-end)
lua
local Players = game:GetService("Players")
+end)
lua
local Players = game:GetService("Players")
 local Warp = require("path.to.module")
 
 -- Events
@@ -76,8 +77,8 @@
 -- Destroying/Deleting a Event?
 Pong:Destroy()
 
--- Yay Done!
- +-- Yay Done!
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/getting-started.html b/docs/.vitepress/dist/guide/getting-started.html index e0177a2..7e203e5 100644 --- a/docs/.vitepress/dist/guide/getting-started.html +++ b/docs/.vitepress/dist/guide/getting-started.html @@ -5,25 +5,26 @@ Getting Started | Warp - - + + + - - - - - + + + + + -
Skip to content

Getting Started

Step 1:

First, you have to require the Warp module.

lua
local Warp = require('path.to.module');

Step 2:

Then, to create a new event you have to use .Server function

lua
local Remote = Warp.Server("EventName");

Step 3:

Firing event everytime player join

lua
local Players = game:GetService("Players")
+    
Skip to content

Getting Started 1.0

Step 1:

First, you have to require the Warp module.

lua
local Warp = require('path.to.module');

Step 2:

Then, to create a new event you have to use .Server function

lua
local Remote = Warp.Server("EventName");

Step 3:

Firing event everytime player join

lua
local Players = game:GetService("Players")
 
 Players.PlayerAdded:Connect(function(player)
     Remote:Fire(true, player, "Welcome!")
-end)
- +end)
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/index.html b/docs/.vitepress/dist/guide/index.html index 74f4693..e52cf2c 100644 --- a/docs/.vitepress/dist/guide/index.html +++ b/docs/.vitepress/dist/guide/index.html @@ -5,21 +5,22 @@ Overview | Warp - - + + + - - - - - + + + + + -
Skip to content

Overview

Warp is a networking library for Roblox that comes with very fast performance and efficient with Type to any-scale games.

Why Warp

⚡ Performance

Warp is very-fast with much less bandwidth compared to native.

🍃 Lightweight

Warp is a lightweight library for Roblox.

📊 Task

Warp optimized efficient for large-scale task.

🔎 Typing

Warp written with strictly-typed.

- +
Skip to content

Overview

Warp is a networking library for Roblox that comes with very fast performance and efficient with Type to any-scale games.

Why Warp

⚡ Performance

Warp is very-fast with much less bandwidth compared to native.

🍃 Lightweight

Warp is a lightweight library for Roblox.

📊 Task

Warp optimized efficient for large-scale task.

🔎 Typing

Warp written with strictly-typed.

+ \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/installation.html b/docs/.vitepress/dist/guide/installation.html index b7af0e4..7846681 100644 --- a/docs/.vitepress/dist/guide/installation.html +++ b/docs/.vitepress/dist/guide/installation.html @@ -5,22 +5,23 @@ Installation | Warp - - + + + - - - - - + + + + + -
Skip to content

Installation

with Wally

  1. Get Rojo and Wally ready.
  2. Add Warp to your wally.toml.
toml
[dependencies]
-warp = "imezx/warp@1.0.0"
  1. Run wally install in command.
  2. Link the module and Your Done!

without Wally

  1. Get the .rbxm file from the github
  2. Import the .rbxm file into roblox studio manually and Done!
- +
Skip to content

Installation

with Wally

  1. Get Rojo and Wally ready.
  2. Add Warp to your wally.toml.
toml
[dependencies]
+warp = "imezx/warp@1.0.13"
  1. Run wally install in command.
  2. Link the module and Your Done!

without Wally

  1. Get the .rbxm file from the github
  2. Import the .rbxm file into roblox studio manually and Done!
+ \ No newline at end of file diff --git a/docs/.vitepress/dist/hashmap.json b/docs/.vitepress/dist/hashmap.json index bb8462a..3dde037 100644 --- a/docs/.vitepress/dist/hashmap.json +++ b/docs/.vitepress/dist/hashmap.json @@ -1 +1 @@ -{"index.md":"Wvz5TWej","guide_getting-started.md":"MBXKETNI","guide_installation.md":"fMU35fgi","api_1.0_warp.md":"u63PLmMH","guide_index.md":"xfhCFaBM","api_1.0_server.md":"w4zn1XZZ","guide_example.md":"7eqi7edp","api_1.0_ratelimit.md":"gPb2PQ91","api_1.0_client.md":"FTim0Kz_"} +{"api_1.0_client.md":"DRlZL-Eb","api_1.0_ratelimit.md":"B4DFbcsX","api_1.0_server.md":"CjXNePVa","api_1.0_signal.md":"CSgtTcPk","api_1.0_warp.md":"Cc-7zjkV","api_1.1_buffer.md":"DIAM2o2w","api_1.1_client.md":"etzsFUJB","api_1.1_server.md":"yCvitiyi","api_1.1_warp.md":"D17D2VRV","guide_example.md":"35KFEfAU","guide_getting-started.md":"BJOTFozK","guide_index.md":"CZXHfmOy","guide_installation.md":"D6zv1RV7","index.md":"U4jwmyV2"} diff --git a/docs/.vitepress/dist/header.png b/docs/.vitepress/dist/header.png deleted file mode 100644 index 0f0fb3ef461caad08bf30abb005887c448d5f0ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16774 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 Warp - - + + + - - - - - + + + + + -
Skip to content

Warp

A very-fast & powerful networking library for Roblox.

- +
Skip to content

WarpA very-fast & powerful networking library for Roblox.

+ \ No newline at end of file diff --git a/node_modules/.bin/esbuild b/node_modules/.bin/esbuild deleted file mode 100644 index 63bb6d4..0000000 --- a/node_modules/.bin/esbuild +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@" -else - exec node "$basedir/../esbuild/bin/esbuild" "$@" -fi diff --git a/node_modules/.bin/esbuild b/node_modules/.bin/esbuild new file mode 120000 index 0000000..55b5b82 --- /dev/null +++ b/node_modules/.bin/esbuild @@ -0,0 +1 @@ +../@esbuild/linux-x64/bin/esbuild \ No newline at end of file diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid deleted file mode 100644 index 46220bd..0000000 --- a/node_modules/.bin/nanoid +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@" -else - exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@" -fi diff --git a/node_modules/.bin/nanoid b/node_modules/.bin/nanoid new file mode 120000 index 0000000..e2be547 --- /dev/null +++ b/node_modules/.bin/nanoid @@ -0,0 +1 @@ +../nanoid/bin/nanoid.cjs \ No newline at end of file diff --git a/node_modules/.bin/parser b/node_modules/.bin/parser deleted file mode 100644 index 7696ad4..0000000 --- a/node_modules/.bin/parser +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@" -else - exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@" -fi diff --git a/node_modules/.bin/parser b/node_modules/.bin/parser new file mode 120000 index 0000000..ce7bf97 --- /dev/null +++ b/node_modules/.bin/parser @@ -0,0 +1 @@ +../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/node_modules/.bin/rollup b/node_modules/.bin/rollup deleted file mode 100644 index 998fc16..0000000 --- a/node_modules/.bin/rollup +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@" -else - exec node "$basedir/../rollup/dist/bin/rollup" "$@" -fi diff --git a/node_modules/.bin/rollup b/node_modules/.bin/rollup new file mode 120000 index 0000000..5939621 --- /dev/null +++ b/node_modules/.bin/rollup @@ -0,0 +1 @@ +../rollup/dist/bin/rollup \ No newline at end of file diff --git a/node_modules/.bin/vite b/node_modules/.bin/vite deleted file mode 100644 index 014463f..0000000 --- a/node_modules/.bin/vite +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@" -else - exec node "$basedir/../vite/bin/vite.js" "$@" -fi diff --git a/node_modules/.bin/vite b/node_modules/.bin/vite new file mode 120000 index 0000000..6d1e3be --- /dev/null +++ b/node_modules/.bin/vite @@ -0,0 +1 @@ +../vite/bin/vite.js \ No newline at end of file diff --git a/node_modules/.bin/vitepress b/node_modules/.bin/vitepress deleted file mode 100644 index 823385a..0000000 --- a/node_modules/.bin/vitepress +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) - if command -v cygpath > /dev/null 2>&1; then - basedir=`cygpath -w "$basedir"` - fi - ;; -esac - -if [ -x "$basedir/node" ]; then - exec "$basedir/node" "$basedir/../vitepress/bin/vitepress.js" "$@" -else - exec node "$basedir/../vitepress/bin/vitepress.js" "$@" -fi diff --git a/node_modules/.bin/vitepress b/node_modules/.bin/vitepress new file mode 120000 index 0000000..f7e3383 --- /dev/null +++ b/node_modules/.bin/vitepress @@ -0,0 +1 @@ +../vitepress/bin/vitepress.js \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js b/node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js index 92b5376..6eba480 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js @@ -28,6 +28,7 @@ export function createAutocomplete(options) { navigator: props.navigator }, setters)); function onStoreStateChange(_ref) { + var _state$context, _state$context$algoli; var prevState = _ref.prevState, state = _ref.state; props.onStateChange(_objectSpread({ @@ -36,6 +37,13 @@ export function createAutocomplete(options) { refresh: refresh, navigator: props.navigator }, setters)); + if (!isAlgoliaInsightsPluginEnabled() && (_state$context = state.context) !== null && _state$context !== void 0 && (_state$context$algoli = _state$context.algoliaInsightsPlugin) !== null && _state$context$algoli !== void 0 && _state$context$algoli.__automaticInsights && props.insights !== false) { + var plugin = createAlgoliaInsightsPlugin({ + __autocomplete_clickAnalytics: false + }); + props.plugins.push(plugin); + subscribePlugins([plugin]); + } } function refresh() { return onInput(_objectSpread({ @@ -50,34 +58,40 @@ export function createAutocomplete(options) { store: store }, setters)); } - if (options.insights && !props.plugins.some(function (plugin) { - return plugin.name === 'aa.algoliaInsightsPlugin'; - })) { - var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights; + function subscribePlugins(plugins) { + plugins.forEach(function (plugin) { + var _plugin$subscribe; + return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, { + navigator: props.navigator, + refresh: refresh, + onSelect: function onSelect(fn) { + subscribers.push({ + onSelect: fn + }); + }, + onActive: function onActive(fn) { + subscribers.push({ + onActive: fn + }); + }, + onResolve: function onResolve(fn) { + subscribers.push({ + onResolve: fn + }); + } + })); + }); + } + function isAlgoliaInsightsPluginEnabled() { + return props.plugins.some(function (plugin) { + return plugin.name === 'aa.algoliaInsightsPlugin'; + }); + } + if (props.insights && !isAlgoliaInsightsPluginEnabled()) { + var insightsParams = typeof props.insights === 'boolean' ? {} : props.insights; props.plugins.push(createAlgoliaInsightsPlugin(insightsParams)); } - props.plugins.forEach(function (plugin) { - var _plugin$subscribe; - return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, { - navigator: props.navigator, - refresh: refresh, - onSelect: function onSelect(fn) { - subscribers.push({ - onSelect: fn - }); - }, - onActive: function onActive(fn) { - subscribers.push({ - onActive: fn - }); - }, - onResolve: function onResolve(fn) { - subscribers.push({ - onResolve: fn - }); - } - })); - }); + subscribePlugins(props.plugins); injectMetadata({ metadata: getMetadata({ plugins: props.plugins, diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js b/node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js index d7e0856..e0488cb 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js @@ -21,11 +21,13 @@ export function getDefaultProps(props, pluginSubscribers) { return _objectSpread(_objectSpread({ debug: false, openOnFocus: false, + enterKeyHint: undefined, + ignoreCompositionEvents: false, placeholder: '', autoFocus: false, defaultActiveItemId: null, stallThreshold: 300, - insights: false, + insights: undefined, environment: environment, shouldPanelOpen: function shouldPanelOpen(_ref) { var state = _ref.state; diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js b/node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js index 2ea578f..b8d02ad 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js @@ -3,9 +3,8 @@ var _excluded = ["props", "refresh", "store"], _excluded2 = ["inputElement", "formElement", "panelElement"], _excluded3 = ["inputElement"], _excluded4 = ["inputElement", "maxLength"], - _excluded5 = ["sourceIndex"], - _excluded6 = ["sourceIndex"], - _excluded7 = ["item", "source", "sourceIndex"]; + _excluded5 = ["source"], + _excluded6 = ["item", "source"]; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -16,7 +15,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r import { noop } from '@algolia/autocomplete-shared'; import { onInput } from './onInput'; import { onKeyDown as _onKeyDown } from './onKeyDown'; -import { getActiveItem, isOrContainsNode, isSamsung } from './utils'; +import { getActiveItem, getAutocompleteElementId, isOrContainsNode, isSamsung, getNativeEvent } from './utils'; export function getPropGetters(_ref) { var props = _ref.props, refresh = _ref.refresh, @@ -85,8 +84,11 @@ export function getPropGetters(_ref) { role: 'combobox', 'aria-expanded': store.getState().isOpen, 'aria-haspopup': 'listbox', - 'aria-owns': store.getState().isOpen ? "".concat(props.id, "-list") : undefined, - 'aria-labelledby': "".concat(props.id, "-label") + 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref2) { + var source = _ref2.source; + return getAutocompleteElementId(props.id, 'list', source); + }).join(' ') : undefined, + 'aria-labelledby': getAutocompleteElementId(props.id, 'label') }, rest); }; var getFormProps = function getFormProps(providedProps) { @@ -136,22 +138,25 @@ export function getPropGetters(_ref) { } store.dispatch('focus', null); } - var _ref2 = providedProps || {}, - inputElement = _ref2.inputElement, - _ref2$maxLength = _ref2.maxLength, - maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength, - rest = _objectWithoutProperties(_ref2, _excluded4); + var _ref3 = providedProps || {}, + inputElement = _ref3.inputElement, + _ref3$maxLength = _ref3.maxLength, + maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength, + rest = _objectWithoutProperties(_ref3, _excluded4); var activeItem = getActiveItem(store.getState()); var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || ''; var shouldFallbackKeyHint = isSamsung(userAgent); - var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search'; + var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search'); return _objectSpread({ 'aria-autocomplete': 'both', - 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined, - 'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined, - 'aria-labelledby': "".concat(props.id, "-label"), + 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), activeItem === null || activeItem === void 0 ? void 0 : activeItem.source) : undefined, + 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref4) { + var source = _ref4.source; + return getAutocompleteElementId(props.id, 'list', source); + }).join(' ') : undefined, + 'aria-labelledby': getAutocompleteElementId(props.id, 'label'), value: store.getState().completion || store.getState().query, - id: "".concat(props.id, "-input"), + id: getAutocompleteElementId(props.id, 'input'), autoComplete: 'off', autoCorrect: 'off', autoCapitalize: 'off', @@ -162,6 +167,20 @@ export function getPropGetters(_ref) { maxLength: maxLength, type: 'search', onChange: function onChange(event) { + var value = event.currentTarget.value; + if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) { + setters.setQuery(value); + return; + } + onInput(_objectSpread({ + event: event, + props: props, + query: value.slice(0, maxLength), + refresh: refresh, + store: store + }, setters)); + }, + onCompositionEnd: function onCompositionEnd(event) { onInput(_objectSpread({ event: event, props: props, @@ -171,6 +190,9 @@ export function getPropGetters(_ref) { }, setters)); }, onKeyDown: function onKeyDown(event) { + if (getNativeEvent(event).isComposing) { + return; + } _onKeyDown(_objectSpread({ event: event, props: props, @@ -197,26 +219,20 @@ export function getPropGetters(_ref) { } }, rest); }; - var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) { - return typeof sourceId !== 'undefined' ? "".concat(instanceId, "-").concat(sourceId) : instanceId; - }; - var getLabelProps = function getLabelProps(providedProps) { - var _ref3 = providedProps || {}, - sourceIndex = _ref3.sourceIndex, - rest = _objectWithoutProperties(_ref3, _excluded5); + var getLabelProps = function getLabelProps(rest) { return _objectSpread({ - htmlFor: "".concat(getAutocompleteId(props.id, sourceIndex), "-input"), - id: "".concat(getAutocompleteId(props.id, sourceIndex), "-label") + htmlFor: getAutocompleteElementId(props.id, 'input'), + id: getAutocompleteElementId(props.id, 'label') }, rest); }; var getListProps = function getListProps(providedProps) { - var _ref4 = providedProps || {}, - sourceIndex = _ref4.sourceIndex, - rest = _objectWithoutProperties(_ref4, _excluded6); + var _ref5 = providedProps || {}, + source = _ref5.source, + rest = _objectWithoutProperties(_ref5, _excluded5); return _objectSpread({ role: 'listbox', - 'aria-labelledby': "".concat(getAutocompleteId(props.id, sourceIndex), "-label"), - id: "".concat(getAutocompleteId(props.id, sourceIndex), "-list") + 'aria-labelledby': getAutocompleteElementId(props.id, 'label'), + id: getAutocompleteElementId(props.id, 'list', source) }, rest); }; var getPanelProps = function getPanelProps(rest) { @@ -235,10 +251,9 @@ export function getPropGetters(_ref) { var getItemProps = function getItemProps(providedProps) { var item = providedProps.item, source = providedProps.source, - sourceIndex = providedProps.sourceIndex, - rest = _objectWithoutProperties(providedProps, _excluded7); + rest = _objectWithoutProperties(providedProps, _excluded6); return _objectSpread({ - id: "".concat(getAutocompleteId(props.id, sourceIndex), "-item-").concat(item.__autocomplete_id), + id: getAutocompleteElementId(props.id, "item-".concat(item.__autocomplete_id), source), role: 'option', 'aria-selected': store.getState().activeItemId === item.__autocomplete_id, onMouseMove: function onMouseMove(event) { diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/onInput.js b/node_modules/@algolia/autocomplete-core/dist/esm/onInput.js index 97107a9..78173bc 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/onInput.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/onInput.js @@ -28,7 +28,8 @@ export function onInput(_ref) { setIsOpen = setters.setIsOpen, setQuery = setters.setQuery, setActiveItemId = setters.setActiveItemId, - setStatus = setters.setStatus; + setStatus = setters.setStatus, + setContext = setters.setContext; setQuery(query); setActiveItemId(props.defaultActiveItemId); if (!query && props.openOnFocus === false) { @@ -78,6 +79,20 @@ export function onInput(_ref) { return preResolve(itemsOrDescription, source.sourceId, store.getState()); }); })).then(resolve).then(function (responses) { + var __automaticInsights = responses.some(function (_ref2) { + var items = _ref2.items; + return isSearchResponseWithAutomaticInsightsFlag(items); + }); + + // No need to pollute the context if `__automaticInsights=false` + if (__automaticInsights) { + var _store$getState$conte; + setContext({ + algoliaInsightsPlugin: _objectSpread(_objectSpread({}, ((_store$getState$conte = store.getState().context) === null || _store$getState$conte === void 0 ? void 0 : _store$getState$conte.algoliaInsightsPlugin) || {}), {}, { + __automaticInsights: __automaticInsights + }) + }); + } return postResolve(responses, sources, store); }).then(function (collections) { return reshape({ @@ -122,4 +137,7 @@ export function onInput(_ref) { } }); return store.pendingRequests.add(request); +} +function isSearchResponseWithAutomaticInsightsFlag(items) { + return !Array.isArray(items) && Boolean(items === null || items === void 0 ? void 0 : items._automaticInsights); } \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js b/node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js index 1cb0efd..09005c9 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js @@ -8,7 +8,7 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input == function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { onInput } from './onInput'; -import { getActiveItem } from './utils'; +import { getActiveItem, getAutocompleteElementId } from './utils'; export function onKeyDown(_ref) { var event = _ref.event, props = _ref.props, @@ -18,7 +18,8 @@ export function onKeyDown(_ref) { if (event.key === 'ArrowUp' || event.key === 'ArrowDown') { // eslint-disable-next-line no-inner-declarations var triggerScrollIntoView = function triggerScrollIntoView() { - var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId)); + var highlightedItem = getActiveItem(store.getState()); + var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source)); if (nodeItem) { if (nodeItem.scrollIntoViewIfNeeded) { nodeItem.scrollIntoViewIfNeeded(false); @@ -87,7 +88,7 @@ export function onKeyDown(_ref) { } else if (event.key === 'Tab') { store.dispatch('blur', null); - // Hitting the `Escape` key signals the end of a user interaction with the + // Hitting the `Tab` key signals the end of a user interaction with the // autocomplete. At this point, we should ignore any requests that are still // pending and could reopen the panel once they resolve, because that would // result in an unsolicited UI behavior. diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/resolve.d.ts b/node_modules/@algolia/autocomplete-core/dist/esm/resolve.d.ts index a68d9f4..9a04731 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/resolve.d.ts +++ b/node_modules/@algolia/autocomplete-core/dist/esm/resolve.d.ts @@ -1,5 +1,6 @@ import type { ExecuteResponse, RequesterDescription, TransformResponse } from '@algolia/autocomplete-preset-algolia'; -import { MultipleQueriesQuery, SearchForFacetValuesResponse, SearchResponse } from '@algolia/client-search'; +import type { SearchResponse } from '@algolia/autocomplete-shared'; +import { MultipleQueriesQuery, SearchForFacetValuesResponse } from '@algolia/client-search'; import { AutocompleteState, AutocompleteStore, BaseItem, InternalAutocompleteSource } from './types'; declare type RequestDescriptionPreResolved = Pick, 'execute' | 'requesterId' | 'searchClient' | 'transformResponse'> & { requests: Array<{ diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js b/node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js index 8a0ed56..859c029 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js @@ -103,6 +103,7 @@ export var stateReducer = function stateReducer(state, action) { // we lose track of the highlighted index. (Query-suggestions use-case) action.props.openOnFocus === true ? action.props.defaultActiveItemId : null, status: 'idle', + completion: null, query: '' }); } diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts b/node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts index 3ce852c..1eadcb5 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts +++ b/node_modules/@algolia/autocomplete-core/dist/esm/types/index.d.ts @@ -2,17 +2,21 @@ export * from '@algolia/autocomplete-shared/dist/esm/core'; export * from './AutocompleteStore'; export * from './AutocompleteSubscribers'; import { CreateAlgoliaInsightsPluginParams, AutocompleteInsightsApi as _AutocompleteInsightsApi, AlgoliaInsightsHit as _AlgoliaInsightsHit } from '@algolia/autocomplete-plugin-algolia-insights'; -import { AutocompleteOptions as _AutocompleteOptions, BaseItem } from '@algolia/autocomplete-shared/dist/esm/core'; +import { AutocompleteOptions as _AutocompleteOptions, InternalAutocompleteOptions as _InternalAutocompleteOptions, BaseItem } from '@algolia/autocomplete-shared/dist/esm/core'; export declare type AutocompleteInsightsApi = _AutocompleteInsightsApi; export declare type AlgoliaInsightsHit = _AlgoliaInsightsHit; -export interface AutocompleteOptions extends _AutocompleteOptions { +declare type InsightsOption = { /** * Whether to enable the Insights plugin and load the Insights library if it has not been loaded yet. * * See [**autocomplete-plugin-algolia-insights**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/) for more information. * - * @default false + * @default undefined * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-insights */ - insights?: CreateAlgoliaInsightsPluginParams | boolean; + insights?: CreateAlgoliaInsightsPluginParams | boolean | undefined; +}; +export interface AutocompleteOptions extends _AutocompleteOptions, InsightsOption { +} +export interface InternalAutocompleteOptions extends _InternalAutocompleteOptions, InsightsOption { } diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts b/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts index d30313d..fe066e2 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts +++ b/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.d.ts @@ -4,6 +4,8 @@ export * from './createConcurrentSafePromise'; export * from './getNextActiveItemId'; export * from './getNormalizedSources'; export * from './getActiveItem'; +export * from './getAutocompleteElementId'; export * from './isOrContainsNode'; export * from './isSamsung'; export * from './mapToAlgoliaResponse'; +export * from './getNativeEvent'; diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js b/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js index 2c2d44a..e2b2c8a 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js +++ b/node_modules/@algolia/autocomplete-core/dist/esm/utils/index.js @@ -4,6 +4,8 @@ export * from './createConcurrentSafePromise'; export * from './getNextActiveItemId'; export * from './getNormalizedSources'; export * from './getActiveItem'; +export * from './getAutocompleteElementId'; export * from './isOrContainsNode'; export * from './isSamsung'; -export * from './mapToAlgoliaResponse'; \ No newline at end of file +export * from './mapToAlgoliaResponse'; +export * from './getNativeEvent'; \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.d.ts b/node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.d.ts index 6312421..a1af6e6 100644 --- a/node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.d.ts +++ b/node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.d.ts @@ -1,4 +1,5 @@ -import type { SearchForFacetValuesResponse, SearchResponse } from '@algolia/client-search'; +import type { SearchResponse } from '@algolia/autocomplete-shared'; +import type { SearchForFacetValuesResponse } from '@algolia/client-search'; export declare function mapToAlgoliaResponse(rawResults: Array | SearchForFacetValuesResponse>): { results: (SearchResponse | SearchForFacetValuesResponse)[]; hits: import("@algolia/client-search").Hit[][]; diff --git a/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js b/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js index 2a52c3a..d37be98 100644 --- a/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js +++ b/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js @@ -1,4 +1,4 @@ -/*! @algolia/autocomplete-core 1.9.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +/*! @algolia/autocomplete-core 1.17.7 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : @@ -291,7 +291,7 @@ return undefined; } - var version = '1.9.3'; + var version = '1.17.7'; var userAgents = [{ segment: 'autocomplete-core', @@ -322,7 +322,8 @@ function createClickedEvent(_ref) { var item = _ref.item, - items = _ref.items; + _ref$items = _ref.items, + items = _ref$items === void 0 ? [] : _ref$items; return { index: item.__autocomplete_indexName, items: [item], @@ -563,6 +564,15 @@ apiKey: apiKey }); }, + /** + * Sets the authenticated user token to attach to events. + * Unsets the authenticated token by passing `undefined`. + * + * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/ + */ + setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) { + searchInsights('setAuthenticatedUserToken', authenticatedUserToken); + }, /** * Sets the user token to attach to events. */ @@ -799,7 +809,7 @@ return (hint === "string" ? String : Number)(input); } var VIEW_EVENT_DELAY = 400; - var ALGOLIA_INSIGHTS_VERSION = '2.6.0'; + var ALGOLIA_INSIGHTS_VERSION = '2.15.0'; var ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@".concat(ALGOLIA_INSIGHTS_VERSION, "/dist/search-insights.min.js"); var sendViewedObjectIDs = debounce(function (_ref) { var onItemsChange = _ref.onItemsChange, @@ -821,9 +831,11 @@ function createAlgoliaInsightsPlugin(options) { var _getOptions = getOptions(options), providedInsightsClient = _getOptions.insightsClient, + insightsInitParams = _getOptions.insightsInitParams, onItemsChange = _getOptions.onItemsChange, onSelectEvent = _getOptions.onSelect, - onActiveEvent = _getOptions.onActive; + onActiveEvent = _getOptions.onActive, + __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics; var insightsClient = providedInsightsClient; if (!providedInsightsClient) { safelyRunOnBrowser(function (_ref2) { @@ -851,6 +863,17 @@ } }); } + + // We return an empty plugin if `insightsClient` is still undefined at + // this stage, which can happen in server environments. + if (!insightsClient) { + return {}; + } + if (insightsInitParams) { + insightsClient('init', _objectSpread({ + partial: true + }, insightsInitParams)); + } var insights = createSearchInsightsApi(insightsClient); var previousItems = createRef([]); var debouncedOnStateChange = debounce(function (_ref3) { @@ -883,19 +906,57 @@ var setContext = _ref4.setContext, onSelect = _ref4.onSelect, onActive = _ref4.onActive; + var isAuthenticatedToken = false; + function setInsightsContext(userToken) { + setContext({ + algoliaInsightsPlugin: { + __algoliaSearchParameters: _objectSpread(_objectSpread({}, __autocomplete_clickAnalytics ? { + clickAnalytics: true + } : {}), userToken ? { + userToken: normalizeUserToken(userToken) + } : {}), + insights: insights + } + }); + } insightsClient('addAlgoliaAgent', 'insights-plugin'); - setContext({ - algoliaInsightsPlugin: { - __algoliaSearchParameters: { - clickAnalytics: true - }, - insights: insights + setInsightsContext(); + + // Handles user token changes + insightsClient('onUserTokenChange', function (userToken) { + if (!isAuthenticatedToken) { + setInsightsContext(userToken); + } + }); + insightsClient('getUserToken', null, function (_error, userToken) { + if (!isAuthenticatedToken) { + setInsightsContext(userToken); + } + }); + + // Handles authenticated user token changes + insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) { + if (authenticatedUserToken) { + isAuthenticatedToken = true; + setInsightsContext(authenticatedUserToken); + } else { + isAuthenticatedToken = false; + insightsClient('getUserToken', null, function (_error, userToken) { + return setInsightsContext(userToken); + }); + } + }); + insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) { + if (authenticatedUserToken) { + isAuthenticatedToken = true; + setInsightsContext(authenticatedUserToken); } }); onSelect(function (_ref5) { var item = _ref5.item, state = _ref5.state, - event = _ref5.event; + event = _ref5.event, + source = _ref5.source; if (!isAlgoliaInsightsHit(item)) { return; } @@ -908,12 +969,13 @@ eventName: 'Item Selected' }, createClickedEvent({ item: item, - items: previousItems.current + items: source.getItems().filter(isAlgoliaInsightsHit) }))] }); }); onActive(function (_ref6) { var item = _ref6.item, + source = _ref6.source, state = _ref6.state, event = _ref6.event; if (!isAlgoliaInsightsHit(item)) { @@ -928,7 +990,7 @@ eventName: 'Item Active' }, createClickedEvent({ item: item, - items: previousItems.current + items: source.getItems().filter(isAlgoliaInsightsHit) }))] }); }); @@ -942,27 +1004,36 @@ __autocomplete_pluginOptions: options }; } + function getAlgoliaSources() { + var _context$algoliaInsig; + var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var context = arguments.length > 1 ? arguments[1] : undefined; + return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : [])); + } function getOptions(options) { return _objectSpread({ onItemsChange: function onItemsChange(_ref8) { var insights = _ref8.insights, - insightsEvents = _ref8.insightsEvents; + insightsEvents = _ref8.insightsEvents, + state = _ref8.state; insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) { return _objectSpread(_objectSpread({}, event), {}, { - algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal']) + algoliaSource: getAlgoliaSources(event.algoliaSource, state.context) }); }))); }, onSelect: function onSelect(_ref9) { var insights = _ref9.insights, - insightsEvents = _ref9.insightsEvents; + insightsEvents = _ref9.insightsEvents, + state = _ref9.state; insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) { return _objectSpread(_objectSpread({}, event), {}, { - algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal']) + algoliaSource: getAlgoliaSources(event.algoliaSource, state.context) }); }))); }, - onActive: noop + onActive: noop, + __autocomplete_clickAnalytics: true }, options); } function loadInsights(environment) { @@ -982,6 +1053,14 @@ } } + /** + * While `search-insights` supports both string and number user tokens, + * the Search API only accepts strings. This function normalizes the user token. + */ + function normalizeUserToken(userToken) { + return typeof userToken === 'number' ? userToken.toString() : userToken; + } + function checkOptions(options) { "development" !== 'production' ? warn(!options.debug, 'The `debug` option is meant for development debugging and should not be used in production.') : void 0; } @@ -1244,6 +1323,17 @@ }; } + /** + * Returns a full element id for an autocomplete element. + * + * @param autocompleteInstanceId The id of the autocomplete instance + * @param elementId The specific element id + * @param source The source of the element, when it needs to be scoped + */ + function getAutocompleteElementId(autocompleteInstanceId, elementId, source) { + return [autocompleteInstanceId, source === null || source === void 0 ? void 0 : source.sourceId, elementId].filter(Boolean).join('-').replace(/\s/g, ''); + } + function isOrContainsNode(parent, child) { return parent === child || parent.contains(child); } @@ -1277,6 +1367,10 @@ }; } + function getNativeEvent(event) { + return event.nativeEvent || event; + } + function createStore(reducer, props, onStoreStateChange) { var state = props.initialState; return { @@ -1350,11 +1444,13 @@ return _objectSpread2(_objectSpread2({ debug: false, openOnFocus: false, + enterKeyHint: undefined, + ignoreCompositionEvents: false, placeholder: '', autoFocus: false, defaultActiveItemId: null, stallThreshold: 300, - insights: false, + insights: undefined, environment: environment, shouldPanelOpen: function shouldPanelOpen(_ref) { var state = _ref.state; @@ -1615,7 +1711,8 @@ setIsOpen = setters.setIsOpen, setQuery = setters.setQuery, setActiveItemId = setters.setActiveItemId, - setStatus = setters.setStatus; + setStatus = setters.setStatus, + setContext = setters.setContext; setQuery(query); setActiveItemId(props.defaultActiveItemId); if (!query && props.openOnFocus === false) { @@ -1665,6 +1762,20 @@ return preResolve(itemsOrDescription, source.sourceId, store.getState()); }); })).then(resolve).then(function (responses) { + var __automaticInsights = responses.some(function (_ref2) { + var items = _ref2.items; + return isSearchResponseWithAutomaticInsightsFlag(items); + }); + + // No need to pollute the context if `__automaticInsights=false` + if (__automaticInsights) { + var _store$getState$conte; + setContext({ + algoliaInsightsPlugin: _objectSpread2(_objectSpread2({}, ((_store$getState$conte = store.getState().context) === null || _store$getState$conte === void 0 ? void 0 : _store$getState$conte.algoliaInsightsPlugin) || {}), {}, { + __automaticInsights: __automaticInsights + }) + }); + } return postResolve(responses, sources, store); }).then(function (collections) { return reshape({ @@ -1710,6 +1821,9 @@ }); return store.pendingRequests.add(request); } + function isSearchResponseWithAutomaticInsightsFlag(items) { + return !Array.isArray(items) && Boolean(items === null || items === void 0 ? void 0 : items._automaticInsights); + } var _excluded$1 = ["event", "props", "refresh", "store"]; function onKeyDown(_ref) { @@ -1721,7 +1835,8 @@ if (event.key === 'ArrowUp' || event.key === 'ArrowDown') { // eslint-disable-next-line no-inner-declarations var triggerScrollIntoView = function triggerScrollIntoView() { - var nodeItem = props.environment.document.getElementById("".concat(props.id, "-item-").concat(store.getState().activeItemId)); + var highlightedItem = getActiveItem(store.getState()); + var nodeItem = props.environment.document.getElementById(getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), highlightedItem === null || highlightedItem === void 0 ? void 0 : highlightedItem.source)); if (nodeItem) { if (nodeItem.scrollIntoViewIfNeeded) { nodeItem.scrollIntoViewIfNeeded(false); @@ -1790,7 +1905,7 @@ } else if (event.key === 'Tab') { store.dispatch('blur', null); - // Hitting the `Escape` key signals the end of a user interaction with the + // Hitting the `Tab` key signals the end of a user interaction with the // autocomplete. At this point, we should ignore any requests that are still // pending and could reopen the panel once they resolve, because that would // result in an unsolicited UI behavior. @@ -1899,9 +2014,8 @@ _excluded2 = ["inputElement", "formElement", "panelElement"], _excluded3 = ["inputElement"], _excluded4 = ["inputElement", "maxLength"], - _excluded5 = ["sourceIndex"], - _excluded6 = ["sourceIndex"], - _excluded7 = ["item", "source", "sourceIndex"]; + _excluded5 = ["source"], + _excluded6 = ["item", "source"]; function getPropGetters(_ref) { var props = _ref.props, refresh = _ref.refresh, @@ -1970,8 +2084,11 @@ role: 'combobox', 'aria-expanded': store.getState().isOpen, 'aria-haspopup': 'listbox', - 'aria-owns': store.getState().isOpen ? "".concat(props.id, "-list") : undefined, - 'aria-labelledby': "".concat(props.id, "-label") + 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref2) { + var source = _ref2.source; + return getAutocompleteElementId(props.id, 'list', source); + }).join(' ') : undefined, + 'aria-labelledby': getAutocompleteElementId(props.id, 'label') }, rest); }; var getFormProps = function getFormProps(providedProps) { @@ -2021,22 +2138,25 @@ } store.dispatch('focus', null); } - var _ref2 = providedProps || {}; - _ref2.inputElement; - var _ref2$maxLength = _ref2.maxLength, - maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength, - rest = _objectWithoutProperties$1(_ref2, _excluded4); + var _ref3 = providedProps || {}; + _ref3.inputElement; + var _ref3$maxLength = _ref3.maxLength, + maxLength = _ref3$maxLength === void 0 ? 512 : _ref3$maxLength, + rest = _objectWithoutProperties$1(_ref3, _excluded4); var activeItem = getActiveItem(store.getState()); var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || ''; var shouldFallbackKeyHint = isSamsung(userAgent); - var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search'; + var enterKeyHint = props.enterKeyHint || (activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search'); return _objectSpread2({ 'aria-autocomplete': 'both', - 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? "".concat(props.id, "-item-").concat(store.getState().activeItemId) : undefined, - 'aria-controls': store.getState().isOpen ? "".concat(props.id, "-list") : undefined, - 'aria-labelledby': "".concat(props.id, "-label"), + 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? getAutocompleteElementId(props.id, "item-".concat(store.getState().activeItemId), activeItem === null || activeItem === void 0 ? void 0 : activeItem.source) : undefined, + 'aria-controls': store.getState().isOpen ? store.getState().collections.map(function (_ref4) { + var source = _ref4.source; + return getAutocompleteElementId(props.id, 'list', source); + }).join(' ') : undefined, + 'aria-labelledby': getAutocompleteElementId(props.id, 'label'), value: store.getState().completion || store.getState().query, - id: "".concat(props.id, "-input"), + id: getAutocompleteElementId(props.id, 'input'), autoComplete: 'off', autoCorrect: 'off', autoCapitalize: 'off', @@ -2047,6 +2167,20 @@ maxLength: maxLength, type: 'search', onChange: function onChange(event) { + var value = event.currentTarget.value; + if (props.ignoreCompositionEvents && getNativeEvent(event).isComposing) { + setters.setQuery(value); + return; + } + onInput(_objectSpread2({ + event: event, + props: props, + query: value.slice(0, maxLength), + refresh: refresh, + store: store + }, setters)); + }, + onCompositionEnd: function onCompositionEnd(event) { onInput(_objectSpread2({ event: event, props: props, @@ -2056,6 +2190,9 @@ }, setters)); }, onKeyDown: function onKeyDown$1(event) { + if (getNativeEvent(event).isComposing) { + return; + } onKeyDown(_objectSpread2({ event: event, props: props, @@ -2082,26 +2219,20 @@ } }, rest); }; - var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) { - return typeof sourceId !== 'undefined' ? "".concat(instanceId, "-").concat(sourceId) : instanceId; - }; - var getLabelProps = function getLabelProps(providedProps) { - var _ref3 = providedProps || {}, - sourceIndex = _ref3.sourceIndex, - rest = _objectWithoutProperties$1(_ref3, _excluded5); + var getLabelProps = function getLabelProps(rest) { return _objectSpread2({ - htmlFor: "".concat(getAutocompleteId(props.id, sourceIndex), "-input"), - id: "".concat(getAutocompleteId(props.id, sourceIndex), "-label") + htmlFor: getAutocompleteElementId(props.id, 'input'), + id: getAutocompleteElementId(props.id, 'label') }, rest); }; var getListProps = function getListProps(providedProps) { - var _ref4 = providedProps || {}, - sourceIndex = _ref4.sourceIndex, - rest = _objectWithoutProperties$1(_ref4, _excluded6); + var _ref5 = providedProps || {}, + source = _ref5.source, + rest = _objectWithoutProperties$1(_ref5, _excluded5); return _objectSpread2({ role: 'listbox', - 'aria-labelledby': "".concat(getAutocompleteId(props.id, sourceIndex), "-label"), - id: "".concat(getAutocompleteId(props.id, sourceIndex), "-list") + 'aria-labelledby': getAutocompleteElementId(props.id, 'label'), + id: getAutocompleteElementId(props.id, 'list', source) }, rest); }; var getPanelProps = function getPanelProps(rest) { @@ -2120,10 +2251,9 @@ var getItemProps = function getItemProps(providedProps) { var item = providedProps.item, source = providedProps.source, - sourceIndex = providedProps.sourceIndex, - rest = _objectWithoutProperties$1(providedProps, _excluded7); + rest = _objectWithoutProperties$1(providedProps, _excluded6); return _objectSpread2({ - id: "".concat(getAutocompleteId(props.id, sourceIndex), "-item-").concat(item.__autocomplete_id), + id: getAutocompleteElementId(props.id, "item-".concat(item.__autocomplete_id), source), role: 'option', 'aria-selected': store.getState().activeItemId === item.__autocomplete_id, onMouseMove: function onMouseMove(event) { @@ -2344,6 +2474,7 @@ // we lose track of the highlighted index. (Query-suggestions use-case) action.props.openOnFocus === true ? action.props.defaultActiveItemId : null, status: 'idle', + completion: null, query: '' }); } @@ -2399,6 +2530,7 @@ navigator: props.navigator }, setters)); function onStoreStateChange(_ref) { + var _state$context, _state$context$algoli; var prevState = _ref.prevState, state = _ref.state; props.onStateChange(_objectSpread2({ @@ -2407,6 +2539,13 @@ refresh: refresh, navigator: props.navigator }, setters)); + if (!isAlgoliaInsightsPluginEnabled() && (_state$context = state.context) !== null && _state$context !== void 0 && (_state$context$algoli = _state$context.algoliaInsightsPlugin) !== null && _state$context$algoli !== void 0 && _state$context$algoli.__automaticInsights && props.insights !== false) { + var plugin = createAlgoliaInsightsPlugin({ + __autocomplete_clickAnalytics: false + }); + props.plugins.push(plugin); + subscribePlugins([plugin]); + } } function refresh() { return onInput(_objectSpread2({ @@ -2421,34 +2560,40 @@ store: store }, setters)); } - if (options.insights && !props.plugins.some(function (plugin) { - return plugin.name === 'aa.algoliaInsightsPlugin'; - })) { - var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights; + function subscribePlugins(plugins) { + plugins.forEach(function (plugin) { + var _plugin$subscribe; + return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread2(_objectSpread2({}, setters), {}, { + navigator: props.navigator, + refresh: refresh, + onSelect: function onSelect(fn) { + subscribers.push({ + onSelect: fn + }); + }, + onActive: function onActive(fn) { + subscribers.push({ + onActive: fn + }); + }, + onResolve: function onResolve(fn) { + subscribers.push({ + onResolve: fn + }); + } + })); + }); + } + function isAlgoliaInsightsPluginEnabled() { + return props.plugins.some(function (plugin) { + return plugin.name === 'aa.algoliaInsightsPlugin'; + }); + } + if (props.insights && !isAlgoliaInsightsPluginEnabled()) { + var insightsParams = typeof props.insights === 'boolean' ? {} : props.insights; props.plugins.push(createAlgoliaInsightsPlugin(insightsParams)); } - props.plugins.forEach(function (plugin) { - var _plugin$subscribe; - return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread2(_objectSpread2({}, setters), {}, { - navigator: props.navigator, - refresh: refresh, - onSelect: function onSelect(fn) { - subscribers.push({ - onSelect: fn - }); - }, - onActive: function onActive(fn) { - subscribers.push({ - onActive: fn - }); - }, - onResolve: function onResolve(fn) { - subscribers.push({ - onResolve: fn - }); - } - })); - }); + subscribePlugins(props.plugins); injectMetadata({ metadata: getMetadata({ plugins: props.plugins, diff --git a/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js.map b/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js.map index 6ed8d7a..db2a9e0 100644 --- a/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js.map +++ b/node_modules/@algolia/autocomplete-core/dist/umd/index.development.js.map @@ -1 +1 @@ -{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/decycle.js","../../../autocomplete-shared/dist/esm/flatten.js","../../../autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../autocomplete-shared/dist/esm/getItemsCount.js","../../../autocomplete-shared/dist/esm/invariant.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-shared/dist/esm/warn.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../src/checkOptions.ts","../../src/utils/createCancelablePromise.ts","../../src/utils/createCancelablePromiseList.ts","../../src/utils/createConcurrentSafePromise.ts","../../src/utils/getNextActiveItemId.ts","../../src/utils/getNormalizedSources.ts","../../src/utils/getActiveItem.ts","../../src/utils/isOrContainsNode.ts","../../src/utils/isSamsung.ts","../../src/utils/mapToAlgoliaResponse.ts","../../src/createStore.ts","../../src/getAutocompleteSetters.ts","../../src/getDefaultProps.ts","../../src/reshape.ts","../../src/resolve.ts","../../src/onInput.ts","../../src/onKeyDown.ts","../../src/getPropGetters.ts","../../src/metadata.ts","../../src/getCompletion.ts","../../src/stateReducer.ts","../../src/createAutocomplete.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * Decycles objects with circular references.\n * This is used to print cyclic structures in development environment only.\n */\nexport function decycle(obj) {\n var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n if (!(process.env.NODE_ENV !== 'production') || !obj || _typeof(obj) !== 'object') {\n return obj;\n }\n if (seen.has(obj)) {\n return '[Circular]';\n }\n var newSeen = seen.add(obj);\n if (Array.isArray(obj)) {\n return obj.map(function (x) {\n return decycle(x, newSeen);\n });\n }\n return Object.fromEntries(Object.entries(obj).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n return [key, decycle(value, newSeen)];\n }));\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","/**\n * Throws an error if the condition is not met in development mode.\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (!condition) {\n throw new Error(\"[Autocomplete] \".concat(typeof message === 'function' ? message() : message));\n }\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export var version = '1.9.3';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var warnCache = {\n current: {}\n};\n\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (condition) {\n return;\n }\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true;\n\n // eslint-disable-next-line no-console\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export function createClickedEvent(_ref) {\n var item = _ref.item,\n items = _ref.items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.6.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true\n },\n insights: insights\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onActive: noop\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}","import { warn } from '@algolia/autocomplete-shared';\n\nimport { AutocompleteOptions, BaseItem } from './types';\n\nexport function checkOptions(\n options: AutocompleteOptions\n) {\n warn(\n !options.debug,\n 'The `debug` option is meant for development debugging and should not be used in production.'\n );\n}\n","type PromiseExecutor = (\n resolve: (value: TValue | PromiseLike) => void,\n reject: (reason?: any) => void\n) => void;\n\ntype CancelablePromiseState = {\n isCanceled: boolean;\n onCancelList: Array<(...args: any[]) => any>;\n};\n\nfunction createInternalCancelablePromise(\n promise: Promise,\n initialState: CancelablePromiseState\n): CancelablePromise {\n const state = initialState;\n\n return {\n then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(\n promise.then(\n createCallback(onfulfilled, state, promise),\n createCallback(onrejected, state, promise)\n ),\n state\n );\n },\n catch(onrejected) {\n return createInternalCancelablePromise(\n promise.catch(createCallback(onrejected, state, promise)),\n state\n );\n },\n finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n\n return createInternalCancelablePromise(\n promise.finally(\n createCallback(\n onfinally &&\n (() => {\n state.onCancelList = [];\n\n return onfinally();\n }),\n state,\n promise\n )\n ),\n state\n );\n },\n cancel() {\n state.isCanceled = true;\n const callbacks = state.onCancelList;\n state.onCancelList = [];\n\n callbacks.forEach((callback) => {\n callback();\n });\n },\n isCanceled() {\n return state.isCanceled === true;\n },\n };\n}\n\nexport type CancelablePromise = {\n then(\n onfulfilled?:\n | ((\n value: TValue\n ) =>\n | TResultFulfilled\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null,\n onrejected?:\n | ((\n reason: any\n ) =>\n | TResultRejected\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n catch(\n onrejected?:\n | ((\n reason: any\n ) => TResult | PromiseLike | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n finally(\n onfinally?: (() => void) | undefined | null\n ): CancelablePromise;\n cancel(): void;\n isCanceled(): boolean;\n};\n\nexport function createCancelablePromise(\n executor: PromiseExecutor\n): CancelablePromise {\n return createInternalCancelablePromise(\n new Promise((resolve, reject) => {\n return executor(resolve, reject);\n }),\n { isCanceled: false, onCancelList: [] }\n );\n}\n\ncreateCancelablePromise.resolve = (\n value?: TValue | PromiseLike | CancelablePromise\n) => cancelable(Promise.resolve(value));\n\ncreateCancelablePromise.reject = (reason?: any) =>\n cancelable(Promise.reject(reason));\n\nexport function cancelable(promise: Promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: [],\n });\n}\n\nfunction createCallback(\n onResult: ((...args: any[]) => any) | null | undefined,\n state: CancelablePromiseState,\n fallback: any\n) {\n if (!onResult) {\n return fallback;\n }\n\n return function callback(arg?: any) {\n if (state.isCanceled) {\n return arg;\n }\n\n return onResult(arg);\n };\n}\n","import { CancelablePromise } from '.';\n\nexport type CancelablePromiseList = {\n /**\n * Add a cancelable promise to the list.\n *\n * @param cancelablePromise The cancelable promise to add.\n */\n add(cancelablePromise: CancelablePromise): CancelablePromise;\n /**\n * Cancel all pending promises.\n *\n * Requests aren't actually stopped. All pending promises will settle, but\n * attached handlers won't run.\n */\n cancelAll(): void;\n /**\n * Whether there are pending promises in the list.\n */\n isEmpty(): boolean;\n};\n\nexport function createCancelablePromiseList<\n TValue\n>(): CancelablePromiseList {\n let list: Array> = [];\n\n return {\n add(cancelablePromise) {\n list.push(cancelablePromise);\n\n return cancelablePromise.finally(() => {\n list = list.filter((item) => item !== cancelablePromise);\n });\n },\n cancelAll() {\n list.forEach((promise) => promise.cancel());\n },\n isEmpty() {\n return list.length === 0;\n },\n };\n}\n","import { MaybePromise } from '@algolia/autocomplete-shared';\n\n/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n let basePromiseId = -1;\n let latestResolvedId = -1;\n let latestResolvedValue: unknown = undefined;\n\n return function runConcurrentSafePromise(\n promise: MaybePromise\n ) {\n basePromiseId++;\n const currentPromiseId = basePromiseId;\n\n return Promise.resolve(promise).then((x) => {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue as TValue;\n }\n\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n\n return x;\n });\n };\n}\n","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(\n moveAmount: number,\n baseIndex: number | null,\n itemCount: number,\n defaultActiveItemId: number | null\n): number | null {\n if (!itemCount) {\n return null;\n }\n\n if (\n moveAmount < 0 &&\n (baseIndex === null || (defaultActiveItemId !== null && baseIndex === 0))\n ) {\n return itemCount + moveAmount;\n }\n\n const numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n\n return numericIndex;\n}\n","import { invariant, decycle, noop } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteSource,\n BaseItem,\n GetSources,\n GetSourcesParams,\n InternalAutocompleteSource,\n InternalGetSources,\n} from '../types';\n\nexport function getNormalizedSources(\n getSources: GetSources,\n params: GetSourcesParams\n): ReturnType> {\n const seenSourceIds: string[] = [];\n\n return Promise.resolve(getSources(params)).then((sources) => {\n invariant(\n Array.isArray(sources),\n () =>\n `The \\`getSources\\` function must return an array of sources but returned type ${JSON.stringify(\n typeof sources\n )}:\\n\\n${JSON.stringify(decycle(sources), null, 2)}`\n );\n\n return Promise.all(\n sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter((maybeSource: any): maybeSource is AutocompleteSource =>\n Boolean(maybeSource)\n )\n .map((source) => {\n invariant(\n typeof source.sourceId === 'string',\n 'A source must provide a `sourceId` string.'\n );\n\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\n `[Autocomplete] The \\`sourceId\\` ${JSON.stringify(\n source.sourceId\n )} is not unique.`\n );\n }\n\n seenSourceIds.push(source.sourceId);\n\n const defaultSource: Omit<\n InternalAutocompleteSource,\n 'sourceId' | 'getItems'\n > = {\n getItemInputValue({ state }) {\n return state.query;\n },\n getItemUrl() {\n return undefined;\n },\n onSelect({ setIsOpen }) {\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop,\n };\n\n Object.keys(defaultSource).forEach((key) => {\n defaultSource[key].__default = true;\n });\n\n const normalizedSource: InternalAutocompleteSource = {\n ...defaultSource,\n ...source,\n };\n\n return Promise.resolve(normalizedSource);\n })\n );\n });\n}\n","import { AutocompleteCollection, AutocompleteState, BaseItem } from '../types';\n\n// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(\n state: AutocompleteState\n): AutocompleteCollection | undefined {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n const accumulatedCollectionsCount = state.collections\n .map((collections) => collections.items.length)\n .reduce((acc, collectionsCount, index) => {\n const previousValue = acc[index - 1] || 0;\n const nextValue = previousValue + collectionsCount;\n\n acc.push(nextValue);\n\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n const collectionIndex = accumulatedCollectionsCount.reduce((acc, current) => {\n if (current <= state.activeItemId!) {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId({\n state,\n collection,\n}: {\n state: AutocompleteState;\n collection: AutocompleteCollection;\n}): number {\n let isOffsetFound = false;\n let counter = 0;\n let previousItemsOffset = 0;\n\n while (isOffsetFound === false) {\n const currentCollection = state.collections[counter];\n\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n\n previousItemsOffset += currentCollection.items.length;\n\n counter++;\n }\n\n return state.activeItemId! - previousItemsOffset;\n}\n\nexport function getActiveItem(\n state: AutocompleteState\n) {\n const collection = getCollectionFromActiveItemId(state);\n\n if (!collection) {\n return null;\n }\n\n const item = collection.items[getRelativeActiveItemId({ state, collection })];\n const source = collection.source;\n const itemInputValue = source.getItemInputValue({ item, state });\n const itemUrl = source.getItemUrl({ item, state });\n\n return {\n item,\n itemInputValue,\n itemUrl,\n source,\n };\n}\n","export function isOrContainsNode(parent: Node, child: Node) {\n return parent === child || parent.contains(child);\n}\n","const regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\n\nexport function isSamsung(userAgent: string) {\n return Boolean(userAgent && userAgent.match(regex));\n}\n","import type {\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\n\nexport function mapToAlgoliaResponse(\n rawResults: Array | SearchForFacetValuesResponse>\n) {\n return {\n results: rawResults,\n hits: rawResults\n .map((result) => (result as SearchResponse).hits)\n .filter(Boolean),\n facetHits: rawResults\n .map((result) =>\n (result as SearchForFacetValuesResponse).facetHits?.map((facetHit) => {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted,\n },\n },\n };\n })\n )\n .filter(Boolean),\n };\n}\n","import {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n Reducer,\n} from './types';\nimport { createCancelablePromiseList } from './utils';\n\ntype OnStoreStateChange = ({\n prevState,\n state,\n}: {\n prevState: AutocompleteState;\n state: AutocompleteState;\n}) => void;\n\nexport function createStore(\n reducer: Reducer,\n props: InternalAutocompleteOptions,\n onStoreStateChange: OnStoreStateChange\n): AutocompleteStore {\n let state = props.initialState;\n\n return {\n getState() {\n return state;\n },\n dispatch(action, payload) {\n const prevState = { ...state };\n state = reducer(state, {\n type: action,\n props,\n payload,\n });\n\n onStoreStateChange({ state, prevState });\n },\n pendingRequests: createCancelablePromiseList(),\n };\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteApi,\n AutocompleteCollection,\n AutocompleteStore,\n BaseItem,\n} from './types';\n\ninterface GetAutocompleteSettersOptions {\n store: AutocompleteStore;\n}\n\nexport function getAutocompleteSetters({\n store,\n}: GetAutocompleteSettersOptions) {\n const setActiveItemId: AutocompleteApi['setActiveItemId'] = (\n value\n ) => {\n store.dispatch('setActiveItemId', value);\n };\n\n const setQuery: AutocompleteApi['setQuery'] = (value) => {\n store.dispatch('setQuery', value);\n };\n\n const setCollections: AutocompleteApi['setCollections'] = (\n rawValue\n ) => {\n let baseItemId = 0;\n const value = rawValue.map>((collection) => ({\n ...collection,\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items as any).map((item: any) => ({\n ...item,\n __autocomplete_id: baseItemId++,\n })),\n }));\n\n store.dispatch('setCollections', value);\n };\n\n const setIsOpen: AutocompleteApi['setIsOpen'] = (value) => {\n store.dispatch('setIsOpen', value);\n };\n\n const setStatus: AutocompleteApi['setStatus'] = (value) => {\n store.dispatch('setStatus', value);\n };\n\n const setContext: AutocompleteApi['setContext'] = (value) => {\n store.dispatch('setContext', value);\n };\n\n return {\n setActiveItemId,\n setQuery,\n setCollections,\n setIsOpen,\n setStatus,\n setContext,\n };\n}\n","import {\n getItemsCount,\n generateAutocompleteId,\n flatten,\n} from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteSubscribers,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getNormalizedSources } from './utils';\n\nexport function getDefaultProps(\n props: AutocompleteOptions,\n pluginSubscribers: AutocompleteSubscribers\n): InternalAutocompleteOptions {\n /* eslint-disable no-restricted-globals */\n const environment: AutocompleteEnvironment = (\n typeof window !== 'undefined' ? window : {}\n ) as typeof window;\n /* eslint-enable no-restricted-globals */\n const plugins = props.plugins || [];\n\n return {\n debug: false,\n openOnFocus: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: false,\n environment,\n shouldPanelOpen: ({ state }) => getItemsCount(state) > 0,\n reshape: ({ sources }) => sources,\n ...props,\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: props.id ?? generateAutocompleteId(),\n plugins,\n // The following props need to be deeply defaulted.\n initialState: {\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {},\n ...props.initialState,\n },\n onStateChange(params) {\n props.onStateChange?.(params);\n plugins.forEach((x) => x.onStateChange?.(params));\n },\n onSubmit(params) {\n props.onSubmit?.(params);\n plugins.forEach((x) => x.onSubmit?.(params));\n },\n onReset(params) {\n props.onReset?.(params);\n plugins.forEach((x) => x.onReset?.(params));\n },\n getSources(params) {\n return Promise.all(\n [...plugins.map((plugin) => plugin.getSources), props.getSources]\n .filter(Boolean)\n .map((getSources) => getNormalizedSources(getSources!, params))\n )\n .then((nested) => flatten(nested))\n .then((sources) =>\n sources.map((source) => ({\n ...source,\n onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach((x) => x.onSelect?.(params));\n },\n onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach((x) => x.onActive?.(params));\n },\n onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach((x) => x.onResolve?.(params));\n },\n }))\n );\n },\n navigator: {\n navigate({ itemUrl }) {\n environment.location.assign(itemUrl);\n },\n navigateNewTab({ itemUrl }) {\n const windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference?.focus();\n },\n navigateNewWindow({ itemUrl }) {\n environment.open(itemUrl, '_blank', 'noopener');\n },\n ...props.navigator,\n },\n };\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteCollection,\n AutocompleteReshapeSourcesBySourceId,\n AutocompleteState,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\n\ntype ReshapeParams = {\n collections: Array>;\n props: InternalAutocompleteOptions;\n state: AutocompleteState;\n};\n\nexport function reshape({\n collections,\n props,\n state,\n}: ReshapeParams) {\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n const originalSourcesBySourceId = collections.reduce<\n AutocompleteReshapeSourcesBySourceId\n >(\n (acc, collection) => ({\n ...acc,\n [collection.source.sourceId]: {\n ...collection.source,\n getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n },\n },\n }),\n {}\n );\n\n const { sourcesBySourceId } = props.plugins.reduce(\n (acc, plugin) => {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n },\n {\n sourcesBySourceId: originalSourcesBySourceId,\n state,\n }\n );\n\n const reshapeSources = props.reshape({\n sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state,\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources)\n .filter(Boolean)\n .map((source) => {\n return {\n source,\n items: source.getItems(),\n };\n });\n}\n","import type {\n Execute,\n ExecuteResponse,\n RequesterDescription,\n TransformResponse,\n} from '@algolia/autocomplete-preset-algolia';\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteSource,\n OnResolveParams,\n} from './types';\nimport { mapToAlgoliaResponse } from './utils';\n\nfunction isDescription(\n item:\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n | PackedDescription\n): item is RequestDescriptionPreResolved {\n return Boolean((item as RequestDescriptionPreResolved).execute);\n}\n\nfunction isRequesterDescription(\n description: TItem[] | TItem[][] | RequesterDescription\n): description is RequesterDescription {\n return Boolean((description as RequesterDescription)?.execute);\n}\n\ntype PackedDescription = {\n searchClient: SearchClient;\n execute: Execute;\n requesterId?: string;\n items: RequestDescriptionPreResolved['requests'];\n};\n\ntype RequestDescriptionPreResolved = Pick<\n RequesterDescription,\n 'execute' | 'requesterId' | 'searchClient' | 'transformResponse'\n> & {\n requests: Array<{\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse;\n }>;\n};\n\ntype RequestDescriptionPreResolvedCustom = {\n items: TItem[] | TItem[][];\n sourceId: string;\n transformResponse?: undefined;\n};\n\nexport function preResolve(\n itemsOrDescription: TItem[] | TItem[][] | RequesterDescription,\n sourceId: string,\n state: AutocompleteState\n):\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom {\n if (isRequesterDescription(itemsOrDescription)) {\n const contextParameters =\n itemsOrDescription.requesterId === 'algolia'\n ? Object.assign(\n {},\n ...Object.keys(state.context).map((key) => {\n return (state.context[key] as Record)\n ?.__algoliaSearchParameters;\n })\n )\n : {};\n\n return {\n ...itemsOrDescription,\n requests: itemsOrDescription.queries.map((query) => ({\n query:\n itemsOrDescription.requesterId === 'algolia'\n ? {\n ...query,\n params: {\n ...contextParameters,\n ...query.params,\n },\n }\n : query,\n sourceId,\n transformResponse: itemsOrDescription.transformResponse,\n })),\n };\n }\n\n return {\n items: itemsOrDescription,\n sourceId,\n };\n}\n\nexport function resolve(\n items: Array<\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n >\n) {\n const packed = items.reduce<\n Array | PackedDescription>\n >((acc, current) => {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n\n const { searchClient, execute, requesterId, requests } = current;\n\n const container = acc.find>(\n (item): item is PackedDescription => {\n return (\n isDescription(current) &&\n isDescription(item) &&\n item.searchClient === searchClient &&\n Boolean(requesterId) &&\n item.requesterId === requesterId\n );\n }\n );\n\n if (container) {\n container.items.push(...requests);\n } else {\n const request: PackedDescription = {\n execute,\n requesterId,\n items: requests,\n searchClient,\n };\n acc.push(request);\n }\n\n return acc;\n }, []);\n\n const values = packed.map<\n | Promise>\n | ReturnType>\n >((maybeDescription) => {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(\n maybeDescription as RequestDescriptionPreResolvedCustom\n );\n }\n\n const { execute, items, searchClient } =\n maybeDescription as PackedDescription;\n\n return execute({\n searchClient,\n requests: items,\n });\n });\n\n return Promise.all<\n RequestDescriptionPreResolvedCustom | ExecuteResponse\n >(values).then((responses) =>\n flatten<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >(responses)\n );\n}\n\nexport function postResolve(\n responses: Array<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >,\n sources: Array>,\n store: AutocompleteStore\n) {\n return sources.map((source) => {\n const matches = responses.filter(\n (response) => response.sourceId === source.sourceId\n );\n const results = matches.map(({ items }) => items);\n const transform = matches[0].transformResponse;\n const items = transform\n ? transform(\n mapToAlgoliaResponse(\n results as Array<\n SearchForFacetValuesResponse | SearchResponse\n >\n )\n )\n : results;\n\n source.onResolve({\n source,\n results,\n items,\n state: store.getState(),\n } as OnResolveParams);\n\n invariant(\n Array.isArray(items),\n () => `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned type ${JSON.stringify(\n typeof items\n )}:\\n\\n${JSON.stringify(decycle(items), null, 2)}.\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n invariant(\n (items as Array).every(Boolean),\n `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned ${JSON.stringify(\n undefined\n )}.\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n return {\n source,\n items,\n };\n });\n}\n","import { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport {\n AutocompleteScopeApi,\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport {\n cancelable,\n CancelablePromise,\n createConcurrentSafePromise,\n getActiveItem,\n} from './utils';\n\nlet lastStalledId: number | null = null;\n\ninterface OnInputParams\n extends AutocompleteScopeApi {\n event: any;\n /**\n * The next partial state to apply after the function is called.\n *\n * This is useful when we call `onInput` in a different scenario than an\n * actual input. For example, we use `onInput` when we click on an item,\n * but we want to close the panel in that case.\n */\n nextState?: Partial>;\n props: InternalAutocompleteOptions;\n query: string;\n store: AutocompleteStore;\n}\n\nconst runConcurrentSafePromise = createConcurrentSafePromise();\n\nexport function onInput({\n event,\n nextState = {},\n props,\n query,\n refresh,\n store,\n ...setters\n}: OnInputParams): CancelablePromise {\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n\n const { setCollections, setIsOpen, setQuery, setActiveItemId, setStatus } =\n setters;\n\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n\n if (!query && props.openOnFocus === false) {\n const collections = store.getState().collections.map((collection) => ({\n ...collection,\n items: [],\n }));\n\n setStatus('idle');\n setCollections(collections);\n setIsOpen(\n nextState.isOpen ?? props.shouldPanelOpen({ state: store.getState() })\n );\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n const request = cancelable(\n runConcurrentSafePromise(collections).then(() => Promise.resolve())\n );\n\n return store.pendingRequests.add(request);\n }\n\n setStatus('loading');\n\n lastStalledId = props.environment.setTimeout(() => {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n const request = cancelable(\n runConcurrentSafePromise(\n props\n .getSources({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n .then((sources) => {\n return Promise.all(\n sources.map((source) => {\n return Promise.resolve(\n source.getItems({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n ).then((itemsOrDescription) =>\n preResolve(\n itemsOrDescription,\n source.sourceId,\n store.getState()\n )\n );\n })\n )\n .then(resolve)\n .then((responses) => postResolve(responses, sources, store))\n .then((collections) =>\n reshape({ collections, props, state: store.getState() })\n );\n })\n )\n )\n .then((collections) => {\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n\n setCollections(collections as any);\n\n const isPanelOpen = props.shouldPanelOpen({ state: store.getState() });\n\n setIsOpen(\n nextState.isOpen ??\n ((props.openOnFocus && !query && isPanelOpen) || isPanelOpen)\n );\n\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n })\n .finally(() => {\n setStatus('idle');\n\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n\n return store.pendingRequests.add(request);\n}\n","import { onInput } from './onInput';\nimport {\n ActionType,\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getActiveItem } from './utils';\n\ninterface OnKeyDownOptions\n extends AutocompleteScopeApi {\n event: KeyboardEvent;\n props: InternalAutocompleteOptions;\n store: AutocompleteStore;\n}\n\nexport function onKeyDown({\n event,\n props,\n refresh,\n store,\n ...setters\n}: OnKeyDownOptions): void {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n function triggerScrollIntoView() {\n const nodeItem = props.environment.document.getElementById(\n `${props.id}-item-${store.getState().activeItemId}`\n );\n\n if (nodeItem) {\n if ((nodeItem as any).scrollIntoViewIfNeeded) {\n (nodeItem as any).scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }\n\n // eslint-disable-next-line no-inner-declarations\n function triggerOnActive() {\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n }\n\n // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (\n store.getState().isOpen === false &&\n (props.openOnFocus || Boolean(store.getState().query))\n ) {\n onInput({\n event,\n props,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n }).then(() => {\n store.dispatch(event.key as ActionType, {\n nextActiveItemId: props.defaultActiveItemId,\n });\n\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (\n store.getState().activeItemId === null ||\n store\n .getState()\n .collections.every((collection) => collection.items.length === 0)\n ) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n\n const { item, itemInputValue, itemUrl, source } = getActiveItem(\n store.getState()\n )!;\n\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewTab({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewWindow({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigate({\n itemUrl,\n item,\n state: store.getState(),\n });\n\n return;\n }\n\n onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n }).then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n }\n }\n}\n","import { noop } from '@algolia/autocomplete-shared';\n\nimport { onInput } from './onInput';\nimport { onKeyDown } from './onKeyDown';\nimport {\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n GetEnvironmentProps,\n GetFormProps,\n GetInputProps,\n GetItemProps,\n GetLabelProps,\n GetListProps,\n GetPanelProps,\n GetRootProps,\n InternalAutocompleteOptions,\n} from './types';\nimport { getActiveItem, isOrContainsNode, isSamsung } from './utils';\n\ninterface GetPropGettersOptions\n extends AutocompleteScopeApi {\n store: AutocompleteStore;\n props: InternalAutocompleteOptions;\n}\n\nexport function getPropGetters<\n TItem extends BaseItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n>({ props, refresh, store, ...setters }: GetPropGettersOptions) {\n const getEnvironmentProps: GetEnvironmentProps = (providedProps) => {\n const { inputElement, formElement, panelElement, ...rest } = providedProps;\n\n function onMouseDownOrTouchStart(event: MouseEvent | TouchEvent) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n const isAutocompleteInteraction =\n store.getState().isOpen || !store.pendingRequests.isEmpty();\n\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n const isTargetWithinAutocomplete = [formElement, panelElement].some(\n (contextNode) => {\n return isOrContainsNode(contextNode, event.target as Node);\n }\n );\n\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n\n return {\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove(event: TouchEvent) {\n if (\n store.getState().isOpen === false ||\n inputElement !== props.environment.document.activeElement ||\n event.target === inputElement\n ) {\n return;\n }\n\n inputElement.blur();\n },\n ...rest,\n };\n };\n\n const getRootProps: GetRootProps = (rest) => {\n return {\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': store.getState().isOpen ? `${props.id}-list` : undefined,\n 'aria-labelledby': `${props.id}-label`,\n ...rest,\n };\n };\n\n const getFormProps: GetFormProps = (providedProps) => {\n const { inputElement, ...rest } = providedProps;\n\n return {\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onSubmit({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('submit', null);\n providedProps.inputElement?.blur();\n },\n onReset: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onReset({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('reset', null);\n providedProps.inputElement?.focus();\n },\n ...rest,\n };\n };\n\n const getInputProps: GetInputProps = (\n providedProps\n ) => {\n function onFocus(event: TEvent) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput({\n event,\n props,\n query: store.getState().completion || store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n store.dispatch('focus', null);\n }\n\n const { inputElement, maxLength = 512, ...rest } = providedProps || {};\n const activeItem = getActiveItem(store.getState());\n\n const userAgent = props.environment.navigator?.userAgent || '';\n const shouldFallbackKeyHint = isSamsung(userAgent);\n const enterKeyHint =\n activeItem?.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';\n\n return {\n 'aria-autocomplete': 'both',\n 'aria-activedescendant':\n store.getState().isOpen && store.getState().activeItemId !== null\n ? `${props.id}-item-${store.getState().activeItemId}`\n : undefined,\n 'aria-controls': store.getState().isOpen ? `${props.id}-list` : undefined,\n 'aria-labelledby': `${props.id}-label`,\n value: store.getState().completion || store.getState().query,\n id: `${props.id}-input`,\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength,\n type: 'search',\n onChange: (event) => {\n onInput({\n event,\n props,\n query: (\n (event as unknown as Event).currentTarget as HTMLInputElement\n ).value.slice(0, maxLength),\n refresh,\n store,\n ...setters,\n });\n },\n onKeyDown: (event) => {\n onKeyDown({\n event: event as unknown as KeyboardEvent,\n props,\n refresh,\n store,\n ...setters,\n });\n },\n onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: (event) => {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (\n providedProps.inputElement ===\n props.environment.document.activeElement &&\n !store.getState().isOpen\n ) {\n onFocus(event as unknown as TEvent);\n }\n },\n ...rest,\n };\n };\n\n const getAutocompleteId = (instanceId: string, sourceId?: number) => {\n return typeof sourceId !== 'undefined'\n ? `${instanceId}-${sourceId}`\n : instanceId;\n };\n\n const getLabelProps: GetLabelProps = (providedProps) => {\n const { sourceIndex, ...rest } = providedProps || {};\n\n return {\n htmlFor: `${getAutocompleteId(props.id, sourceIndex)}-input`,\n id: `${getAutocompleteId(props.id, sourceIndex)}-label`,\n ...rest,\n };\n };\n\n const getListProps: GetListProps = (providedProps) => {\n const { sourceIndex, ...rest } = providedProps || {};\n\n return {\n role: 'listbox',\n 'aria-labelledby': `${getAutocompleteId(props.id, sourceIndex)}-label`,\n id: `${getAutocompleteId(props.id, sourceIndex)}-list`,\n ...rest,\n };\n };\n\n const getPanelProps: GetPanelProps = (rest) => {\n return {\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n (event as unknown as MouseEvent).preventDefault();\n },\n onMouseLeave() {\n store.dispatch('mouseleave', null);\n },\n ...rest,\n };\n };\n\n const getItemProps: GetItemProps = (providedProps) => {\n const { item, source, sourceIndex, ...rest } = providedProps;\n\n return {\n id: `${getAutocompleteId(props.id, sourceIndex as number)}-item-${\n item.__autocomplete_id\n }`,\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n\n store.dispatch('mousemove', item.__autocomplete_id);\n\n const activeItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && activeItem) {\n const { item, itemInputValue, itemUrl, source } = activeItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n },\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n (event as unknown as MouseEvent).preventDefault();\n },\n onClick(event) {\n const itemInputValue = source.getItemInputValue({\n item,\n state: store.getState(),\n });\n const itemUrl = source.getItemUrl({\n item,\n state: store.getState(),\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n const runPreCommand = itemUrl\n ? Promise.resolve()\n : onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n });\n\n runPreCommand.then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n },\n ...rest,\n };\n };\n\n return {\n getEnvironmentProps,\n getRootProps,\n getFormProps,\n getLabelProps,\n getInputProps,\n getPanelProps,\n getListProps,\n getItemProps,\n };\n}\n","import { UserAgent, userAgents } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteOptionsWithMetadata,\n AutocompletePlugin,\n BaseItem,\n} from '.';\n\ntype AutocompleteMetadata = {\n plugins: Array<{\n name: string | undefined;\n options: string[];\n }>;\n options: Record;\n ua: UserAgent[];\n};\n\ntype GetMetadataParams = {\n plugins: Array>;\n options: AutocompleteOptionsWithMetadata;\n};\n\nexport function getMetadata({\n plugins,\n options,\n}: GetMetadataParams) {\n const optionsKey = ((options.__autocomplete_metadata\n ?.userAgents as UserAgent[]) || [])[0]?.segment;\n\n const extraOptions = optionsKey\n ? {\n [optionsKey]: Object.keys(\n (options.__autocomplete_metadata\n ?.options as AutocompleteOptions) || {}\n ),\n }\n : {};\n\n return {\n plugins: plugins.map((plugin) => ({\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || []),\n })),\n options: {\n 'autocomplete-core': Object.keys(options),\n ...extraOptions,\n },\n ua: userAgents.concat(\n (options.__autocomplete_metadata?.userAgents as any) || []\n ),\n };\n}\n\ntype InlineMetadataParams = {\n metadata: AutocompleteMetadata;\n environment: AutocompleteEnvironment;\n};\n\nexport function injectMetadata({\n metadata,\n environment,\n}: InlineMetadataParams) {\n const isMetadataEnabled =\n environment.navigator?.userAgent?.includes('Algolia Crawler');\n\n if (isMetadataEnabled) {\n const metadataContainer = environment.document.createElement('meta');\n const headRef = environment.document.querySelector('head');\n\n metadataContainer.name = 'algolia:metadata';\n\n setTimeout(() => {\n metadataContainer.content = JSON.stringify(metadata);\n headRef!.appendChild(metadataContainer);\n }, 0);\n }\n}\n","import { AutocompleteState, BaseItem } from './types';\nimport { getActiveItem } from './utils';\n\ninterface GetCompletionProps {\n state: AutocompleteState;\n}\n\nexport function getCompletion({\n state,\n}: GetCompletionProps): string | null {\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n\n return getActiveItem(state)?.itemInputValue || null;\n}\n","import { getItemsCount, invariant } from '@algolia/autocomplete-shared';\n\nimport { getCompletion } from './getCompletion';\nimport { Reducer } from './types';\nimport { getNextActiveItemId } from './utils';\n\nexport const stateReducer: Reducer = (state, action) => {\n switch (action.type) {\n case 'setActiveItemId': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'setQuery': {\n return {\n ...state,\n query: action.payload,\n completion: null,\n };\n }\n\n case 'setCollections': {\n return {\n ...state,\n collections: action.payload,\n };\n }\n\n case 'setIsOpen': {\n return {\n ...state,\n isOpen: action.payload,\n };\n }\n\n case 'setStatus': {\n return {\n ...state,\n status: action.payload,\n };\n }\n\n case 'setContext': {\n return {\n ...state,\n context: {\n ...state.context,\n ...action.payload,\n },\n };\n }\n\n case 'ArrowDown': {\n const nextState = {\n ...state,\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId')\n ? action.payload.nextActiveItemId\n : getNextActiveItemId(\n 1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'ArrowUp': {\n const nextState = {\n ...state,\n activeItemId: getNextActiveItemId(\n -1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'Escape': {\n if (state.isOpen) {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n completion: null,\n };\n }\n\n return {\n ...state,\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: [],\n };\n }\n\n case 'submit': {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n status: 'idle',\n };\n }\n\n case 'reset': {\n return {\n ...state,\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true\n ? action.props.defaultActiveItemId\n : null,\n status: 'idle',\n query: '',\n };\n }\n\n case 'focus': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n isOpen:\n (action.props.openOnFocus || Boolean(state.query)) &&\n action.props.shouldPanelOpen({ state }),\n };\n }\n\n case 'blur': {\n if (action.props.debug) {\n return state;\n }\n\n return {\n ...state,\n isOpen: false,\n activeItemId: null,\n };\n }\n\n case 'mousemove': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'mouseleave': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n };\n }\n\n default:\n invariant(\n false,\n `The reducer action ${JSON.stringify(action.type)} is not supported.`\n );\n\n return state;\n }\n};\n","import { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\n\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nimport {\n AutocompleteApi,\n AutocompleteOptions as AutocompleteCoreOptions,\n BaseItem,\n AutocompleteSubscribers,\n} from './types';\n\nexport interface AutocompleteOptionsWithMetadata\n extends AutocompleteCoreOptions {\n /**\n * @internal\n */\n __autocomplete_metadata?: Record;\n}\n\nexport function createAutocomplete<\n TItem extends BaseItem,\n TEvent = Event,\n TMouseEvent = MouseEvent,\n TKeyboardEvent = KeyboardEvent\n>(\n options: AutocompleteOptionsWithMetadata\n): AutocompleteApi {\n checkOptions(options);\n\n const subscribers: AutocompleteSubscribers = [];\n const props = getDefaultProps(options, subscribers);\n const store = createStore(stateReducer, props, onStoreStateChange);\n\n const setters = getAutocompleteSetters({ store });\n const propGetters = getPropGetters<\n TItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n >({ props, refresh, store, navigator: props.navigator, ...setters });\n\n function onStoreStateChange({ prevState, state }) {\n props.onStateChange({\n prevState,\n state,\n refresh,\n navigator: props.navigator,\n ...setters,\n });\n }\n\n function refresh() {\n return onInput({\n event: new Event('input'),\n nextState: { isOpen: store.getState().isOpen },\n props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n if (\n options.insights &&\n !props.plugins.some((plugin) => plugin.name === 'aa.algoliaInsightsPlugin')\n ) {\n const insightsParams =\n typeof options.insights === 'boolean' ? {} : options.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n\n props.plugins.forEach((plugin) =>\n plugin.subscribe?.({\n ...setters,\n navigator: props.navigator,\n refresh,\n onSelect(fn) {\n subscribers.push({ onSelect: fn });\n },\n onActive(fn) {\n subscribers.push({ onActive: fn });\n },\n onResolve(fn) {\n subscribers.push({ onResolve: fn });\n },\n })\n );\n\n injectMetadata({\n metadata: getMetadata({ plugins: props.plugins, options }),\n environment: props.environment,\n });\n\n return {\n refresh,\n navigator: props.navigator,\n ...propGetters,\n ...setters,\n };\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","from","test","len","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_typeof","obj","decycle","seen","Set","has","newSeen","add","map","x","fromEntries","entries","_ref","_ref2","key","flatten","values","reduce","a","b","concat","autocompleteId","generateAutocompleteId","getItemsCount","state","collections","sum","collection","items","invariant","condition","message","Error","isPrimitive","isEqual","first","second","keys","_Object$keys","noop","safelyRunOnBrowser","callback","window","version","userAgents","segment","warnCache","warn","sanitizedMessage","trim","hasAlreadyPrinted","console","createClickedEvent","item","index","__autocomplete_indexName","positions","findIndex","objectID","queryID","__autocomplete_queryID","algoliaSource","isModernInsightsClient","client","_split$map","split","Number","_split$map2","major","minor","v3","v2_4","v1_10","_excluded","_excluded2","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","res","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","param","createSearchInsightsApi","searchInsights","canSendHeaders","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","appId","apiKey","headers","init","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onSelect","onActiveEvent","onActive","pointer","AlgoliaAnalyticsObject","queue","loadInsights","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_ref8","_ref9","environment","errorMessage","script","document","createElement","async","src","onerror","error","body","appendChild","cause","checkOptions","process","debug","createInternalCancelablePromise","promise","initialState","then","onfulfilled","onrejected","createCallback","catch","_catch","finally","_finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","createCancelablePromiseList","list","cancelablePromise","cancelAll","isEmpty","createConcurrentSafePromise","basePromiseId","latestResolvedId","latestResolvedValue","runConcurrentSafePromise","currentPromiseId","Promise","resolve","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getNormalizedSources","getSources","seenSourceIds","sources","JSON","stringify","all","maybeSource","Boolean","sourceId","includes","defaultSource","getItemInputValue","query","getItemUrl","setIsOpen","onResolve","__default","normalizedSource","getCollectionFromActiveItemId","accumulatedCollectionsCount","collectionsCount","previousValue","nextValue","collectionIndex","activeItemId","getRelativeActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getActiveItem","itemInputValue","itemUrl","isOrContainsNode","parent","child","contains","regex","isSamsung","userAgent","match","mapToAlgoliaResponse","rawResults","results","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","createStore","reducer","props","onStoreStateChange","getState","dispatch","action","prevState","type","pendingRequests","getAutocompleteSetters","store","setActiveItemId","setQuery","setCollections","rawValue","baseItemId","__autocomplete_id","setStatus","getDefaultProps","pluginSubscribers","_props$id","plugins","openOnFocus","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","id","completion","status","context","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","plugin","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","location","assign","navigateNewTab","windowReference","open","focus","navigateNewWindow","originalSourcesBySourceId","getItems","_props$plugins$reduce","sourcesBySourceId","reshapeSources","isDescription","execute","isRequesterDescription","description","preResolve","itemsOrDescription","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","packed","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","matches","response","transform","every","lastStalledId","onInput","_ref$nextState","nextState","refresh","setters","_nextState$isOpen","_nextState$isOpen2","isPanelOpen","highlightedItem","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","preventDefault","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","rest","onMouseDownOrTouchStart","isAutocompleteInteraction","isTargetWithinAutocomplete","some","contextNode","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","role","getFormProps","_excluded3","noValidate","_providedProps$inputE","_providedProps$inputE2","getInputProps","_props$environment$na","onFocus","_ref2$maxLength","maxLength","_excluded4","activeItem","shouldFallbackKeyHint","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","onBlur","onClick","getAutocompleteId","instanceId","getLabelProps","sourceIndex","_excluded5","htmlFor","getListProps","_excluded6","getPanelProps","onMouseLeave","getItemProps","_excluded7","onMouseMove","runPreCommand","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","injectMetadata","_environment$navigato","_environment$navigato2","metadata","isMetadataEnabled","metadataContainer","headRef","querySelector","content","getCompletion","_getActiveItem","stateReducer","hasOwnProperty","createAutocomplete","subscribers","propGetters","Event","insightsParams","_plugin$subscribe"],"mappings":"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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI+O,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIE,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGH,gBAAgB,CAAE,CAAA,CAAA;EAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,mBAAmB,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAEAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAGG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA;EACnCF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAG/O,CAAAA,CAAAA,CAAC,CAAA;EAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAC,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;KACH,CAAA;AACH,CAAA,CAAA,CAAA;;AC3CA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC,CAAA;EAC3C,CAAA;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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AA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC,CAAA;;AAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAMmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAGzJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACxBY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CACtBkE,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CACFvD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAAlK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EACT8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACLkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACP1X,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;EAAE,CAAA,CAAA,CAAA,CAAA,CACpBsF,OAAO,CACV,CAAA,CACDnL,CAAI,CAAA,CAAA,CAAA,CAAC,CAACsC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAK,CAAA,CAAA;GACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOX,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACc,CAAG,CAAA,CAAA,CAChBH,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC9P,CAAG,CAAA,CAAA,CAAC,CAACyE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAK,CAAA,CAAA;GACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO0K,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpB3K,MAAM,CAACgS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA/Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EACb8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACLkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACP1X,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACV,CAAA,CACH,CAACnL,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC0J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,EAClBzS,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC2L,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfwD,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CACjB,CAAA;SACF,CAAA,CAAA;OACF,CAAC,CACH,CACE7F,CAAAA,CAAAA,CAAAA,CAAI,CAAC4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CACb5B,CAAI,CAAA,CAAA,CAAA,CAAC,CAACwK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,WAAW,CAACD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAElI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE8D,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAC3DpG,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACvM,WAAW,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChB4T,OAAO,CAAC,CAAA;EAAE5T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAXA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAEkS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;UAAEnS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;OACzD,CAAA,CAAA;GACJ,CAAA,CAAA,CAAC,CACL,CACF,CACE7F,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACvM,WAAW,CAAK,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA4X,kBAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;MAEA1E,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;MAEjBJ,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC9S,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAM6X,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG3F,CAAK,CAAA,CAAA,CAAA,CAAA,CAACyB,eAAe,CAAC,CAAA;QAAE5T,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;MAEtE3C,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAmI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACPJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC/M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAmN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ1F,CAAK,CAAA,CAAA,CAAA,CAAA,CAACqB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAChE,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAIsI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAC/D,CAAA;GAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGrH,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACkC,KAAK,CAACP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAE,CAAA,CAAC,CAAA;GAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIO,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAACjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI2H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAE,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQlW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAsCkW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAzDlW,CAAI,CAAA,CAAA,CAAA,CAAA;UAAE8O,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBoH,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnDpH,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAAEC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAamH,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnCnH,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UAAEnN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKsU,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA1BtU,MAAM,CAAA;QAE7CA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0G,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAzF,cAAA,CAAA,CAAA;EACb8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACNzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACV,CAAA,CAAA;EACJ,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CACD7K,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACbqG,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;EAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAImE,aAAa,CAAE,CAAA,CAAA;EACjBnF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC7G,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACzP,YAAY,CAACyb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAC,CAAA;EAC/C,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;EAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO1E,KAAK,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC3T,CAAG,CAAA,CAAA,CAAC+X,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AAC3C,CAAA,CAAA,CAAA;;;ECxJO,CAASkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAA5Y,CAAAA,CAAAA,CAAAA,CAAA,CAMS,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CALhCoK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAApK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAALoK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MACL2I,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA/S,CAAA,CAAA,CAAA,CAAA,CAAL+S,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MACLuF,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtY,CAAA,CAAA,CAAA,CAAA,CAAPsY,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACP9E,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxT,CAAA,CAAA,CAAA,CAAA,CAALwT,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACF+E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,GAAAnU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAApE,IAAA,CAAA6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;IAEV,CAAIuG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAAA,CAAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAIkK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAAA,CAAAA,CAAG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAE,CAAA,CAAA;AACxD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACS2Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAA9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASA,qBAAqBA,CAAG,CAAA,CAAA,CAAA;QAC/B,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAG/F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC7G,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0M,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvY,MAAA,CACrDuS,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC2B,CAAAA,CAAE,CAAAlU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAA,CAASgT,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAE,CAAA,CAACjC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClD,CAAA,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI8H,QAAQ,CAAE,CAAA,CAAA;UACZ,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAE,CAAA,CAAA;AAC3CF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAQ,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACLF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAQ,CAACG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;EAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACSC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASA,eAAeA,CAAG,CAAA,CAAA,CAAA;GACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMP,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGrH,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACkC,KAAK,CAACP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAE,CAAA,CAAC,CAAA;GAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIO,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAACjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAI2H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAE,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQlW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAsCkW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAzDlW,CAAI,CAAA,CAAA,CAAA,CAAA;YAAE8O,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBoH,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnDpH,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YAAEC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAamH,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnCnH,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YAAEnN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKsU,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA1BtU,MAAM,CAAA;UAE7CA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0G,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAzF,cAAA,CAAA,CAAA;EACb8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACNzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACV,CAAA,CAAA;EACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACAnO,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC+O,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA;;AAEtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE3F,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC3H,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChCyH,CAAK,CAAA,CAAA,CAAA,CAAA,CAACqB,WAAW,CAAIrE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACyD,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAE,CAAC7C,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAC,CACtD,CAAA,CAAA;EACA+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA7S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EACL8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACL3C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAAEoD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC7C,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAC7BkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP9E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACF+E,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACV,CAACnL,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACZoG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC9I,CAAK,CAAA,CAAA,CAAA,CAAA,CAAClK,GAAG,CAAgB,CAAA,CAAA;YACtCkZ,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAErG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC1D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;EAEF6J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,EAAE,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAxc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAU,CAACmc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAAE,CAAA,CAAC,CAAC,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACLrF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC9I,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAG,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAA;EAE7BgZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,EAAE,CAAA;EACjBL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,EAAE,CAAA;EACzB,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAIzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,QAAQ,CAAE,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACAkK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC+O,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA;GAEtB3F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC9I,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAG,CAAA,CAAA,CAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAC,CAAA;;AAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAsT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC/E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAE,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAInE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,KAAK,CAAE,CAAA,CAAA;EAC9BsT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA;;AAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACAM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC/E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAE,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAInE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAClK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,OAAO,CAAE,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEsT,KAAK,CAACP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAE,CAACjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,KAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtCwC,KAAK,CACFP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAE,CACVpS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAACoX,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAClX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKA,UAAU,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC3E,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACnE,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAC0W,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC/F,KAAK,CAAE,CAAA,CAAA;AAChBwG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC/E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAE,CAAA;EACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACF,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACAnE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC+O,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA;GAEtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAlZ,KAAA,CAAkDqR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAC7DkC,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CACjB,CAAA;QAFOxQ,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAJwC,CAAI,CAAA,CAAA,CAAA,CAAA;QAAE8O,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdsR,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPuR,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEnN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAApE,CAAA,CAAA,CAAA,CAAA,CAAA,CAANoE,MAAM,CAAA;EAI7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI+F,KAAK,CAACiP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,IAAIjP,CAAK,CAAA,CAAA,CAAA,CAAA,CAACkP,OAAO,CAAE,CAAA,CAAA;QAClC,CAAI9H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAKtV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAE,CAAA,CAAA;UACzBmI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACwG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvF,cAAA,CAAA,CAAA;EACb8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACNzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACV,CAAA,CAAA;AACFxF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC4C,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACI,cAAc,CAAC,CAAA;EAC7BvE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;YACJ7B,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;EACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI7I,CAAK,CAAA,CAAA,CAAA,CAAA,CAACmP,QAAQ,CAAE,CAAA,CAAA;QACzB,CAAI/H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAKtV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAE,CAAA,CAAA;UACzBmI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACwG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvF,cAAA,CAAA,CAAA;EACb8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACNzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACV,CAAA,CAAA;AACFxF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC4C,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACQ,iBAAiB,CAAC,CAAA;EAChC3E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;YACJ7B,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;EACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,MAAM,CAAI7I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACoP,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAExB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACL,CAAIhI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAKtV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAE,CAAA,CAAA;UACzBmI,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACwG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvF,cAAA,CAAA,CAAA;EACb8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACNzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACV,CAAA,CAAA;AACFxF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC4C,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,QAAQ,CAAC,CAAA;EACvBpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;YACJ7B,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAEAkF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA7S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EACL8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACLiO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAS,CAAE,CAAA,CAAA;EAAE/M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA;GAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5ByH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAEmB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACrB+G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP9E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EACF+E,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACV,CAACnL,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACZ/I,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACwG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvF,cAAA,CAAA,CAAA;EACb8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACNzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE4S,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACV,CAAA,CAAA;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;EACJ,CAAA,CAAA,CAAA,CAAA,CAAA;EACF,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA;;;;;;;;;ECtMO,CAASkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAAzZ,CAAAA,CAAAA,CAAAA,CAAA,CAKyC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAnE+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA/S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAL+S,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MAAEuF,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtY,CAAA,CAAA,CAAA,CAAA,CAAPsY,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MAAE9E,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxT,CAAA,CAAA,CAAA,CAAA,CAALwT,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAAK+E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,GAAAnU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAApE,IAAA,CAAA6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,IAAM6V,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAA3CA,CAAwCA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIC,aAAa,CAAK,CAAA,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAyCD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAlEC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4BF,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAApDE,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcH,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvCG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,GAAA3V,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKuV,aAAa,CAAA7V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;MAE1E,CAASkW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBA,CAAC5P,CAAAA,CAAAA,CAAAA,CAAAA,CAA8B,CAAE,CAAA,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA+U,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAEL,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACrCM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAEN,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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"} \ No newline at end of file +{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/decycle.js","../../../autocomplete-shared/dist/esm/flatten.js","../../../autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../autocomplete-shared/dist/esm/getItemsCount.js","../../../autocomplete-shared/dist/esm/invariant.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-shared/dist/esm/warn.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../src/checkOptions.ts","../../src/utils/createCancelablePromise.ts","../../src/utils/createCancelablePromiseList.ts","../../src/utils/createConcurrentSafePromise.ts","../../src/utils/getNextActiveItemId.ts","../../src/utils/getNormalizedSources.ts","../../src/utils/getActiveItem.ts","../../src/utils/getAutocompleteElementId.ts","../../src/utils/isOrContainsNode.ts","../../src/utils/isSamsung.ts","../../src/utils/mapToAlgoliaResponse.ts","../../src/utils/getNativeEvent.ts","../../src/createStore.ts","../../src/getAutocompleteSetters.ts","../../src/getDefaultProps.ts","../../src/reshape.ts","../../src/resolve.ts","../../src/onInput.ts","../../src/onKeyDown.ts","../../src/getPropGetters.ts","../../src/metadata.ts","../../src/getCompletion.ts","../../src/stateReducer.ts","../../src/createAutocomplete.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n/**\n * Decycles objects with circular references.\n * This is used to print cyclic structures in development environment only.\n */\nexport function decycle(obj) {\n var seen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n if (!(process.env.NODE_ENV !== 'production') || !obj || _typeof(obj) !== 'object') {\n return obj;\n }\n if (seen.has(obj)) {\n return '[Circular]';\n }\n var newSeen = seen.add(obj);\n if (Array.isArray(obj)) {\n return obj.map(function (x) {\n return decycle(x, newSeen);\n });\n }\n return Object.fromEntries(Object.entries(obj).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n return [key, decycle(value, newSeen)];\n }));\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","/**\n * Throws an error if the condition is not met in development mode.\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (!condition) {\n throw new Error(\"[Autocomplete] \".concat(typeof message === 'function' ? message() : message));\n }\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export var version = '1.17.7';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var warnCache = {\n current: {}\n};\n\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (condition) {\n return;\n }\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true;\n\n // eslint-disable-next-line no-console\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export function createClickedEvent(_ref) {\n var item = _ref.item,\n _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n insightsInitParams = _getOptions.insightsInitParams,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive,\n __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n if (insightsInitParams) {\n insightsClient('init', _objectSpread({\n partial: true\n }, insightsInitParams));\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n var isAuthenticatedToken = false;\n function setInsightsContext(userToken) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: _objectSpread(_objectSpread({}, __autocomplete_clickAnalytics ? {\n clickAnalytics: true\n } : {}), userToken ? {\n userToken: normalizeUserToken(userToken)\n } : {}),\n insights: insights\n }\n });\n }\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', function (userToken) {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n insightsClient('getUserToken', null, function (_error, userToken) {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n\n // Handles authenticated user token changes\n insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n } else {\n isAuthenticatedToken = false;\n insightsClient('getUserToken', null, function (_error, userToken) {\n return setInsightsContext(userToken);\n });\n }\n });\n insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event,\n source = _ref5.source;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n source = _ref6.source,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getAlgoliaSources() {\n var _context$algoliaInsig;\n var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 ? arguments[1] : undefined;\n return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : []));\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents,\n state = _ref8.state;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents,\n state = _ref9.state;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(userToken) {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}","import { warn } from '@algolia/autocomplete-shared';\n\nimport { AutocompleteOptions, BaseItem } from './types';\n\nexport function checkOptions(\n options: AutocompleteOptions\n) {\n warn(\n !options.debug,\n 'The `debug` option is meant for development debugging and should not be used in production.'\n );\n}\n","type PromiseExecutor = (\n resolve: (value: TValue | PromiseLike) => void,\n reject: (reason?: any) => void\n) => void;\n\ntype CancelablePromiseState = {\n isCanceled: boolean;\n onCancelList: Array<(...args: any[]) => any>;\n};\n\nfunction createInternalCancelablePromise(\n promise: Promise,\n initialState: CancelablePromiseState\n): CancelablePromise {\n const state = initialState;\n\n return {\n then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(\n promise.then(\n createCallback(onfulfilled, state, promise),\n createCallback(onrejected, state, promise)\n ),\n state\n );\n },\n catch(onrejected) {\n return createInternalCancelablePromise(\n promise.catch(createCallback(onrejected, state, promise)),\n state\n );\n },\n finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n\n return createInternalCancelablePromise(\n promise.finally(\n createCallback(\n onfinally &&\n (() => {\n state.onCancelList = [];\n\n return onfinally();\n }),\n state,\n promise\n )\n ),\n state\n );\n },\n cancel() {\n state.isCanceled = true;\n const callbacks = state.onCancelList;\n state.onCancelList = [];\n\n callbacks.forEach((callback) => {\n callback();\n });\n },\n isCanceled() {\n return state.isCanceled === true;\n },\n };\n}\n\nexport type CancelablePromise = {\n then(\n onfulfilled?:\n | ((\n value: TValue\n ) =>\n | TResultFulfilled\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null,\n onrejected?:\n | ((\n reason: any\n ) =>\n | TResultRejected\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n catch(\n onrejected?:\n | ((\n reason: any\n ) => TResult | PromiseLike | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n finally(\n onfinally?: (() => void) | undefined | null\n ): CancelablePromise;\n cancel(): void;\n isCanceled(): boolean;\n};\n\nexport function createCancelablePromise(\n executor: PromiseExecutor\n): CancelablePromise {\n return createInternalCancelablePromise(\n new Promise((resolve, reject) => {\n return executor(resolve, reject);\n }),\n { isCanceled: false, onCancelList: [] }\n );\n}\n\ncreateCancelablePromise.resolve = (\n value?: TValue | PromiseLike | CancelablePromise\n) => cancelable(Promise.resolve(value));\n\ncreateCancelablePromise.reject = (reason?: any) =>\n cancelable(Promise.reject(reason));\n\nexport function cancelable(promise: Promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: [],\n });\n}\n\nfunction createCallback(\n onResult: ((...args: any[]) => any) | null | undefined,\n state: CancelablePromiseState,\n fallback: any\n) {\n if (!onResult) {\n return fallback;\n }\n\n return function callback(arg?: any) {\n if (state.isCanceled) {\n return arg;\n }\n\n return onResult(arg);\n };\n}\n","import { CancelablePromise } from '.';\n\nexport type CancelablePromiseList = {\n /**\n * Add a cancelable promise to the list.\n *\n * @param cancelablePromise The cancelable promise to add.\n */\n add(cancelablePromise: CancelablePromise): CancelablePromise;\n /**\n * Cancel all pending promises.\n *\n * Requests aren't actually stopped. All pending promises will settle, but\n * attached handlers won't run.\n */\n cancelAll(): void;\n /**\n * Whether there are pending promises in the list.\n */\n isEmpty(): boolean;\n};\n\nexport function createCancelablePromiseList<\n TValue\n>(): CancelablePromiseList {\n let list: Array> = [];\n\n return {\n add(cancelablePromise) {\n list.push(cancelablePromise);\n\n return cancelablePromise.finally(() => {\n list = list.filter((item) => item !== cancelablePromise);\n });\n },\n cancelAll() {\n list.forEach((promise) => promise.cancel());\n },\n isEmpty() {\n return list.length === 0;\n },\n };\n}\n","import { MaybePromise } from '@algolia/autocomplete-shared';\n\n/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n let basePromiseId = -1;\n let latestResolvedId = -1;\n let latestResolvedValue: unknown = undefined;\n\n return function runConcurrentSafePromise(\n promise: MaybePromise\n ) {\n basePromiseId++;\n const currentPromiseId = basePromiseId;\n\n return Promise.resolve(promise).then((x) => {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue as TValue;\n }\n\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n\n return x;\n });\n };\n}\n","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(\n moveAmount: number,\n baseIndex: number | null,\n itemCount: number,\n defaultActiveItemId: number | null\n): number | null {\n if (!itemCount) {\n return null;\n }\n\n if (\n moveAmount < 0 &&\n (baseIndex === null || (defaultActiveItemId !== null && baseIndex === 0))\n ) {\n return itemCount + moveAmount;\n }\n\n const numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n\n return numericIndex;\n}\n","import { invariant, decycle, noop } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteSource,\n BaseItem,\n GetSources,\n GetSourcesParams,\n InternalAutocompleteSource,\n InternalGetSources,\n} from '../types';\n\nexport function getNormalizedSources(\n getSources: GetSources,\n params: GetSourcesParams\n): ReturnType> {\n const seenSourceIds: string[] = [];\n\n return Promise.resolve(getSources(params)).then((sources) => {\n invariant(\n Array.isArray(sources),\n () =>\n `The \\`getSources\\` function must return an array of sources but returned type ${JSON.stringify(\n typeof sources\n )}:\\n\\n${JSON.stringify(decycle(sources), null, 2)}`\n );\n\n return Promise.all(\n sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter((maybeSource: any): maybeSource is AutocompleteSource =>\n Boolean(maybeSource)\n )\n .map((source) => {\n invariant(\n typeof source.sourceId === 'string',\n 'A source must provide a `sourceId` string.'\n );\n\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\n `[Autocomplete] The \\`sourceId\\` ${JSON.stringify(\n source.sourceId\n )} is not unique.`\n );\n }\n\n seenSourceIds.push(source.sourceId);\n\n const defaultSource: Omit<\n InternalAutocompleteSource,\n 'sourceId' | 'getItems'\n > = {\n getItemInputValue({ state }) {\n return state.query;\n },\n getItemUrl() {\n return undefined;\n },\n onSelect({ setIsOpen }) {\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop,\n };\n\n Object.keys(defaultSource).forEach((key) => {\n defaultSource[key].__default = true;\n });\n\n const normalizedSource: InternalAutocompleteSource = {\n ...defaultSource,\n ...source,\n };\n\n return Promise.resolve(normalizedSource);\n })\n );\n });\n}\n","import { AutocompleteCollection, AutocompleteState, BaseItem } from '../types';\n\n// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(\n state: AutocompleteState\n): AutocompleteCollection | undefined {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n const accumulatedCollectionsCount = state.collections\n .map((collections) => collections.items.length)\n .reduce((acc, collectionsCount, index) => {\n const previousValue = acc[index - 1] || 0;\n const nextValue = previousValue + collectionsCount;\n\n acc.push(nextValue);\n\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n const collectionIndex = accumulatedCollectionsCount.reduce((acc, current) => {\n if (current <= state.activeItemId!) {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId({\n state,\n collection,\n}: {\n state: AutocompleteState;\n collection: AutocompleteCollection;\n}): number {\n let isOffsetFound = false;\n let counter = 0;\n let previousItemsOffset = 0;\n\n while (isOffsetFound === false) {\n const currentCollection = state.collections[counter];\n\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n\n previousItemsOffset += currentCollection.items.length;\n\n counter++;\n }\n\n return state.activeItemId! - previousItemsOffset;\n}\n\nexport function getActiveItem(\n state: AutocompleteState\n) {\n const collection = getCollectionFromActiveItemId(state);\n\n if (!collection) {\n return null;\n }\n\n const item = collection.items[getRelativeActiveItemId({ state, collection })];\n const source = collection.source;\n const itemInputValue = source.getItemInputValue({ item, state });\n const itemUrl = source.getItemUrl({ item, state });\n\n return {\n item,\n itemInputValue,\n itemUrl,\n source,\n };\n}\n","import type { InternalAutocompleteSource } from '../types';\n\n/**\n * Returns a full element id for an autocomplete element.\n *\n * @param autocompleteInstanceId The id of the autocomplete instance\n * @param elementId The specific element id\n * @param source The source of the element, when it needs to be scoped\n */\nexport function getAutocompleteElementId(\n autocompleteInstanceId: string,\n elementId: string,\n source?: InternalAutocompleteSource\n) {\n return [autocompleteInstanceId, source?.sourceId, elementId]\n .filter(Boolean)\n .join('-')\n .replace(/\\s/g, '');\n}\n","export function isOrContainsNode(parent: Node, child: Node) {\n return parent === child || parent.contains(child);\n}\n","const regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\n\nexport function isSamsung(userAgent: string) {\n return Boolean(userAgent && userAgent.match(regex));\n}\n","import type { SearchResponse } from '@algolia/autocomplete-shared';\nimport type { SearchForFacetValuesResponse } from '@algolia/client-search';\n\nexport function mapToAlgoliaResponse(\n rawResults: Array | SearchForFacetValuesResponse>\n) {\n return {\n results: rawResults,\n hits: rawResults\n .map((result) => (result as SearchResponse).hits)\n .filter(Boolean),\n facetHits: rawResults\n .map((result) =>\n (result as SearchForFacetValuesResponse).facetHits?.map((facetHit) => {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted,\n },\n },\n };\n })\n )\n .filter(Boolean),\n };\n}\n","export function getNativeEvent(event: TEvent) {\n return (event as unknown as { nativeEvent: TEvent }).nativeEvent || event;\n}\n","import {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n Reducer,\n} from './types';\nimport { createCancelablePromiseList } from './utils';\n\ntype OnStoreStateChange = ({\n prevState,\n state,\n}: {\n prevState: AutocompleteState;\n state: AutocompleteState;\n}) => void;\n\nexport function createStore(\n reducer: Reducer,\n props: InternalAutocompleteOptions,\n onStoreStateChange: OnStoreStateChange\n): AutocompleteStore {\n let state = props.initialState;\n\n return {\n getState() {\n return state;\n },\n dispatch(action, payload) {\n const prevState = { ...state };\n state = reducer(state, {\n type: action,\n props,\n payload,\n });\n\n onStoreStateChange({ state, prevState });\n },\n pendingRequests: createCancelablePromiseList(),\n };\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteApi,\n AutocompleteCollection,\n AutocompleteStore,\n BaseItem,\n} from './types';\n\ninterface GetAutocompleteSettersOptions {\n store: AutocompleteStore;\n}\n\nexport function getAutocompleteSetters({\n store,\n}: GetAutocompleteSettersOptions) {\n const setActiveItemId: AutocompleteApi['setActiveItemId'] = (\n value\n ) => {\n store.dispatch('setActiveItemId', value);\n };\n\n const setQuery: AutocompleteApi['setQuery'] = (value) => {\n store.dispatch('setQuery', value);\n };\n\n const setCollections: AutocompleteApi['setCollections'] = (\n rawValue\n ) => {\n let baseItemId = 0;\n const value = rawValue.map>((collection) => ({\n ...collection,\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items as any).map((item: any) => ({\n ...item,\n __autocomplete_id: baseItemId++,\n })),\n }));\n\n store.dispatch('setCollections', value);\n };\n\n const setIsOpen: AutocompleteApi['setIsOpen'] = (value) => {\n store.dispatch('setIsOpen', value);\n };\n\n const setStatus: AutocompleteApi['setStatus'] = (value) => {\n store.dispatch('setStatus', value);\n };\n\n const setContext: AutocompleteApi['setContext'] = (value) => {\n store.dispatch('setContext', value);\n };\n\n return {\n setActiveItemId,\n setQuery,\n setCollections,\n setIsOpen,\n setStatus,\n setContext,\n };\n}\n","import {\n getItemsCount,\n generateAutocompleteId,\n flatten,\n} from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteSubscribers,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getNormalizedSources } from './utils';\n\nexport function getDefaultProps(\n props: AutocompleteOptions,\n pluginSubscribers: AutocompleteSubscribers\n): InternalAutocompleteOptions {\n /* eslint-disable no-restricted-globals */\n const environment: AutocompleteEnvironment = (\n typeof window !== 'undefined' ? window : {}\n ) as typeof window;\n /* eslint-enable no-restricted-globals */\n const plugins = props.plugins || [];\n\n return {\n debug: false,\n openOnFocus: false,\n enterKeyHint: undefined,\n ignoreCompositionEvents: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: undefined,\n environment,\n shouldPanelOpen: ({ state }) => getItemsCount(state) > 0,\n reshape: ({ sources }) => sources,\n ...props,\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: props.id ?? generateAutocompleteId(),\n plugins,\n // The following props need to be deeply defaulted.\n initialState: {\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {},\n ...props.initialState,\n },\n onStateChange(params) {\n props.onStateChange?.(params);\n plugins.forEach((x) => x.onStateChange?.(params));\n },\n onSubmit(params) {\n props.onSubmit?.(params);\n plugins.forEach((x) => x.onSubmit?.(params));\n },\n onReset(params) {\n props.onReset?.(params);\n plugins.forEach((x) => x.onReset?.(params));\n },\n getSources(params) {\n return Promise.all(\n [...plugins.map((plugin) => plugin.getSources), props.getSources]\n .filter(Boolean)\n .map((getSources) => getNormalizedSources(getSources!, params))\n )\n .then((nested) => flatten(nested))\n .then((sources) =>\n sources.map((source) => ({\n ...source,\n onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach((x) => x.onSelect?.(params));\n },\n onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach((x) => x.onActive?.(params));\n },\n onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach((x) => x.onResolve?.(params));\n },\n }))\n );\n },\n navigator: {\n navigate({ itemUrl }) {\n environment.location.assign(itemUrl);\n },\n navigateNewTab({ itemUrl }) {\n const windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference?.focus();\n },\n navigateNewWindow({ itemUrl }) {\n environment.open(itemUrl, '_blank', 'noopener');\n },\n ...props.navigator,\n },\n };\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteCollection,\n AutocompleteReshapeSourcesBySourceId,\n AutocompleteState,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\n\ntype ReshapeParams = {\n collections: Array>;\n props: InternalAutocompleteOptions;\n state: AutocompleteState;\n};\n\nexport function reshape({\n collections,\n props,\n state,\n}: ReshapeParams) {\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n const originalSourcesBySourceId = collections.reduce<\n AutocompleteReshapeSourcesBySourceId\n >(\n (acc, collection) => ({\n ...acc,\n [collection.source.sourceId]: {\n ...collection.source,\n getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n },\n },\n }),\n {}\n );\n\n const { sourcesBySourceId } = props.plugins.reduce(\n (acc, plugin) => {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n },\n {\n sourcesBySourceId: originalSourcesBySourceId,\n state,\n }\n );\n\n const reshapeSources = props.reshape({\n sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state,\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources)\n .filter(Boolean)\n .map((source) => {\n return {\n source,\n items: source.getItems(),\n };\n });\n}\n","import type {\n Execute,\n ExecuteResponse,\n RequesterDescription,\n TransformResponse,\n} from '@algolia/autocomplete-preset-algolia';\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport type { SearchResponse } from '@algolia/autocomplete-shared';\nimport {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteSource,\n OnResolveParams,\n} from './types';\nimport { mapToAlgoliaResponse } from './utils';\n\nfunction isDescription(\n item:\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n | PackedDescription\n): item is RequestDescriptionPreResolved {\n return Boolean((item as RequestDescriptionPreResolved).execute);\n}\n\nfunction isRequesterDescription(\n description: TItem[] | TItem[][] | RequesterDescription\n): description is RequesterDescription {\n return Boolean((description as RequesterDescription)?.execute);\n}\n\ntype PackedDescription = {\n searchClient: SearchClient;\n execute: Execute;\n requesterId?: string;\n items: RequestDescriptionPreResolved['requests'];\n};\n\ntype RequestDescriptionPreResolved = Pick<\n RequesterDescription,\n 'execute' | 'requesterId' | 'searchClient' | 'transformResponse'\n> & {\n requests: Array<{\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse;\n }>;\n};\n\ntype RequestDescriptionPreResolvedCustom = {\n items: TItem[] | TItem[][];\n sourceId: string;\n transformResponse?: undefined;\n};\n\nexport function preResolve(\n itemsOrDescription: TItem[] | TItem[][] | RequesterDescription,\n sourceId: string,\n state: AutocompleteState\n):\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom {\n if (isRequesterDescription(itemsOrDescription)) {\n const contextParameters =\n itemsOrDescription.requesterId === 'algolia'\n ? Object.assign(\n {},\n ...Object.keys(state.context).map((key) => {\n return (state.context[key] as Record)\n ?.__algoliaSearchParameters;\n })\n )\n : {};\n\n return {\n ...itemsOrDescription,\n requests: itemsOrDescription.queries.map((query) => ({\n query:\n itemsOrDescription.requesterId === 'algolia'\n ? {\n ...query,\n params: {\n ...contextParameters,\n ...query.params,\n },\n }\n : query,\n sourceId,\n transformResponse: itemsOrDescription.transformResponse,\n })),\n };\n }\n\n return {\n items: itemsOrDescription,\n sourceId,\n };\n}\n\nexport function resolve(\n items: Array<\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n >\n) {\n const packed = items.reduce<\n Array | PackedDescription>\n >((acc, current) => {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n\n const { searchClient, execute, requesterId, requests } = current;\n\n const container = acc.find>(\n (item): item is PackedDescription => {\n return (\n isDescription(current) &&\n isDescription(item) &&\n item.searchClient === searchClient &&\n Boolean(requesterId) &&\n item.requesterId === requesterId\n );\n }\n );\n\n if (container) {\n container.items.push(...requests);\n } else {\n const request: PackedDescription = {\n execute,\n requesterId,\n items: requests,\n searchClient,\n };\n acc.push(request);\n }\n\n return acc;\n }, []);\n\n const values = packed.map<\n | Promise>\n | ReturnType>\n >((maybeDescription) => {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(\n maybeDescription as RequestDescriptionPreResolvedCustom\n );\n }\n\n const { execute, items, searchClient } =\n maybeDescription as PackedDescription;\n\n return execute({\n searchClient,\n requests: items,\n });\n });\n\n return Promise.all<\n RequestDescriptionPreResolvedCustom | ExecuteResponse\n >(values).then((responses) =>\n flatten<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >(responses)\n );\n}\n\nexport function postResolve(\n responses: Array<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >,\n sources: Array>,\n store: AutocompleteStore\n) {\n return sources.map((source) => {\n const matches = responses.filter(\n (response) => response.sourceId === source.sourceId\n );\n const results = matches.map(({ items }) => items);\n const transform = matches[0].transformResponse;\n const items = transform\n ? transform(\n mapToAlgoliaResponse(\n results as Array<\n SearchForFacetValuesResponse | SearchResponse\n >\n )\n )\n : results;\n\n source.onResolve({\n source,\n results,\n items,\n state: store.getState(),\n } as OnResolveParams);\n\n invariant(\n Array.isArray(items),\n () => `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned type ${JSON.stringify(\n typeof items\n )}:\\n\\n${JSON.stringify(decycle(items), null, 2)}.\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n invariant(\n (items as Array).every(Boolean),\n `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned ${JSON.stringify(\n undefined\n )}.\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n return {\n source,\n items,\n };\n });\n}\n","import { SearchResponse } from '@algolia/autocomplete-shared';\nimport { SearchForFacetValuesResponse } from '@algolia/client-search';\n\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport {\n AutocompleteScopeApi,\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport {\n cancelable,\n CancelablePromise,\n createConcurrentSafePromise,\n getActiveItem,\n} from './utils';\n\nlet lastStalledId: number | null = null;\n\ninterface OnInputParams\n extends AutocompleteScopeApi {\n event: any;\n /**\n * The next partial state to apply after the function is called.\n *\n * This is useful when we call `onInput` in a different scenario than an\n * actual input. For example, we use `onInput` when we click on an item,\n * but we want to close the panel in that case.\n */\n nextState?: Partial>;\n props: InternalAutocompleteOptions;\n query: string;\n store: AutocompleteStore;\n}\n\nconst runConcurrentSafePromise = createConcurrentSafePromise();\n\nexport function onInput({\n event,\n nextState = {},\n props,\n query,\n refresh,\n store,\n ...setters\n}: OnInputParams): CancelablePromise {\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n\n const {\n setCollections,\n setIsOpen,\n setQuery,\n setActiveItemId,\n setStatus,\n setContext,\n } = setters;\n\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n\n if (!query && props.openOnFocus === false) {\n const collections = store.getState().collections.map((collection) => ({\n ...collection,\n items: [],\n }));\n\n setStatus('idle');\n setCollections(collections);\n setIsOpen(\n nextState.isOpen ?? props.shouldPanelOpen({ state: store.getState() })\n );\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n const request = cancelable(\n runConcurrentSafePromise(collections).then(() => Promise.resolve())\n );\n\n return store.pendingRequests.add(request);\n }\n\n setStatus('loading');\n\n lastStalledId = props.environment.setTimeout(() => {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n const request = cancelable(\n runConcurrentSafePromise(\n props\n .getSources({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n .then((sources) => {\n return Promise.all(\n sources.map((source) => {\n return Promise.resolve(\n source.getItems({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n ).then((itemsOrDescription) =>\n preResolve(\n itemsOrDescription,\n source.sourceId,\n store.getState()\n )\n );\n })\n )\n .then(resolve)\n .then((responses) => {\n const __automaticInsights = responses.some(({ items }) =>\n isSearchResponseWithAutomaticInsightsFlag(items)\n );\n\n // No need to pollute the context if `__automaticInsights=false`\n if (__automaticInsights) {\n setContext({\n algoliaInsightsPlugin: {\n ...((store.getState().context?.algoliaInsightsPlugin ||\n {}) as Record),\n __automaticInsights,\n },\n });\n }\n\n return postResolve(responses, sources, store);\n })\n .then((collections) =>\n reshape({ collections, props, state: store.getState() })\n );\n })\n )\n )\n .then((collections) => {\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n\n setCollections(collections as any);\n\n const isPanelOpen = props.shouldPanelOpen({ state: store.getState() });\n\n setIsOpen(\n nextState.isOpen ??\n ((props.openOnFocus && !query && isPanelOpen) || isPanelOpen)\n );\n\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n })\n .finally(() => {\n setStatus('idle');\n\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n\n return store.pendingRequests.add(request);\n}\n\nfunction isSearchResponseWithAutomaticInsightsFlag(\n items:\n | TItem[]\n | TItem[][]\n | SearchForFacetValuesResponse\n | SearchResponse\n): items is SearchResponse {\n return (\n !Array.isArray(items) &&\n Boolean((items as SearchResponse)?._automaticInsights)\n );\n}\n","import { onInput } from './onInput';\nimport {\n ActionType,\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getActiveItem, getAutocompleteElementId } from './utils';\n\ninterface OnKeyDownOptions\n extends AutocompleteScopeApi {\n event: KeyboardEvent;\n props: InternalAutocompleteOptions;\n store: AutocompleteStore;\n}\n\nexport function onKeyDown({\n event,\n props,\n refresh,\n store,\n ...setters\n}: OnKeyDownOptions): void {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n function triggerScrollIntoView() {\n const highlightedItem = getActiveItem(store.getState());\n\n const nodeItem = props.environment.document.getElementById(\n getAutocompleteElementId(\n props.id,\n `item-${store.getState().activeItemId}`,\n highlightedItem?.source\n )\n );\n\n if (nodeItem) {\n if ((nodeItem as any).scrollIntoViewIfNeeded) {\n (nodeItem as any).scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }\n\n // eslint-disable-next-line no-inner-declarations\n function triggerOnActive() {\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n }\n\n // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (\n store.getState().isOpen === false &&\n (props.openOnFocus || Boolean(store.getState().query))\n ) {\n onInput({\n event,\n props,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n }).then(() => {\n store.dispatch(event.key as ActionType, {\n nextActiveItemId: props.defaultActiveItemId,\n });\n\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Tab` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (\n store.getState().activeItemId === null ||\n store\n .getState()\n .collections.every((collection) => collection.items.length === 0)\n ) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n\n const { item, itemInputValue, itemUrl, source } = getActiveItem(\n store.getState()\n )!;\n\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewTab({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewWindow({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigate({\n itemUrl,\n item,\n state: store.getState(),\n });\n\n return;\n }\n\n onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n }).then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n }\n }\n}\n","import { noop } from '@algolia/autocomplete-shared';\n\nimport { onInput } from './onInput';\nimport { onKeyDown } from './onKeyDown';\nimport {\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n GetEnvironmentProps,\n GetFormProps,\n GetInputProps,\n GetItemProps,\n GetLabelProps,\n GetListProps,\n GetPanelProps,\n GetRootProps,\n InternalAutocompleteOptions,\n} from './types';\nimport {\n getActiveItem,\n getAutocompleteElementId,\n isOrContainsNode,\n isSamsung,\n getNativeEvent,\n} from './utils';\n\ninterface GetPropGettersOptions\n extends AutocompleteScopeApi {\n store: AutocompleteStore;\n props: InternalAutocompleteOptions;\n}\n\nexport function getPropGetters<\n TItem extends BaseItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n>({ props, refresh, store, ...setters }: GetPropGettersOptions) {\n const getEnvironmentProps: GetEnvironmentProps = (providedProps) => {\n const { inputElement, formElement, panelElement, ...rest } = providedProps;\n\n function onMouseDownOrTouchStart(event: MouseEvent | TouchEvent) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n const isAutocompleteInteraction =\n store.getState().isOpen || !store.pendingRequests.isEmpty();\n\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n const isTargetWithinAutocomplete = [formElement, panelElement].some(\n (contextNode) => {\n return isOrContainsNode(contextNode, event.target as Node);\n }\n );\n\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n\n return {\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove(event: TouchEvent) {\n if (\n store.getState().isOpen === false ||\n inputElement !== props.environment.document.activeElement ||\n event.target === inputElement\n ) {\n return;\n }\n\n inputElement.blur();\n },\n ...rest,\n };\n };\n\n const getRootProps: GetRootProps = (rest) => {\n return {\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-controls': store.getState().isOpen\n ? store\n .getState()\n .collections.map(({ source }) =>\n getAutocompleteElementId(props.id, 'list', source)\n )\n .join(' ')\n : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n ...rest,\n };\n };\n\n const getFormProps: GetFormProps = (providedProps) => {\n const { inputElement, ...rest } = providedProps;\n\n return {\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onSubmit({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('submit', null);\n providedProps.inputElement?.blur();\n },\n onReset: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onReset({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('reset', null);\n providedProps.inputElement?.focus();\n },\n ...rest,\n };\n };\n\n const getInputProps: GetInputProps = (\n providedProps\n ) => {\n function onFocus(event: TEvent) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput({\n event,\n props,\n query: store.getState().completion || store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n store.dispatch('focus', null);\n }\n\n const { inputElement, maxLength = 512, ...rest } = providedProps || {};\n const activeItem = getActiveItem(store.getState());\n\n const userAgent = props.environment.navigator?.userAgent || '';\n const shouldFallbackKeyHint = isSamsung(userAgent);\n const enterKeyHint =\n props.enterKeyHint ||\n (activeItem?.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');\n\n return {\n 'aria-autocomplete': 'both',\n 'aria-activedescendant':\n store.getState().isOpen && store.getState().activeItemId !== null\n ? getAutocompleteElementId(\n props.id,\n `item-${store.getState().activeItemId}`,\n activeItem?.source\n )\n : undefined,\n 'aria-controls': store.getState().isOpen\n ? store\n .getState()\n .collections.map(({ source }) =>\n getAutocompleteElementId(props.id, 'list', source)\n )\n .join(' ')\n : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n value: store.getState().completion || store.getState().query,\n id: getAutocompleteElementId(props.id, 'input'),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength,\n type: 'search',\n onChange: (event) => {\n const value = (\n (event as unknown as Event).currentTarget as HTMLInputElement\n ).value;\n\n if (\n props.ignoreCompositionEvents &&\n getNativeEvent(event as unknown as InputEvent).isComposing\n ) {\n setters.setQuery(value);\n return;\n }\n\n onInput({\n event,\n props,\n query: value.slice(0, maxLength),\n refresh,\n store,\n ...setters,\n });\n },\n onCompositionEnd: (event) => {\n onInput({\n event,\n props,\n query: (\n (event as unknown as Event).currentTarget as HTMLInputElement\n ).value.slice(0, maxLength),\n refresh,\n store,\n ...setters,\n });\n },\n onKeyDown: (event) => {\n if (getNativeEvent(event as unknown as InputEvent).isComposing) {\n return;\n }\n\n onKeyDown({\n event: event as unknown as KeyboardEvent,\n props,\n refresh,\n store,\n ...setters,\n });\n },\n onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: (event) => {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (\n providedProps.inputElement ===\n props.environment.document.activeElement &&\n !store.getState().isOpen\n ) {\n onFocus(event as unknown as TEvent);\n }\n },\n ...rest,\n };\n };\n\n const getLabelProps: GetLabelProps = (rest) => {\n return {\n htmlFor: getAutocompleteElementId(props.id, 'input'),\n id: getAutocompleteElementId(props.id, 'label'),\n ...rest,\n };\n };\n\n const getListProps: GetListProps = (providedProps) => {\n const { source, ...rest } = providedProps || {};\n\n return {\n role: 'listbox',\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n id: getAutocompleteElementId(props.id, 'list', source),\n ...rest,\n };\n };\n\n const getPanelProps: GetPanelProps = (rest) => {\n return {\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n (event as unknown as MouseEvent).preventDefault();\n },\n onMouseLeave() {\n store.dispatch('mouseleave', null);\n },\n ...rest,\n };\n };\n\n const getItemProps: GetItemProps = (providedProps) => {\n const { item, source, ...rest } = providedProps;\n\n return {\n id: getAutocompleteElementId(\n props.id,\n `item-${item.__autocomplete_id}`,\n source\n ),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n\n store.dispatch('mousemove', item.__autocomplete_id);\n\n const activeItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && activeItem) {\n const { item, itemInputValue, itemUrl, source } = activeItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n },\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n (event as unknown as MouseEvent).preventDefault();\n },\n onClick(event) {\n const itemInputValue = source.getItemInputValue({\n item,\n state: store.getState(),\n });\n const itemUrl = source.getItemUrl({\n item,\n state: store.getState(),\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n const runPreCommand = itemUrl\n ? Promise.resolve()\n : onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n });\n\n runPreCommand.then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n },\n ...rest,\n };\n };\n\n return {\n getEnvironmentProps,\n getRootProps,\n getFormProps,\n getLabelProps,\n getInputProps,\n getPanelProps,\n getListProps,\n getItemProps,\n };\n}\n","import { UserAgent, userAgents } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteOptionsWithMetadata,\n AutocompletePlugin,\n BaseItem,\n} from '.';\n\ntype AutocompleteMetadata = {\n plugins: Array<{\n name: string | undefined;\n options: string[];\n }>;\n options: Record;\n ua: UserAgent[];\n};\n\ntype GetMetadataParams = {\n plugins: Array>;\n options: AutocompleteOptionsWithMetadata;\n};\n\nexport function getMetadata({\n plugins,\n options,\n}: GetMetadataParams) {\n const optionsKey = ((options.__autocomplete_metadata\n ?.userAgents as UserAgent[]) || [])[0]?.segment;\n\n const extraOptions = optionsKey\n ? {\n [optionsKey]: Object.keys(\n (options.__autocomplete_metadata\n ?.options as AutocompleteOptions) || {}\n ),\n }\n : {};\n\n return {\n plugins: plugins.map((plugin) => ({\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || []),\n })),\n options: {\n 'autocomplete-core': Object.keys(options),\n ...extraOptions,\n },\n ua: userAgents.concat(\n (options.__autocomplete_metadata?.userAgents as any) || []\n ),\n };\n}\n\ntype InlineMetadataParams = {\n metadata: AutocompleteMetadata;\n environment: AutocompleteEnvironment;\n};\n\nexport function injectMetadata({\n metadata,\n environment,\n}: InlineMetadataParams) {\n const isMetadataEnabled =\n environment.navigator?.userAgent?.includes('Algolia Crawler');\n\n if (isMetadataEnabled) {\n const metadataContainer = environment.document.createElement('meta');\n const headRef = environment.document.querySelector('head');\n\n metadataContainer.name = 'algolia:metadata';\n\n setTimeout(() => {\n metadataContainer.content = JSON.stringify(metadata);\n headRef!.appendChild(metadataContainer);\n }, 0);\n }\n}\n","import { AutocompleteState, BaseItem } from './types';\nimport { getActiveItem } from './utils';\n\ninterface GetCompletionProps {\n state: AutocompleteState;\n}\n\nexport function getCompletion({\n state,\n}: GetCompletionProps): string | null {\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n\n return getActiveItem(state)?.itemInputValue || null;\n}\n","import { getItemsCount, invariant } from '@algolia/autocomplete-shared';\n\nimport { getCompletion } from './getCompletion';\nimport { Reducer } from './types';\nimport { getNextActiveItemId } from './utils';\n\nexport const stateReducer: Reducer = (state, action) => {\n switch (action.type) {\n case 'setActiveItemId': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'setQuery': {\n return {\n ...state,\n query: action.payload,\n completion: null,\n };\n }\n\n case 'setCollections': {\n return {\n ...state,\n collections: action.payload,\n };\n }\n\n case 'setIsOpen': {\n return {\n ...state,\n isOpen: action.payload,\n };\n }\n\n case 'setStatus': {\n return {\n ...state,\n status: action.payload,\n };\n }\n\n case 'setContext': {\n return {\n ...state,\n context: {\n ...state.context,\n ...action.payload,\n },\n };\n }\n\n case 'ArrowDown': {\n const nextState = {\n ...state,\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId')\n ? action.payload.nextActiveItemId\n : getNextActiveItemId(\n 1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'ArrowUp': {\n const nextState = {\n ...state,\n activeItemId: getNextActiveItemId(\n -1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'Escape': {\n if (state.isOpen) {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n completion: null,\n };\n }\n\n return {\n ...state,\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: [],\n };\n }\n\n case 'submit': {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n status: 'idle',\n };\n }\n\n case 'reset': {\n return {\n ...state,\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true\n ? action.props.defaultActiveItemId\n : null,\n status: 'idle',\n completion: null,\n query: '',\n };\n }\n\n case 'focus': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n isOpen:\n (action.props.openOnFocus || Boolean(state.query)) &&\n action.props.shouldPanelOpen({ state }),\n };\n }\n\n case 'blur': {\n if (action.props.debug) {\n return state;\n }\n\n return {\n ...state,\n isOpen: false,\n activeItemId: null,\n };\n }\n\n case 'mousemove': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'mouseleave': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n };\n }\n\n default:\n invariant(\n false,\n `The reducer action ${JSON.stringify(action.type)} is not supported.`\n );\n\n return state;\n }\n};\n","import { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\n\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nimport {\n AutocompleteApi,\n AutocompleteOptions as AutocompleteCoreOptions,\n BaseItem,\n AutocompleteSubscribers,\n} from './types';\n\nexport interface AutocompleteOptionsWithMetadata\n extends AutocompleteCoreOptions {\n /**\n * @internal\n */\n __autocomplete_metadata?: Record;\n}\n\nexport function createAutocomplete<\n TItem extends BaseItem,\n TEvent = Event,\n TMouseEvent = MouseEvent,\n TKeyboardEvent = KeyboardEvent\n>(\n options: AutocompleteOptionsWithMetadata\n): AutocompleteApi {\n checkOptions(options);\n\n const subscribers: AutocompleteSubscribers = [];\n const props = getDefaultProps(options, subscribers);\n const store = createStore(stateReducer, props, onStoreStateChange);\n\n const setters = getAutocompleteSetters({ store });\n const propGetters = getPropGetters<\n TItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n >({ props, refresh, store, navigator: props.navigator, ...setters });\n\n function onStoreStateChange({ prevState, state }) {\n props.onStateChange({\n prevState,\n state,\n refresh,\n navigator: props.navigator,\n ...setters,\n });\n\n if (\n !isAlgoliaInsightsPluginEnabled() &&\n state.context?.algoliaInsightsPlugin?.__automaticInsights &&\n props.insights !== false\n ) {\n const plugin = createAlgoliaInsightsPlugin({\n __autocomplete_clickAnalytics: false,\n });\n\n props.plugins.push(plugin);\n\n subscribePlugins([plugin]);\n }\n }\n\n function refresh() {\n return onInput({\n event: new Event('input'),\n nextState: { isOpen: store.getState().isOpen },\n props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n function subscribePlugins(plugins: typeof props.plugins) {\n plugins.forEach((plugin) =>\n plugin.subscribe?.({\n ...setters,\n navigator: props.navigator,\n refresh,\n onSelect(fn) {\n subscribers.push({ onSelect: fn });\n },\n onActive(fn) {\n subscribers.push({ onActive: fn });\n },\n onResolve(fn) {\n subscribers.push({ onResolve: fn });\n },\n })\n );\n }\n\n function isAlgoliaInsightsPluginEnabled() {\n return props.plugins.some(\n (plugin) => plugin.name === 'aa.algoliaInsightsPlugin'\n );\n }\n\n if (props.insights && !isAlgoliaInsightsPluginEnabled()) {\n const insightsParams =\n typeof props.insights === 'boolean' ? {} : props.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n\n subscribePlugins(props.plugins);\n\n injectMetadata({\n metadata: getMetadata({ plugins: props.plugins, options }),\n environment: props.environment,\n });\n\n return {\n refresh,\n navigator: props.navigator,\n ...propGetters,\n ...setters,\n };\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","from","test","len","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_typeof","obj","decycle","seen","Set","has","newSeen","add","map","x","fromEntries","entries","_ref","_ref2","key","flatten","values","reduce","a","b","concat","autocompleteId","generateAutocompleteId","getItemsCount","state","collections","sum","collection","items","invariant","condition","message","Error","isPrimitive","isEqual","first","second","keys","_Object$keys","noop","safelyRunOnBrowser","callback","window","version","userAgents","segment","warnCache","warn","sanitizedMessage","trim","hasAlreadyPrinted","console","createClickedEvent","item","_ref$items","index","__autocomplete_indexName","positions","findIndex","objectID","queryID","__autocomplete_queryID","algoliaSource","isModernInsightsClient","client","_split$map","split","Number","_split$map2","major","minor","v3","v2_4","v1_10","_excluded","_excluded2","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","res","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","param","createSearchInsightsApi","searchInsights","canSendHeaders","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","appId","apiKey","headers","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onSelect","onActiveEvent","onActive","__autocomplete_clickAnalytics","pointer","AlgoliaAnalyticsObject","queue","loadInsights","partial","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","isAuthenticatedToken","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","getAlgoliaSources","_context$algoliaInsig","algoliaSourceBase","context","__automaticInsights","_ref8","_ref9","environment","errorMessage","script","document","createElement","async","src","onerror","error","body","appendChild","cause","checkOptions","process","debug","createInternalCancelablePromise","promise","initialState","then","onfulfilled","onrejected","createCallback","catch","_catch","finally","_finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","createCancelablePromiseList","list","cancelablePromise","cancelAll","isEmpty","createConcurrentSafePromise","basePromiseId","latestResolvedId","latestResolvedValue","runConcurrentSafePromise","currentPromiseId","Promise","resolve","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getNormalizedSources","getSources","seenSourceIds","sources","JSON","stringify","all","maybeSource","Boolean","sourceId","includes","defaultSource","getItemInputValue","query","getItemUrl","setIsOpen","onResolve","__default","normalizedSource","getCollectionFromActiveItemId","accumulatedCollectionsCount","collectionsCount","previousValue","nextValue","collectionIndex","activeItemId","getRelativeActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getActiveItem","itemInputValue","itemUrl","getAutocompleteElementId","autocompleteInstanceId","elementId","join","replace","isOrContainsNode","parent","child","contains","regex","isSamsung","userAgent","match","mapToAlgoliaResponse","rawResults","results","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","getNativeEvent","nativeEvent","createStore","reducer","props","onStoreStateChange","getState","dispatch","action","prevState","type","pendingRequests","getAutocompleteSetters","store","setActiveItemId","setQuery","setCollections","rawValue","baseItemId","__autocomplete_id","setStatus","getDefaultProps","pluginSubscribers","_props$id","plugins","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","id","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","plugin","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","location","assign","navigateNewTab","windowReference","open","focus","navigateNewWindow","originalSourcesBySourceId","_props$plugins$reduce","sourcesBySourceId","reshapeSources","isDescription","execute","isRequesterDescription","description","preResolve","itemsOrDescription","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","packed","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","matches","response","transform","every","lastStalledId","onInput","_ref$nextState","nextState","refresh","setters","_nextState$isOpen","some","isSearchResponseWithAutomaticInsightsFlag","_store$getState$conte","_nextState$isOpen2","isPanelOpen","highlightedItem","_automaticInsights","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","preventDefault","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","rest","onMouseDownOrTouchStart","isAutocompleteInteraction","isTargetWithinAutocomplete","contextNode","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","role","getFormProps","_excluded3","noValidate","_providedProps$inputE","_providedProps$inputE2","getInputProps","_props$environment$na","onFocus","_ref3$maxLength","maxLength","_excluded4","activeItem","shouldFallbackKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","isComposing","onCompositionEnd","onBlur","onClick","getLabelProps","htmlFor","getListProps","_excluded5","getPanelProps","onMouseLeave","getItemProps","_excluded6","onMouseMove","runPreCommand","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","injectMetadata","_environment$navigato","_environment$navigato2","metadata","isMetadataEnabled","metadataContainer","headRef","querySelector","content","getCompletion","_getActiveItem","stateReducer","hasOwnProperty","createAutocomplete","subscribers","propGetters","_state$context","_state$context$algoli","isAlgoliaInsightsPluginEnabled","subscribePlugins","Event","_plugin$subscribe","insightsParams"],"mappings":"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,CAAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;GACH,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;EACO,CAASoQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBA,CACjCC,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClBC,SAAwB,CACxBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CACjBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkC,CACnB,CAAA,CAAA;GACf,CAAA,CAAA,CAAA,CAAA,CAAI,CAACD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAE,CAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA;EACb,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,IACEF,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CACbC,SAAS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,KAAK,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIF,SAAS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CACzE,CAAA,CAAA;MACA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAGF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA;EAC/B,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAG,CAAA,CAAA,CAACH,SAAS,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAG,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAGA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAID,UAAU,CAAA;GAEvE,CAAA,CAAA,CAAA,CAAA,CAAII,YAAY,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAIF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAE,CAAA,CAAA;EACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,mBAAmB,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,GAAG,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAA;EAChD,CAAA,CAAA,CAAA;EAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,YAAY,CAAA;AACrB,CAAA,CAAA,CAAA;;AC7BO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAoBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClCC,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC7B3J,MAA+B,CACQ,CAAA,CAAA;IACvC,CAAM4J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAG,CAAA,CAAA,CAAA,CAAE,CAAA;AAElC,CAAA,CAAA,CAAA,CAAA,CAAOV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACQ,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3J,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAACuH,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACsC,OAAO,CAAK,CAAA,CAAA;EAC3DzP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACP1E,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC4C,OAAO,CAACuR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAA,CAAAlQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACmFmQ,CAAI,CAAA,CAAA,CAAA,CAACC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxR,SAAA,CACtFsR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CACf,EAAAlQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAQmQ,CAAAA,CAAAA,CAAAA,CAAI,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAACtR,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACoR,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CACvD,CAAA;MAED,CAAOX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACc,CAAAA,CAAAA,CAAG,CAChBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACCvL,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC2L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA;QAAA,CACvBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,CACAlR,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0E,MAAM,CAAK,CAAA,CAAA;GACfrD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOqD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0M,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnC,CAA4C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC7C,CAAA;GAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIP,aAAa,CAACQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC3M,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0M,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAA,CAAA;EAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI5P,CAAK,CAAA,CAAA,CAAA,CAAA,CAAAZ,gCAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACsBmQ,CAAI,CAAA,CAAA,CAAA,CAACC,SAAS,CAC/CtM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC0M,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChB,EACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAEAP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAC1R,CAAI,CAAA,CAAA,CAAA,CAACuF,MAAM,CAAC0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAC,CAAA;EAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,aAGL,CAAG,CAAA,CAAA,CAAA;UACFC,iBAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAnR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAA,CAAY,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAATY,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAZ,CAAA,CAAA,CAAA,CAAA,CAALY,KAAK,CAAA;YACvB,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACwQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA;GACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACDC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAG,CAAA,CAAA,CAAA;EACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOnV,SAAS,CAAA;GACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACD+O,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAhL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAA,CAAgB,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAbqR,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAArR,CAAA,CAAA,CAAA,CAAA,CAAA,CAATqR,SAAS,CAAA;YAClBA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;GACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACDnG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAExJ,CAAI,CAAA,CAAA,CAAA,CAAA;EACd4P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAE5P,CAAAA,CAAAA,CAAAA,CAAAA;SACZ,CAAA;GAEDnE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAACiE,CAAAA,CAAAA,CAAAA,CAAI,CAACyP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAC,CAAC1L,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAACtF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAK,CAAA,CAAA;EAC1CgR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAChR,CAAG,CAAA,CAAA,CAAC,CAACsR,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAI,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;QAEF,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmD,CAAAlM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpD2L,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb5M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACV,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAOyL,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,OAAO,CAACyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAC,CAAA;EAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC,CACL,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AACJ,CAAA,CAAA,CAAA;;AC9EA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA6BA,CACpC9Q,CAAAA,CAAAA,CAAAA,CAAAA,CAA+B,CACY,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA,CAAA,CAAA,CAAA,CAAM+Q,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG/Q,CAAK,CAAA,CAAA,CAAA,CAAA,CAACC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClDjB,CAAG,CAAA,CAAA,CAAC,CAACiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAKA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC3E,MAAM,CAAA;GAAC,CAAA,CAAA,CAAA,CAC9CgE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC6I,GAAG,CAAE0I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAEjP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAK,CAAA,CAAA;GAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkP,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG3I,CAAG,CAAA,CAAA,CAACvG,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAC,CAAC,CAAI,CAAA,CAAA,CAAA,CAAC,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAMmP,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGD,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGD,gBAAgB,CAAA;AAElD1I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAG,CAACnK,CAAAA,CAAAA,CAAAA,CAAI,CAAC+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA;EAEnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO5I,GAAG,CAAA;GACX,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAA;;AAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA,CAAA,CAAA,CAAA,CAAM6I,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGJ,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACtR,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAErN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAK,CAAA,CAAA;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAIA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI+E,CAAK,CAAA,CAAA,CAAA,CAAA,CAACoR,YAAa,CAAE,CAAA,CAAA;QAClC,CAAO9I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAG,CAAA,CAAA,CAAC,CAAA;EAChB,CAAA,CAAA,CAAA,CAAA,CAAA;EAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,GAAG,CAAA;GACX,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAA;AAEL,CAAA,CAAA,CAAA,CAAA,OAAOtI,CAAK,CAAA,CAAA,CAAA,CAAA,CAACC,WAAW,CAACkR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC,CAAA;EAC3C,CAAA;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBA,CAAAjS,CAAAA,CAAAA,CAAAA,CAAA,CAMrB,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CALTY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAAZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAALY,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MACLG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAf,CAAA,CAAA,CAAA,CAAA,CAAVe,UAAU,CAAA;IAKV,CAAImR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;IACzB,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAG,CAAA,CAAA,CAAC,CAAA;IACf,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAG,CAAA,CAAA,CAAC,CAAA;IAE3B,CAAOF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA;EAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMG,iBAAiB,CAAGzR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACsR,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;MAEpD,CAAIE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAKtR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAE,CAAA,CAAA;EACpCmR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACF,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAmB,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAACrR,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC3E,MAAM,CAAA;EAErD8V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAE,CAAA;EACX,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,OAAOvR,CAAK,CAAA,CAAA,CAAA,CAAA,CAACoR,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAII,mBAAmB,CAAA;EAClD,CAAA;EAEO,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaA,CAC3B1R,CAAAA,CAAAA,CAAAA,CAAAA,CAA+B,CAC/B,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,IAAMG,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG2Q,6BAA6B,CAAC9Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;GAEvD,CAAA,CAAA,CAAA,CAAA,CAAI,CAACG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAE,CAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA;EACb,CAAA,CAAA,CAAA;EAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0B,IAAI,CAAG1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAACC,CAAK,CAAA,CAAA,CAAA,CAAA,CAACiR,uBAAuB,CAAC,CAAA;EAAErR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAAEG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,EAAVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAAW,CAAC,CAAA,CAAA,CAAC,CAAC,CAAA;AAC7E,CAAA,CAAA,CAAA,CAAA,IAAMuD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGvD,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACuD,MAAM,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,IAAMiO,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGjO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC6M,iBAAiB,CAAC,CAAA;EAAE1O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EAAE7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,IAAM4R,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGlO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC+M,UAAU,CAAC,CAAA;EAAE5O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EAAE7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;IAElD,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACL6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAJA,CAAI,CAAA,CAAA,CAAA,CAAA;EACJ8P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPlO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;KACD,CAAA;AACH,CAAA,CAAA,CAAA;;ACxFA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASmO,wBAAwBA,CACtCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8B,EAC9BC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjBrO,MAAwC,CACxC,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,OAAO,CAACoO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAEpO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,KAANA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAANA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAE2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CACzDxN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC4L,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACf6B,CAAI,CAAA,CAAA,CAAA,CAAC,CAAG,CAAA,CAAA,CAAC,CACTC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,KAAK,CAAE,CAAA,CAAA,CAAE,CAAC,CAAA;AACvB,CAAA,CAAA,CAAA;;AClBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAgBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEC,KAAW,CAAE,CAAA,CAAA;GAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAID,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AACnD,CAAA,CAAA,CAAA;;ECFA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqD,CAAA;EAE5D,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAE,CAAA,CAAA;IAC3C,CAAOrC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACqC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACH,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAC,CAAA;AACrD,CAAA,CAAA,CAAA;;ECDO,CAASI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBA,CAClCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsE,CACtE,CAAA,CAAA;IACA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAED,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACnBE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAEF,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb3T,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC8T,MAAM,CAAA,CAAA,CAAA;QAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAA0BD,CAAAA,CAAAA,CAAAA,CAAI,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACtDtO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC4L,OAAO,CAAC,CAAA;EAClB4C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAEJ,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB3T,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC8T,MAAM,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAE,UAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACTF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAkCC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAlDA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAoDhU,CAAG,CAAA,CAAA,CAAC,CAACiU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAK,CAAA,CAAA;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACLC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAED,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC7U,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;YACrB+U,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEF,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AACrBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAgB,CAAE,CAAA,CAAA;AAChBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAAE,CAAA,CAAA;gBACL9U,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE6U,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WACD,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;OACH,CAAA,CACA9O,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC4L,OAAO,CAAA;KAClB,CAAA;AACH,CAAA,CAAA,CAAA;;EC5BO,CAASmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAS3J,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAE,CAAA,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,OAAQA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAwC4J,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI5J,KAAK,CAAA;AAC3E,CAAA,CAAA,CAAA;;ACeO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6J,WAAWA,CACzBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,EAChBC,CAAyC,CAAA,CAAA,CAAA,CAAA,CAAA,CACzCC,kBAA6C,CACnB,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,IAAI3T,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG0T,CAAK,CAAA,CAAA,CAAA,CAAA,CAACnG,YAAY,CAAA;IAE9B,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACLqG,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAG,CAAA,CAAA,CAAA;EACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO5T,KAAK,CAAA;GACb,CAAA,CAAA,CAAA,CAAA,CAAA;EACD6T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAErL,OAAO,CAAE,CAAA,CAAA;EACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsL,SAAS,CAAApP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ3E,CAAK,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA;AAC9BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGyT,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACzT,KAAK,CAAE,CAAA,CAAA;EACrBgU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAEF,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACZJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACLjL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AAEFkL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAkB,CAAC,CAAA;EAAE3T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAAE+T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAATA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;GACzC,CAAA,CAAA,CAAA,CAAA,CAAA;EACDE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAEzF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2B,CAAA,CAAA;KAC7C,CAAA;AACH,CAAA,CAAA,CAAA;;EC3BO,CAAS0F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsBA,CAAA9U,CAAAA,CAAAA,CAAAA,CAAA,CAEG,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,IADvC+U,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA/U,CAAA,CAAA,CAAA,CAAA,CAAL+U,KAAK,CAAA;AAEL,CAAA,CAAA,CAAA,CAAA,IAAMC,CAA0D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAA7DA,CAA0DA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9DhW,KAAK,CACF,CAAA,CAAA;EACH+V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,iBAAiB,CAAEzV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;KACzC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,IAAMiW,CAA4C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAA/CA,CAA4CA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIjW,KAAK,CAAK,CAAA,CAAA;EAC9D+V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,UAAU,CAAEzV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;KAClC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,IAAMkW,CAAwD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAA3DA,CAAwDA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5DC,QAAQ,CACL,CAAA,CAAA;MACH,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAG,CAAA,CAAA,CAAC,CAAA;EAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMpW,KAAK,CAAGmW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAACvV,CAAG,CAAA,CAAA,CAAgC,CAACmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAwE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChExE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;UACAC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEb,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACY,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAQ,CAACpB,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC6C,IAAS,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA8C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjD9C,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACP4S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAED,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;WAC/B,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAC,CAAA;EAEHL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,gBAAgB,CAAEzV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;KACxC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,IAAMsS,CAA8C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAjDA,CAA8CA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAItS,KAAK,CAAK,CAAA,CAAA;EAChE+V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,WAAW,CAAEzV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;KACnC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,IAAMsW,CAA8C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAjDA,CAA8CA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAItW,KAAK,CAAK,CAAA,CAAA;EAChE+V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,WAAW,CAAEzV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;KACnC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,IAAM8M,CAAgD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,SAAnDA,CAAgDA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI9M,KAAK,CAAK,CAAA,CAAA;EAClE+V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACN,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,YAAY,CAAEzV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;KACpC,CAAA;IAED,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACLgW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,EAAfA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAARA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAdA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACd5D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAATA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACTgE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAATA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACTxJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,EAAVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;KACD,CAAA;AACH,CAAA,CAAA,CAAA;;AChDO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASyJ,CAAeA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7BjB,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAA,CACjCkB,iBAAiD,CACb,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,SAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA,CAAA,CAAA,CAAA,CAAMvI,CAAoC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxC,CAAOpL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CACzB,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM4T,OAAO,CAAGpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACoB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA;IAEnC,CAAAnQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EACEyI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACZ2H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAClBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAE1Z,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACvB2Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAE,CAAE,CAAA,CAAA;EACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EAChB1F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EACzB2F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAE,CAAG,CAAA,CAAA,CAAA;EACnB3L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAEnO,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACnBgR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAXA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACX+I,eAAe,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAjW,IAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAGY,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAZ,CAAA,CAAA,CAAA,CAAA,CAALY,KAAK,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAOD,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,KAAK,CAAC,CAAA,CAAA,CAAG,CAAC,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACxDsV,OAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAjW,KAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAGyQ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAzQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPyQ,OAAO,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,OAAO,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9B4D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAE,CAAAV,CAAAA,CAAAA,SAAA,CAAEnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC6B,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAV,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI/U,sBAAsB,CAAE,CAAA,CAAA;EACxCgV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACAvH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EACVyM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EAClBZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAE,CAAE,CAAA,CAAA;EACTgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA;EAChBvV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAE,CAAE,CAAA,CAAA;EACf+K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACbyK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACdvJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAE,CAAC,CAAA;OACPwH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACnG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CACtB,CAAA;MACD3B,aAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAC3F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAyP,oBAAA,CAAA;EACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAhC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC9H,aAAa,CAAA8J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAnBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA3Y,CAAA,CAAA,CAAA,CAAA,CAAA2W,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBzN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AAC7B6O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAO,CAAClQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3F,CAAC,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA0W,gBAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAK1W,CAAAA,CAAAA,CAAC,CAAC2M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA+J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAfA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA5Y,CAAA,CAAA,CAAA,CAAA,CAAAkC,CAAC,CAAA,CAAiBgH,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;SAAC,CAAA,CAAA;GAClD,CAAA,CAAA,CAAA,CAAA,CAAA;MACD2P,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAC3P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA4P,eAAA,CAAA;EACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAnC,CAAK,CAAA,CAAA,CAAA,CAAA,CAACkC,QAAQ,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAdA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA9Y,CAAA,CAAA,CAAA,CAAA,CAAA2W,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYzN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AACxB6O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAO,CAAClQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3F,CAAC,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6W,WAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAK7W,CAAAA,CAAAA,CAAC,CAAC2W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAAE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA/Y,CAAA,CAAA,CAAA,CAAA,CAAAkC,CAAC,CAAA,CAAYgH,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;SAAC,CAAA,CAAA;GAC7C,CAAA,CAAA,CAAA,CAAA,CAAA;MACD8P,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAC9P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA+P,cAAA,CAAA;EACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtC,CAAK,CAAA,CAAA,CAAA,CAAA,CAACqC,OAAO,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAbA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAjZ,CAAA,CAAA,CAAA,CAAA,CAAA2W,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWzN,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AACvB6O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAO,CAAClQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3F,CAAC,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAgX,UAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAKhX,CAAAA,CAAAA,CAAC,CAAC8W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAAE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAATA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAlZ,CAAA,CAAA,CAAA,CAAA,CAAAkC,CAAC,CAAA,CAAWgH,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;SAAC,CAAA,CAAA;GAC5C,CAAA,CAAA,CAAA,CAAA,CAAA;MACD2J,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAC3J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAOkJ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACc,CAAG,CAAA,CAAA,CAChB,GAAArQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAI0R,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC9V,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACkX,MAAM,CAAA,CAAA,CAAA;UAAA,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAACtG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE8D,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC9D,UAAU,CAC7DrL,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC4L,OAAO,CAAC,CACfnR,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC4Q,UAAU,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAKD,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,UAAU,CAAG3J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAClE,CACEuH,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC2I,MAAM,CAAA,CAAA,CAAA;UAAA,CAAK5W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC4W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACjC3I,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACsC,OAAO,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OACZA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC9Q,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0E,MAAM,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdjB,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cACT2G,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAACpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;AACfvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAC2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAACpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAA;AACvB2O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAiB,CAAChQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3F,CAAC,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAmX,WAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAKnX,CAAAA,CAAAA,CAAC,CAACoL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA+L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAArZ,CAAA,CAAA,CAAA,CAAA,CAAAkC,CAAC,CAAA,CAAYgH,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;iBAAC,CAAA,CAAA;GACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cACDsE,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAACtE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;AACfvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAC6G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAACtE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAA;AACvB2O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAiB,CAAChQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3F,CAAC,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAoX,WAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAKpX,CAAAA,CAAAA,CAAC,CAACsL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA8L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAVA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtZ,CAAA,CAAA,CAAA,CAAA,CAAAkC,CAAC,CAAA,CAAYgH,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;iBAAC,CAAA,CAAA;GACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cACD0K,SAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAC1K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAAE,CAAA,CAAA;AAChBvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAM,CAACiN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC1K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAA;AACxB2O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAiB,CAAChQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC3F,CAAC,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAqX,YAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAKrX,CAAAA,CAAAA,CAAC,CAAC0R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA2F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAXA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAvZ,CAAA,CAAA,CAAA,CAAA,CAAAkC,CAAC,CAAA,CAAagH,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;iBAAC,CAAA,CAAA;EACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAC,CAAA;SACJ,CAAA,CAAA;GACJ,CAAA,CAAA,CAAA,CAAA,CAAA;EACDsQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA5R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;QACP6R,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAjO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAA,CAAc,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAXqJ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAArJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPqJ,OAAO,CAAA;EAChBtF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAACmK,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,MAAM,CAAC9E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA;GACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACD+E,cAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAnO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAA,CAAc,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAXoJ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAApJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPoJ,OAAO,CAAA;UACtB,CAAMgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAGtK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAACuK,CAAAA,CAAAA,CAAAA,CAAI,CAACjF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC,CAAA;AACvEgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,eAAe,UAAfA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAEE,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAE,CAAA;GACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACDC,iBAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAArO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAA,CAAc,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAXkJ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAlJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPkJ,OAAO,CAAA;GACzBtF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAACuK,CAAAA,CAAAA,CAAAA,CAAI,CAACjF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;EACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OACG8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC6C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEL,CAAA,CAAA,CAAA;;EC1FO,CAASjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAAlW,CAAAA,CAAAA,CAAAA,CAAA,CAIE,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAHvBa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAAb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAXa,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACXyT,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtU,CAAA,CAAA,CAAA,CAAA,CAALsU,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MACL1T,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAZ,CAAA,CAAA,CAAA,CAAA,CAALY,KAAK,CAAA;AAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACA,CAAA,CAAA,CAAA,CAAA,CAAMgX,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG/W,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACR,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAGlD,CAAC6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAEnI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA;MAAA,CAAAwE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACX2D,CAAG,CAAA,CAAA,CAAAzD,EAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IACL1E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAACuD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAAzL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtBxE,CAAAA,CAAAA,CAAAA,CAAAA,UAAU,CAACuD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;QACpBgI,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAG,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAOnM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMY,UAAU,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA;EACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GAEH,CAAA,CAAA,CAAA,CACF,CAAE,CAAA,CACH,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA6W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAA8BvD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACrV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC6I,CAAG,CAAA,CAAA,CAAA,CAAE4N,MAAM,CAAK,CAAA,CAAA;QACf,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAACZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAE,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAOY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACZ,OAAO,CAAChN,CAAAA,CAAAA,CAAG,CAAC,CAAA;EAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,GAAG,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACD,CAAA,CAAA;EACE4O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,EAAEF,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAC5ChX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACF,CAAA;MAXOkX,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAjBC,iBAAiB,CAAA;AAazB,CAAA,CAAA,CAAA,CAAA,IAAMC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGzD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC4B,OAAO,CAAC,CAAA;EACnC4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,EAAjBA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjBpH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAO,CAAElT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC4C,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0X,iBAAiB,CAAC,CAAA;EACzClX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAOT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC4X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC,CAC3B5S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CACfnR,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0E,MAAM,CAAK,CAAA,CAAA;MACf,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QACNtD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEsD,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAACgI,QAAQ,CAAA,CAAA;OACvB,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AACN,CAAA,CAAA,CAAA;;EC5CA,CAAS0L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaA,CACpBvV,CAAAA,CAAAA,CAAAA,CAG4B,CACkB,CAAA,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,OAAOsO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEtO,IAAI,CAA0CwV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA;EACxE,CAAA;EAEA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsBA,CAC7BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8D,CAClB,CAAA,CAAA;IAC5C,OAAOpH,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEoH,WAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAXA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAW,CAAkCF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA;EACvE,CAAA;AA0BO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,UAAUA,CACxBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqE,EACrErH,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBpQ,KAA+B,CAGc,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAIsX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAC,CAAE,CAAA,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAMC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrBD,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACE,WAAW,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CACxC/a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC8Z,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA3a,KAAA,CAAba,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,GACJ,CAAA,CAAE,CAAAgD,CAAAA,MAAA,CAAAwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACCxG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAACiE,CAAI,CAAA,CAAA,CAAA,CAACb,CAAK,CAAA,CAAA,CAAA,CAAA,CAACkM,OAAO,CAAC,CAAClN,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACM,GAAG,CAAK,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAsY,kBAAA,CAAA;EACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAQ5X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACkM,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC5M,CAAG,CAAA,CAAA,CAAC,CAAAsY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACHtM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyB,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CACH,CAAA,CAAA,CACD,EAAE,CAAA;EAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA3G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACK8S,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;GACrBI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAEJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAACK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC9Y,CAAG,CAAA,CAAA,CAAC,CAACwR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA;UAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACnDA,KAAK,CACHiH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAACE,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,SAAS,CAAAhT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEnC6L,KAAK,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;cACRvK,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,cAAA,IACD+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CACjBlH,CAAK,CAAA,CAAA,CAAA,CAAA,CAACvK,MAAM,CAAA;EAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAEHuK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACXJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAARA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACR2H,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEN,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;WACvC,CAAA;SAAC,CAAA;AAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAEP,CAAA,CAAA,CAAA;IAEA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACL3X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAEqX,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACzBrH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAARA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;KACD,CAAA;EACH,CAAA;EAEO,CAAShB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CACrBhP,CAAAA,CAAAA,CAAAA,CAAAA,CAGC,CACD,CAAA,CAAA;GACA,CAAA,CAAA,CAAA,CAAA,CAAM4X,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG5X,CAAK,CAAA,CAAA,CAAA,CAAA,CAACX,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAEzB,CAAC6I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAErN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAK,CAAA,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACmc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAACnc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAE,CAAA,CAAA;AAC3BqN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAG,CAACnK,CAAAA,CAAAA,CAAAA,CAAI,CAAClD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA;EACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOqN,GAAG,CAAA;EACZ,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ2P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAqChd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAxDgd,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEZ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4Bpc,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA1Coc,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe1c,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAjC0c,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK5c,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAApB4c,QAAQ,CAAA;GAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMK,SAAS,CAAG5P,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAC6P,CAAI,CAAA,CAAA,CAAA,CACxB,CAACtW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAuC,CAAA,CAAA;GAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEuV,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACnc,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACtBmc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAACvV,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CACnBA,CAAI,CAAA,CAAA,CAAA,CAACoW,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClC9H,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACwH,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACpB9V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAC8V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA;AAEpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACF,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIO,SAAS,CAAE,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAE,gBAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAF,SAAS,CAAC9X,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAACjC,CAAI,CAAA,CAAA,CAAA,CAAApC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAqc,gBAAA,CAAAhV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAIyU,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMQ,OAAiC,CAAG,CAAA,CAAA,CAAA;EACxChB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAXA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACXvX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAEyX,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACfI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAZA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;SACD,CAAA;AACD3P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAAG,CAACnK,CAAAA,CAAAA,CAAAA,CAAI,CAACka,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA;EACnB,CAAA,CAAA,CAAA,CAAA,CAAA;EAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO/P,GAAG,CAAA;GACX,CAAA,CAAA,CAAA,CAAE,CAAE,CAAA,CAAC,CAAA;GAEN,CAAA,CAAA,CAAA,CAAA,CAAM9I,MAAM,CAAGwY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAChZ,CAAG,CAAA,CAAA,CAGvB,CAACsZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAK,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAClB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAQkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAC,CAAE,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAOnJ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,OAAO,CACpBkJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CACjB,CAAA;EACH,CAAA,CAAA,CAAA,CAAA,CAAA;GAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAlZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEkZ,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QADVjB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAjY,CAAA,CAAA,CAAA,CAAA,CAAPiY,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAEjX,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAhB,CAAA,CAAA,CAAA,CAAA,CAALgB,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;QAAE6X,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA7Y,CAAA,CAAA,CAAA,CAAA,CAAZ6Y,YAAY,CAAA;EAGpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOZ,OAAO,CAAC,CAAA;EACbY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAZA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACZJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAAEzX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AACJ,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;IAEF,CAAO+O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACc,CAAAA,CAAAA,CAAG,CAEhBzQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAACgO,CAAI,CAAA,CAAA,CAAA,CAAC,CAAC+K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA;MAAA,CACvBhZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAELgZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA;KACb,CAAA,CAAA;EACH,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,WAAWA,CACzBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEC,EACDzI,CAAiD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjDqE,KAA+B,CAC/B,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,OAAOrE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC9Q,GAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0E,MAAM,CAAK,CAAA,CAAA;EAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+U,OAAO,CAAGF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAChU,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9B,CAACmU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKA,QAAQ,CAACtI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,KAAK1M,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0M,QAAQ,CAAA;OACpD,CAAA,CAAA;EACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwC,OAAO,CAAG6F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACzZ,CAAG,CAAA,CAAA,CAAC,CAAAK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAGe,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAALe,KAAK,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,KAAK,CAAA;OAAC,CAAA,CAAA;EACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMuY,SAAS,CAAGF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAC,CAAC,CAACV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM3X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAGuY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,GACnBA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACPjG,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClBE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGR,CACF,CAAA,CAAA,CACDA,OAAO,CAAA;GAEXlP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAACiN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAC,CAAA;EACfjN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACNkP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAPA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACPxS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;QACLJ,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEmU,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAA2B,CAAA;EAE5BvT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACP1E,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC4C,OAAO,CAAC6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC,CAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,wCAAA,CAAAR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACE8D,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC0M,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACoCmQ,CAAI,CAAA,CAAA,CAAA,CAACC,SAAS,CAAAxR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAC1D4B,CAAK,CAAA,CAAA,CAAA,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAQmQ,CAAI,CAAA,CAAA,CAAA,CAACC,SAAS,CAACtR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC0B,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,EAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE2C,CAC5F,CAAA;MAEDC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACND,CAAK,CAAA,CAAA,CAAA,CAAA,CAAyBwY,KAAK,CAACzI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC,CAAA,CAAAvQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE3C8D,MAAM,CAAC0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC+BmQ,IAAI,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAC5D1U,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACV,CAAA,CAKF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MAED,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACLoI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAANA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACNtD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAALA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;OACD,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;AACJ,CAAA,CAAA,CAAA;;;ECzNA,CAAIyY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4B,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA;AAkBvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM5J,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGJ,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA;EAEvD,CAASiK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAA1Z,CAAAA,CAAAA,CAAAA,CAAA,CAQ2B,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAPhDuK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAAvK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAALuK,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MAAAoP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA3Z,CAAA,CAAA,CAAA,CAAA,CACL4Z,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EAATA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,GAAAD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAG,CAAE,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACdrF,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAtU,CAAA,CAAA,CAAA,CAAA,CAALsU,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MACLlD,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAApR,CAAA,CAAA,CAAA,CAAA,CAALoR,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;MACLyI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA7Z,CAAA,CAAA,CAAA,CAAA,CAAP6Z,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACP9E,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA/U,CAAA,CAAA,CAAA,CAAA,CAAL+U,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;EACF+E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,GAAAzV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAArE,IAAA,CAAA8D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA;EAEV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI2V,aAAa,CAAE,CAAA,CAAA;EACjBnF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACpH,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACzQ,YAAY,CAACgd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAC,CAAA;EAC/C,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CACEvE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAMZ4E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CANT5E,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACd5D,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKPwI,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALTxI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACT2D,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIN6E,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJT7E,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACRD,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGb8E,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHT9E,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACfM,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEPwE,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFTxE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACTxJ,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACRgO,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADThO,UAAU,CAAA;IAGZmJ,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC7D,CAAK,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AACf4D,CAAAA,CAAAA,CAAAA,CAAAA,eAAe,CAACV,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACjE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAC,CAAA;GAE1C,CAAA,CAAA,CAAA,CAAA,CAAI,CAACe,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIkD,KAAK,CAACqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAE,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAoE,iBAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMlZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAGkU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACP,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC3T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAACjB,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACmB,UAAU,CAAA,CAAA,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAwE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3DxE,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACbC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAAE,CAAA,CAAA;AAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAC,CAAA;MAEHsU,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;MACjBJ,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACrU,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;EAC3ByQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAAyI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,GACPH,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAChO,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAAmO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAAA,iBAAA,CAAIzF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAC,CAAA;QAAErV,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEmU,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;EAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC,CACvE,CAAA;;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACA,CAAMyE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAGhK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACxBY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAChP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAC,CAACuN,CAAI,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;QAAA,CAAM2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,EAAE,CAAA;EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACpE,CAAA;EAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO+E,KAAK,CAACF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAClV,CAAG,CAAA,CAAA,CAACsZ,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;EAC3C,CAAA,CAAA,CAAA;IAEA3D,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;EAEpBmE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,GAAGnF,CAAK,CAAA,CAAA,CAAA,CAAA,CAACpH,WAAW,CAACxQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACjD4Y,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAEhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAC0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC,CAAA;;AAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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A,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACAwW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAEJ,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;EACrCK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAEL,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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AA,CAAA,CAAA,CAAA,CAAA,CAAEmU,CAAK,CAAA,CAAA,CAAA,CAAA,CAACP,QAAQ,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA;;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;YACRoR,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA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"} \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-core/dist/umd/index.production.js b/node_modules/@algolia/autocomplete-core/dist/umd/index.production.js index cfda69e..054dcca 100644 --- a/node_modules/@algolia/autocomplete-core/dist/umd/index.production.js +++ b/node_modules/@algolia/autocomplete-core/dist/umd/index.production.js @@ -1,3 +1,3 @@ -/*! @algolia/autocomplete-core 1.9.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-core"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function i(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function A(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(S(n),[{headers:a}]))}else e.apply(void 0,[t].concat(S(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",E(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",E(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",E(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",E(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=j(t,b);return[].concat(S(e),S(_(A(A({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function x(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function C(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function q(e){return q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},q(e)}function k(e){return function(e){if(Array.isArray(e))return U(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return U(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return U(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&B({onItemsChange:r,items:n,insights:c,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;a("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:c}}),n((function(e){var t=e.item,n=e.state,r=e.event;C(t)&&o({state:n,event:r,insights:c,item:t,insightsEvents:[R({eventName:"Item Selected"},d({item:t,items:l.current}))]})})),r((function(e){var t=e.item,n=e.state,r=e.event;C(t)&&i({state:n,event:r,insights:c,item:t,insightsEvents:[R({eventName:"Item Active"},d({item:t,items:l.current}))]})}))},onStateChange:function(e){var t=e.state;s({state:t})},__autocomplete_pluginOptions:e}}function L(e,t){var n=t;return{then:function(t,r){return L(e.then(J(t,n,e),J(r,n,e)),n)},catch:function(t){return L(e.catch(J(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),L(e.finally(J(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function K(e){return L(e,{isCanceled:!1,onCancelList:[]})}function J(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function Q(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function $(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var a=t.collections[o];if(a===n){r=!0;break}i+=a.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}var H=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function W(e,t){var r,o="undefined"!=typeof window?window:{},a=e.plugins||[];return n(n({debug:!1,openOnFocus:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:!1,environment:o,shouldPanelOpen:function(e){return s(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(l++),plugins:a,initialState:n({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),a.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(r){return Promise.all([].concat(i(a.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:m,onResolve:m};Object.keys(t).forEach((function(e){t[e].__default=!0}));var o=n(n({},t),e);return Promise.resolve(o)})))}))}(e,r)}))).then((function(e){return c(e)})).then((function(e){return e.map((function(e){return n(n({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:n({navigate:function(e){var t=e.itemUrl;o.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=o.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;o.open(t,"_blank","noopener")}},e.navigator)})}function X(e){return Boolean(e.execute)}function z(e,t,r){if(a=e,Boolean(null==a?void 0:a.execute)){var o="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(i(Object.keys(r.context).map((function(e){var t;return null===(t=r.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return n(n({},e),{},{requests:e.queries.map((function(r){return{query:"algolia"===e.requesterId?n(n({},r),{},{params:n(n({},o),r.params)}):r,sourceId:t,transformResponse:e.transformResponse}}))})}var a;return{items:e,sourceId:t}}function G(e){var t=e.reduce((function(e,t){if(!X(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,a=t.requests,u=e.find((function(e){return X(t)&&X(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(u){var c;(c=u.items).push.apply(c,i(a))}else{var l={execute:r,requesterId:o,items:a,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!X(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return c(e)}))}function Y(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),a=o[0].transformResponse,u=a?a({results:r=i,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:u,state:n.getState()}),u.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:u}}))}var Z,ee,te,ne=["event","nextState","props","query","refresh","store"],re=null,oe=(Z=-1,ee=-1,te=void 0,function(e){var t=++Z;return Promise.resolve(e).then((function(e){return te&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function i(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function A(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,u={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(S(n),[{headers:u}]))}else e.apply(void 0,[t].concat(S(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",E(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",E(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",E(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",E(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=j(t,b);return[].concat(S(e),S(P(w(w({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function D(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function x(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function k(e){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},k(e)}function q(e){return function(e){if(Array.isArray(e))return T(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return T(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&F({onItemsChange:o,items:n,insights:s,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive,o=!1;function a(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:R(R({},c?{clickAnalytics:!0}:{}),e?{userToken:L(e)}:{}),insights:s}})}l("addAlgoliaAgent","insights-plugin"),a(),l("onUserTokenChange",(function(e){o||a(e)})),l("getUserToken",null,(function(e,t){o||a(t)})),l("onAuthenticatedUserTokenChange",(function(e){e?(o=!0,a(e)):(o=!1,l("getUserToken",null,(function(e,t){return a(t)})))})),l("getAuthenticatedUserToken",null,(function(e,t){t&&(o=!0,a(t))})),n((function(e){var t=e.item,n=e.state,r=e.event,o=e.source;x(t)&&i({state:n,event:r,insights:s,item:t,insightsEvents:[R({eventName:"Item Selected"},d({item:t,items:o.getItems().filter(x)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;x(t)&&u({state:r,event:o,insights:s,item:t,insightsEvents:[R({eventName:"Item Active"},d({item:t,items:n.getItems().filter(x)}))]})}))},onStateChange:function(e){var t=e.state;v({state:t})},__autocomplete_pluginOptions:e}}function K(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;return[].concat(q(t),["autocomplete-internal"],q(null!==(e=n.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function L(e){return"number"==typeof e?e.toString():e}function H(e,t){var n=t;return{then:function(t,r){return H(e.then(J(t,n,e),J(r,n,e)),n)},catch:function(t){return H(e.catch(J(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),H(e.finally(J(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Q(e){return H(e,{isCanceled:!1,onCancelList:[]})}function J(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function $(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function W(e){var t=function(e){var t=e.collections.map((function(e){return e.items.length})).reduce((function(e,t,n){var r=(e[n-1]||0)+t;return e.push(r),e}),[]).reduce((function(t,n){return n<=e.activeItemId?t+1:t}),0);return e.collections[t]}(e);if(!t)return null;var n=t.items[function(e){for(var t=e.state,n=e.collection,r=!1,o=0,i=0;!1===r;){var u=t.collections[o];if(u===n){r=!0;break}i+=u.items.length,o++}return t.activeItemId-i}({state:e,collection:t})],r=t.source;return{item:n,itemInputValue:r.getItemInputValue({item:n,state:e}),itemUrl:r.getItemUrl({item:n,state:e}),source:r}}function X(e,t,n){return[e,null==n?void 0:n.sourceId,t].filter(Boolean).join("-").replace(/\s/g,"")}var z=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function G(e){return e.nativeEvent||e}function Y(e,t){var r,o="undefined"!=typeof window?window:{},u=e.plugins||[];return n(n({debug:!1,openOnFocus:!1,enterKeyHint:void 0,ignoreCompositionEvents:!1,placeholder:"",autoFocus:!1,defaultActiveItemId:null,stallThreshold:300,insights:void 0,environment:o,shouldPanelOpen:function(e){return s(e.state)>0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(l++),plugins:u,initialState:n({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),u.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),u.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),u.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(r){return Promise.all([].concat(i(u.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:m,onResolve:m};Object.keys(t).forEach((function(e){t[e].__default=!0}));var o=n(n({},t),e);return Promise.resolve(o)})))}))}(e,r)}))).then((function(e){return c(e)})).then((function(e){return e.map((function(e){return n(n({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:n({navigate:function(e){var t=e.itemUrl;o.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=o.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;o.open(t,"_blank","noopener")}},e.navigator)})}function Z(e){return Boolean(e.execute)}function ee(e,t,r){if(u=e,Boolean(null==u?void 0:u.execute)){var o="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(i(Object.keys(r.context).map((function(e){var t;return null===(t=r.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return n(n({},e),{},{requests:e.queries.map((function(r){return{query:"algolia"===e.requesterId?n(n({},r),{},{params:n(n({},o),r.params)}):r,sourceId:t,transformResponse:e.transformResponse}}))})}var u;return{items:e,sourceId:t}}function te(e){var t=e.reduce((function(e,t){if(!Z(t))return e.push(t),e;var n=t.searchClient,r=t.execute,o=t.requesterId,u=t.requests,a=e.find((function(e){return Z(t)&&Z(e)&&e.searchClient===n&&Boolean(o)&&e.requesterId===o}));if(a){var c;(c=a.items).push.apply(c,i(u))}else{var l={execute:r,requesterId:o,items:u,searchClient:n};e.push(l)}return e}),[]).map((function(e){if(!Z(e))return Promise.resolve(e);var t=e,n=t.execute,r=t.items;return n({searchClient:t.searchClient,requests:r})}));return Promise.all(t).then((function(e){return c(e)}))}function ne(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),u=o[0].transformResponse,a=u?u({results:r=i,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:a,state:n.getState()}),a.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:a}}))}var re,oe,ie,ue=["event","nextState","props","query","refresh","store"],ae=null,ce=(re=-1,oe=-1,ie=void 0,function(e){var t=++re;return Promise.resolve(e).then((function(e){return ie&&t arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.6.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true\n },\n insights: insights\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onActive: noop\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","type PromiseExecutor = (\n resolve: (value: TValue | PromiseLike) => void,\n reject: (reason?: any) => void\n) => void;\n\ntype CancelablePromiseState = {\n isCanceled: boolean;\n onCancelList: Array<(...args: any[]) => any>;\n};\n\nfunction createInternalCancelablePromise(\n promise: Promise,\n initialState: CancelablePromiseState\n): CancelablePromise {\n const state = initialState;\n\n return {\n then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(\n promise.then(\n createCallback(onfulfilled, state, promise),\n createCallback(onrejected, state, promise)\n ),\n state\n );\n },\n catch(onrejected) {\n return createInternalCancelablePromise(\n promise.catch(createCallback(onrejected, state, promise)),\n state\n );\n },\n finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n\n return createInternalCancelablePromise(\n promise.finally(\n createCallback(\n onfinally &&\n (() => {\n state.onCancelList = [];\n\n return onfinally();\n }),\n state,\n promise\n )\n ),\n state\n );\n },\n cancel() {\n state.isCanceled = true;\n const callbacks = state.onCancelList;\n state.onCancelList = [];\n\n callbacks.forEach((callback) => {\n callback();\n });\n },\n isCanceled() {\n return state.isCanceled === true;\n },\n };\n}\n\nexport type CancelablePromise = {\n then(\n onfulfilled?:\n | ((\n value: TValue\n ) =>\n | TResultFulfilled\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null,\n onrejected?:\n | ((\n reason: any\n ) =>\n | TResultRejected\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n catch(\n onrejected?:\n | ((\n reason: any\n ) => TResult | PromiseLike | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n finally(\n onfinally?: (() => void) | undefined | null\n ): CancelablePromise;\n cancel(): void;\n isCanceled(): boolean;\n};\n\nexport function createCancelablePromise(\n executor: PromiseExecutor\n): CancelablePromise {\n return createInternalCancelablePromise(\n new Promise((resolve, reject) => {\n return executor(resolve, reject);\n }),\n { isCanceled: false, onCancelList: [] }\n );\n}\n\ncreateCancelablePromise.resolve = (\n value?: TValue | PromiseLike | CancelablePromise\n) => cancelable(Promise.resolve(value));\n\ncreateCancelablePromise.reject = (reason?: any) =>\n cancelable(Promise.reject(reason));\n\nexport function cancelable(promise: Promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: [],\n });\n}\n\nfunction createCallback(\n onResult: ((...args: any[]) => any) | null | undefined,\n state: CancelablePromiseState,\n fallback: any\n) {\n if (!onResult) {\n return fallback;\n }\n\n return function callback(arg?: any) {\n if (state.isCanceled) {\n return arg;\n }\n\n return onResult(arg);\n };\n}\n","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(\n moveAmount: number,\n baseIndex: number | null,\n itemCount: number,\n defaultActiveItemId: number | null\n): number | null {\n if (!itemCount) {\n return null;\n }\n\n if (\n moveAmount < 0 &&\n (baseIndex === null || (defaultActiveItemId !== null && baseIndex === 0))\n ) {\n return itemCount + moveAmount;\n }\n\n const numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n\n return numericIndex;\n}\n","import { AutocompleteCollection, AutocompleteState, BaseItem } from '../types';\n\n// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(\n state: AutocompleteState\n): AutocompleteCollection | undefined {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n const accumulatedCollectionsCount = state.collections\n .map((collections) => collections.items.length)\n .reduce((acc, collectionsCount, index) => {\n const previousValue = acc[index - 1] || 0;\n const nextValue = previousValue + collectionsCount;\n\n acc.push(nextValue);\n\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n const collectionIndex = accumulatedCollectionsCount.reduce((acc, current) => {\n if (current <= state.activeItemId!) {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId({\n state,\n collection,\n}: {\n state: AutocompleteState;\n collection: AutocompleteCollection;\n}): number {\n let isOffsetFound = false;\n let counter = 0;\n let previousItemsOffset = 0;\n\n while (isOffsetFound === false) {\n const currentCollection = state.collections[counter];\n\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n\n previousItemsOffset += currentCollection.items.length;\n\n counter++;\n }\n\n return state.activeItemId! - previousItemsOffset;\n}\n\nexport function getActiveItem(\n state: AutocompleteState\n) {\n const collection = getCollectionFromActiveItemId(state);\n\n if (!collection) {\n return null;\n }\n\n const item = collection.items[getRelativeActiveItemId({ state, collection })];\n const source = collection.source;\n const itemInputValue = source.getItemInputValue({ item, state });\n const itemUrl = source.getItemUrl({ item, state });\n\n return {\n item,\n itemInputValue,\n itemUrl,\n source,\n };\n}\n","const regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\n\nexport function isSamsung(userAgent: string) {\n return Boolean(userAgent && userAgent.match(regex));\n}\n","import {\n getItemsCount,\n generateAutocompleteId,\n flatten,\n} from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteSubscribers,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getNormalizedSources } from './utils';\n\nexport function getDefaultProps(\n props: AutocompleteOptions,\n pluginSubscribers: AutocompleteSubscribers\n): InternalAutocompleteOptions {\n /* eslint-disable no-restricted-globals */\n const environment: AutocompleteEnvironment = (\n typeof window !== 'undefined' ? window : {}\n ) as typeof window;\n /* eslint-enable no-restricted-globals */\n const plugins = props.plugins || [];\n\n return {\n debug: false,\n openOnFocus: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: false,\n environment,\n shouldPanelOpen: ({ state }) => getItemsCount(state) > 0,\n reshape: ({ sources }) => sources,\n ...props,\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: props.id ?? generateAutocompleteId(),\n plugins,\n // The following props need to be deeply defaulted.\n initialState: {\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {},\n ...props.initialState,\n },\n onStateChange(params) {\n props.onStateChange?.(params);\n plugins.forEach((x) => x.onStateChange?.(params));\n },\n onSubmit(params) {\n props.onSubmit?.(params);\n plugins.forEach((x) => x.onSubmit?.(params));\n },\n onReset(params) {\n props.onReset?.(params);\n plugins.forEach((x) => x.onReset?.(params));\n },\n getSources(params) {\n return Promise.all(\n [...plugins.map((plugin) => plugin.getSources), props.getSources]\n .filter(Boolean)\n .map((getSources) => getNormalizedSources(getSources!, params))\n )\n .then((nested) => flatten(nested))\n .then((sources) =>\n sources.map((source) => ({\n ...source,\n onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach((x) => x.onSelect?.(params));\n },\n onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach((x) => x.onActive?.(params));\n },\n onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach((x) => x.onResolve?.(params));\n },\n }))\n );\n },\n navigator: {\n navigate({ itemUrl }) {\n environment.location.assign(itemUrl);\n },\n navigateNewTab({ itemUrl }) {\n const windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference?.focus();\n },\n navigateNewWindow({ itemUrl }) {\n environment.open(itemUrl, '_blank', 'noopener');\n },\n ...props.navigator,\n },\n };\n}\n","import { invariant, decycle, noop } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteSource,\n BaseItem,\n GetSources,\n GetSourcesParams,\n InternalAutocompleteSource,\n InternalGetSources,\n} from '../types';\n\nexport function getNormalizedSources(\n getSources: GetSources,\n params: GetSourcesParams\n): ReturnType> {\n const seenSourceIds: string[] = [];\n\n return Promise.resolve(getSources(params)).then((sources) => {\n invariant(\n Array.isArray(sources),\n () =>\n `The \\`getSources\\` function must return an array of sources but returned type ${JSON.stringify(\n typeof sources\n )}:\\n\\n${JSON.stringify(decycle(sources), null, 2)}`\n );\n\n return Promise.all(\n sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter((maybeSource: any): maybeSource is AutocompleteSource =>\n Boolean(maybeSource)\n )\n .map((source) => {\n invariant(\n typeof source.sourceId === 'string',\n 'A source must provide a `sourceId` string.'\n );\n\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\n `[Autocomplete] The \\`sourceId\\` ${JSON.stringify(\n source.sourceId\n )} is not unique.`\n );\n }\n\n seenSourceIds.push(source.sourceId);\n\n const defaultSource: Omit<\n InternalAutocompleteSource,\n 'sourceId' | 'getItems'\n > = {\n getItemInputValue({ state }) {\n return state.query;\n },\n getItemUrl() {\n return undefined;\n },\n onSelect({ setIsOpen }) {\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop,\n };\n\n Object.keys(defaultSource).forEach((key) => {\n defaultSource[key].__default = true;\n });\n\n const normalizedSource: InternalAutocompleteSource = {\n ...defaultSource,\n ...source,\n };\n\n return Promise.resolve(normalizedSource);\n })\n );\n });\n}\n","import type {\n Execute,\n ExecuteResponse,\n RequesterDescription,\n TransformResponse,\n} from '@algolia/autocomplete-preset-algolia';\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteSource,\n OnResolveParams,\n} from './types';\nimport { mapToAlgoliaResponse } from './utils';\n\nfunction isDescription(\n item:\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n | PackedDescription\n): item is RequestDescriptionPreResolved {\n return Boolean((item as RequestDescriptionPreResolved).execute);\n}\n\nfunction isRequesterDescription(\n description: TItem[] | TItem[][] | RequesterDescription\n): description is RequesterDescription {\n return Boolean((description as RequesterDescription)?.execute);\n}\n\ntype PackedDescription = {\n searchClient: SearchClient;\n execute: Execute;\n requesterId?: string;\n items: RequestDescriptionPreResolved['requests'];\n};\n\ntype RequestDescriptionPreResolved = Pick<\n RequesterDescription,\n 'execute' | 'requesterId' | 'searchClient' | 'transformResponse'\n> & {\n requests: Array<{\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse;\n }>;\n};\n\ntype RequestDescriptionPreResolvedCustom = {\n items: TItem[] | TItem[][];\n sourceId: string;\n transformResponse?: undefined;\n};\n\nexport function preResolve(\n itemsOrDescription: TItem[] | TItem[][] | RequesterDescription,\n sourceId: string,\n state: AutocompleteState\n):\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom {\n if (isRequesterDescription(itemsOrDescription)) {\n const contextParameters =\n itemsOrDescription.requesterId === 'algolia'\n ? Object.assign(\n {},\n ...Object.keys(state.context).map((key) => {\n return (state.context[key] as Record)\n ?.__algoliaSearchParameters;\n })\n )\n : {};\n\n return {\n ...itemsOrDescription,\n requests: itemsOrDescription.queries.map((query) => ({\n query:\n itemsOrDescription.requesterId === 'algolia'\n ? {\n ...query,\n params: {\n ...contextParameters,\n ...query.params,\n },\n }\n : query,\n sourceId,\n transformResponse: itemsOrDescription.transformResponse,\n })),\n };\n }\n\n return {\n items: itemsOrDescription,\n sourceId,\n };\n}\n\nexport function resolve(\n items: Array<\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n >\n) {\n const packed = items.reduce<\n Array | PackedDescription>\n >((acc, current) => {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n\n const { searchClient, execute, requesterId, requests } = current;\n\n const container = acc.find>(\n (item): item is PackedDescription => {\n return (\n isDescription(current) &&\n isDescription(item) &&\n item.searchClient === searchClient &&\n Boolean(requesterId) &&\n item.requesterId === requesterId\n );\n }\n );\n\n if (container) {\n container.items.push(...requests);\n } else {\n const request: PackedDescription = {\n execute,\n requesterId,\n items: requests,\n searchClient,\n };\n acc.push(request);\n }\n\n return acc;\n }, []);\n\n const values = packed.map<\n | Promise>\n | ReturnType>\n >((maybeDescription) => {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(\n maybeDescription as RequestDescriptionPreResolvedCustom\n );\n }\n\n const { execute, items, searchClient } =\n maybeDescription as PackedDescription;\n\n return execute({\n searchClient,\n requests: items,\n });\n });\n\n return Promise.all<\n RequestDescriptionPreResolvedCustom | ExecuteResponse\n >(values).then((responses) =>\n flatten<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >(responses)\n );\n}\n\nexport function postResolve(\n responses: Array<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >,\n sources: Array>,\n store: AutocompleteStore\n) {\n return sources.map((source) => {\n const matches = responses.filter(\n (response) => response.sourceId === source.sourceId\n );\n const results = matches.map(({ items }) => items);\n const transform = matches[0].transformResponse;\n const items = transform\n ? transform(\n mapToAlgoliaResponse(\n results as Array<\n SearchForFacetValuesResponse | SearchResponse\n >\n )\n )\n : results;\n\n source.onResolve({\n source,\n results,\n items,\n state: store.getState(),\n } as OnResolveParams);\n\n invariant(\n Array.isArray(items),\n () => `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned type ${JSON.stringify(\n typeof items\n )}:\\n\\n${JSON.stringify(decycle(items), null, 2)}.\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n invariant(\n (items as Array).every(Boolean),\n `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned ${JSON.stringify(\n undefined\n )}.\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n return {\n source,\n items,\n };\n });\n}\n","import type {\n SearchForFacetValuesResponse,\n SearchResponse,\n} from '@algolia/client-search';\n\nexport function mapToAlgoliaResponse(\n rawResults: Array | SearchForFacetValuesResponse>\n) {\n return {\n results: rawResults,\n hits: rawResults\n .map((result) => (result as SearchResponse).hits)\n .filter(Boolean),\n facetHits: rawResults\n .map((result) =>\n (result as SearchForFacetValuesResponse).facetHits?.map((facetHit) => {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted,\n },\n },\n };\n })\n )\n .filter(Boolean),\n };\n}\n","import { MaybePromise } from '@algolia/autocomplete-shared';\n\n/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n let basePromiseId = -1;\n let latestResolvedId = -1;\n let latestResolvedValue: unknown = undefined;\n\n return function runConcurrentSafePromise(\n promise: MaybePromise\n ) {\n basePromiseId++;\n const currentPromiseId = basePromiseId;\n\n return Promise.resolve(promise).then((x) => {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue as TValue;\n }\n\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n\n return x;\n });\n };\n}\n","import { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport {\n AutocompleteScopeApi,\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport {\n cancelable,\n CancelablePromise,\n createConcurrentSafePromise,\n getActiveItem,\n} from './utils';\n\nlet lastStalledId: number | null = null;\n\ninterface OnInputParams\n extends AutocompleteScopeApi {\n event: any;\n /**\n * The next partial state to apply after the function is called.\n *\n * This is useful when we call `onInput` in a different scenario than an\n * actual input. For example, we use `onInput` when we click on an item,\n * but we want to close the panel in that case.\n */\n nextState?: Partial>;\n props: InternalAutocompleteOptions;\n query: string;\n store: AutocompleteStore;\n}\n\nconst runConcurrentSafePromise = createConcurrentSafePromise();\n\nexport function onInput({\n event,\n nextState = {},\n props,\n query,\n refresh,\n store,\n ...setters\n}: OnInputParams): CancelablePromise {\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n\n const { setCollections, setIsOpen, setQuery, setActiveItemId, setStatus } =\n setters;\n\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n\n if (!query && props.openOnFocus === false) {\n const collections = store.getState().collections.map((collection) => ({\n ...collection,\n items: [],\n }));\n\n setStatus('idle');\n setCollections(collections);\n setIsOpen(\n nextState.isOpen ?? props.shouldPanelOpen({ state: store.getState() })\n );\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n const request = cancelable(\n runConcurrentSafePromise(collections).then(() => Promise.resolve())\n );\n\n return store.pendingRequests.add(request);\n }\n\n setStatus('loading');\n\n lastStalledId = props.environment.setTimeout(() => {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n const request = cancelable(\n runConcurrentSafePromise(\n props\n .getSources({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n .then((sources) => {\n return Promise.all(\n sources.map((source) => {\n return Promise.resolve(\n source.getItems({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n ).then((itemsOrDescription) =>\n preResolve(\n itemsOrDescription,\n source.sourceId,\n store.getState()\n )\n );\n })\n )\n .then(resolve)\n .then((responses) => postResolve(responses, sources, store))\n .then((collections) =>\n reshape({ collections, props, state: store.getState() })\n );\n })\n )\n )\n .then((collections) => {\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n\n setCollections(collections as any);\n\n const isPanelOpen = props.shouldPanelOpen({ state: store.getState() });\n\n setIsOpen(\n nextState.isOpen ??\n ((props.openOnFocus && !query && isPanelOpen) || isPanelOpen)\n );\n\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n })\n .finally(() => {\n setStatus('idle');\n\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n\n return store.pendingRequests.add(request);\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteCollection,\n AutocompleteReshapeSourcesBySourceId,\n AutocompleteState,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\n\ntype ReshapeParams = {\n collections: Array>;\n props: InternalAutocompleteOptions;\n state: AutocompleteState;\n};\n\nexport function reshape({\n collections,\n props,\n state,\n}: ReshapeParams) {\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n const originalSourcesBySourceId = collections.reduce<\n AutocompleteReshapeSourcesBySourceId\n >(\n (acc, collection) => ({\n ...acc,\n [collection.source.sourceId]: {\n ...collection.source,\n getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n },\n },\n }),\n {}\n );\n\n const { sourcesBySourceId } = props.plugins.reduce(\n (acc, plugin) => {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n },\n {\n sourcesBySourceId: originalSourcesBySourceId,\n state,\n }\n );\n\n const reshapeSources = props.reshape({\n sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state,\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources)\n .filter(Boolean)\n .map((source) => {\n return {\n source,\n items: source.getItems(),\n };\n });\n}\n","import { noop } from '@algolia/autocomplete-shared';\n\nimport { onInput } from './onInput';\nimport { onKeyDown } from './onKeyDown';\nimport {\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n GetEnvironmentProps,\n GetFormProps,\n GetInputProps,\n GetItemProps,\n GetLabelProps,\n GetListProps,\n GetPanelProps,\n GetRootProps,\n InternalAutocompleteOptions,\n} from './types';\nimport { getActiveItem, isOrContainsNode, isSamsung } from './utils';\n\ninterface GetPropGettersOptions\n extends AutocompleteScopeApi {\n store: AutocompleteStore;\n props: InternalAutocompleteOptions;\n}\n\nexport function getPropGetters<\n TItem extends BaseItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n>({ props, refresh, store, ...setters }: GetPropGettersOptions) {\n const getEnvironmentProps: GetEnvironmentProps = (providedProps) => {\n const { inputElement, formElement, panelElement, ...rest } = providedProps;\n\n function onMouseDownOrTouchStart(event: MouseEvent | TouchEvent) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n const isAutocompleteInteraction =\n store.getState().isOpen || !store.pendingRequests.isEmpty();\n\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n const isTargetWithinAutocomplete = [formElement, panelElement].some(\n (contextNode) => {\n return isOrContainsNode(contextNode, event.target as Node);\n }\n );\n\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n\n return {\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove(event: TouchEvent) {\n if (\n store.getState().isOpen === false ||\n inputElement !== props.environment.document.activeElement ||\n event.target === inputElement\n ) {\n return;\n }\n\n inputElement.blur();\n },\n ...rest,\n };\n };\n\n const getRootProps: GetRootProps = (rest) => {\n return {\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': store.getState().isOpen ? `${props.id}-list` : undefined,\n 'aria-labelledby': `${props.id}-label`,\n ...rest,\n };\n };\n\n const getFormProps: GetFormProps = (providedProps) => {\n const { inputElement, ...rest } = providedProps;\n\n return {\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onSubmit({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('submit', null);\n providedProps.inputElement?.blur();\n },\n onReset: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onReset({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('reset', null);\n providedProps.inputElement?.focus();\n },\n ...rest,\n };\n };\n\n const getInputProps: GetInputProps = (\n providedProps\n ) => {\n function onFocus(event: TEvent) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput({\n event,\n props,\n query: store.getState().completion || store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n store.dispatch('focus', null);\n }\n\n const { inputElement, maxLength = 512, ...rest } = providedProps || {};\n const activeItem = getActiveItem(store.getState());\n\n const userAgent = props.environment.navigator?.userAgent || '';\n const shouldFallbackKeyHint = isSamsung(userAgent);\n const enterKeyHint =\n activeItem?.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';\n\n return {\n 'aria-autocomplete': 'both',\n 'aria-activedescendant':\n store.getState().isOpen && store.getState().activeItemId !== null\n ? `${props.id}-item-${store.getState().activeItemId}`\n : undefined,\n 'aria-controls': store.getState().isOpen ? `${props.id}-list` : undefined,\n 'aria-labelledby': `${props.id}-label`,\n value: store.getState().completion || store.getState().query,\n id: `${props.id}-input`,\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength,\n type: 'search',\n onChange: (event) => {\n onInput({\n event,\n props,\n query: (\n (event as unknown as Event).currentTarget as HTMLInputElement\n ).value.slice(0, maxLength),\n refresh,\n store,\n ...setters,\n });\n },\n onKeyDown: (event) => {\n onKeyDown({\n event: event as unknown as KeyboardEvent,\n props,\n refresh,\n store,\n ...setters,\n });\n },\n onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: (event) => {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (\n providedProps.inputElement ===\n props.environment.document.activeElement &&\n !store.getState().isOpen\n ) {\n onFocus(event as unknown as TEvent);\n }\n },\n ...rest,\n };\n };\n\n const getAutocompleteId = (instanceId: string, sourceId?: number) => {\n return typeof sourceId !== 'undefined'\n ? `${instanceId}-${sourceId}`\n : instanceId;\n };\n\n const getLabelProps: GetLabelProps = (providedProps) => {\n const { sourceIndex, ...rest } = providedProps || {};\n\n return {\n htmlFor: `${getAutocompleteId(props.id, sourceIndex)}-input`,\n id: `${getAutocompleteId(props.id, sourceIndex)}-label`,\n ...rest,\n };\n };\n\n const getListProps: GetListProps = (providedProps) => {\n const { sourceIndex, ...rest } = providedProps || {};\n\n return {\n role: 'listbox',\n 'aria-labelledby': `${getAutocompleteId(props.id, sourceIndex)}-label`,\n id: `${getAutocompleteId(props.id, sourceIndex)}-list`,\n ...rest,\n };\n };\n\n const getPanelProps: GetPanelProps = (rest) => {\n return {\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n (event as unknown as MouseEvent).preventDefault();\n },\n onMouseLeave() {\n store.dispatch('mouseleave', null);\n },\n ...rest,\n };\n };\n\n const getItemProps: GetItemProps = (providedProps) => {\n const { item, source, sourceIndex, ...rest } = providedProps;\n\n return {\n id: `${getAutocompleteId(props.id, sourceIndex as number)}-item-${\n item.__autocomplete_id\n }`,\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n\n store.dispatch('mousemove', item.__autocomplete_id);\n\n const activeItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && activeItem) {\n const { item, itemInputValue, itemUrl, source } = activeItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n },\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n (event as unknown as MouseEvent).preventDefault();\n },\n onClick(event) {\n const itemInputValue = source.getItemInputValue({\n item,\n state: store.getState(),\n });\n const itemUrl = source.getItemUrl({\n item,\n state: store.getState(),\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n const runPreCommand = itemUrl\n ? Promise.resolve()\n : onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n });\n\n runPreCommand.then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n },\n ...rest,\n };\n };\n\n return {\n getEnvironmentProps,\n getRootProps,\n getFormProps,\n getLabelProps,\n getInputProps,\n getPanelProps,\n getListProps,\n getItemProps,\n };\n}\n","export function isOrContainsNode(parent: Node, child: Node) {\n return parent === child || parent.contains(child);\n}\n","import { onInput } from './onInput';\nimport {\n ActionType,\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getActiveItem } from './utils';\n\ninterface OnKeyDownOptions\n extends AutocompleteScopeApi {\n event: KeyboardEvent;\n props: InternalAutocompleteOptions;\n store: AutocompleteStore;\n}\n\nexport function onKeyDown({\n event,\n props,\n refresh,\n store,\n ...setters\n}: OnKeyDownOptions): void {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n function triggerScrollIntoView() {\n const nodeItem = props.environment.document.getElementById(\n `${props.id}-item-${store.getState().activeItemId}`\n );\n\n if (nodeItem) {\n if ((nodeItem as any).scrollIntoViewIfNeeded) {\n (nodeItem as any).scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }\n\n // eslint-disable-next-line no-inner-declarations\n function triggerOnActive() {\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n }\n\n // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (\n store.getState().isOpen === false &&\n (props.openOnFocus || Boolean(store.getState().query))\n ) {\n onInput({\n event,\n props,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n }).then(() => {\n store.dispatch(event.key as ActionType, {\n nextActiveItemId: props.defaultActiveItemId,\n });\n\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (\n store.getState().activeItemId === null ||\n store\n .getState()\n .collections.every((collection) => collection.items.length === 0)\n ) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n\n const { item, itemInputValue, itemUrl, source } = getActiveItem(\n store.getState()\n )!;\n\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewTab({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewWindow({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigate({\n itemUrl,\n item,\n state: store.getState(),\n });\n\n return;\n }\n\n onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n }).then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n }\n }\n}\n","import { UserAgent, userAgents } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteOptionsWithMetadata,\n AutocompletePlugin,\n BaseItem,\n} from '.';\n\ntype AutocompleteMetadata = {\n plugins: Array<{\n name: string | undefined;\n options: string[];\n }>;\n options: Record;\n ua: UserAgent[];\n};\n\ntype GetMetadataParams = {\n plugins: Array>;\n options: AutocompleteOptionsWithMetadata;\n};\n\nexport function getMetadata({\n plugins,\n options,\n}: GetMetadataParams) {\n const optionsKey = ((options.__autocomplete_metadata\n ?.userAgents as UserAgent[]) || [])[0]?.segment;\n\n const extraOptions = optionsKey\n ? {\n [optionsKey]: Object.keys(\n (options.__autocomplete_metadata\n ?.options as AutocompleteOptions) || {}\n ),\n }\n : {};\n\n return {\n plugins: plugins.map((plugin) => ({\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || []),\n })),\n options: {\n 'autocomplete-core': Object.keys(options),\n ...extraOptions,\n },\n ua: userAgents.concat(\n (options.__autocomplete_metadata?.userAgents as any) || []\n ),\n };\n}\n\ntype InlineMetadataParams = {\n metadata: AutocompleteMetadata;\n environment: AutocompleteEnvironment;\n};\n\nexport function injectMetadata({\n metadata,\n environment,\n}: InlineMetadataParams) {\n const isMetadataEnabled =\n environment.navigator?.userAgent?.includes('Algolia Crawler');\n\n if (isMetadataEnabled) {\n const metadataContainer = environment.document.createElement('meta');\n const headRef = environment.document.querySelector('head');\n\n metadataContainer.name = 'algolia:metadata';\n\n setTimeout(() => {\n metadataContainer.content = JSON.stringify(metadata);\n headRef!.appendChild(metadataContainer);\n }, 0);\n }\n}\n","import { AutocompleteState, BaseItem } from './types';\nimport { getActiveItem } from './utils';\n\ninterface GetCompletionProps {\n state: AutocompleteState;\n}\n\nexport function getCompletion({\n state,\n}: GetCompletionProps): string | null {\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n\n return getActiveItem(state)?.itemInputValue || null;\n}\n","import { getItemsCount, invariant } from '@algolia/autocomplete-shared';\n\nimport { getCompletion } from './getCompletion';\nimport { Reducer } from './types';\nimport { getNextActiveItemId } from './utils';\n\nexport const stateReducer: Reducer = (state, action) => {\n switch (action.type) {\n case 'setActiveItemId': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'setQuery': {\n return {\n ...state,\n query: action.payload,\n completion: null,\n };\n }\n\n case 'setCollections': {\n return {\n ...state,\n collections: action.payload,\n };\n }\n\n case 'setIsOpen': {\n return {\n ...state,\n isOpen: action.payload,\n };\n }\n\n case 'setStatus': {\n return {\n ...state,\n status: action.payload,\n };\n }\n\n case 'setContext': {\n return {\n ...state,\n context: {\n ...state.context,\n ...action.payload,\n },\n };\n }\n\n case 'ArrowDown': {\n const nextState = {\n ...state,\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId')\n ? action.payload.nextActiveItemId\n : getNextActiveItemId(\n 1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'ArrowUp': {\n const nextState = {\n ...state,\n activeItemId: getNextActiveItemId(\n -1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'Escape': {\n if (state.isOpen) {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n completion: null,\n };\n }\n\n return {\n ...state,\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: [],\n };\n }\n\n case 'submit': {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n status: 'idle',\n };\n }\n\n case 'reset': {\n return {\n ...state,\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true\n ? action.props.defaultActiveItemId\n : null,\n status: 'idle',\n query: '',\n };\n }\n\n case 'focus': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n isOpen:\n (action.props.openOnFocus || Boolean(state.query)) &&\n action.props.shouldPanelOpen({ state }),\n };\n }\n\n case 'blur': {\n if (action.props.debug) {\n return state;\n }\n\n return {\n ...state,\n isOpen: false,\n activeItemId: null,\n };\n }\n\n case 'mousemove': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'mouseleave': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n };\n }\n\n default:\n invariant(\n false,\n `The reducer action ${JSON.stringify(action.type)} is not supported.`\n );\n\n return state;\n }\n};\n","import { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\n\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nimport {\n AutocompleteApi,\n AutocompleteOptions as AutocompleteCoreOptions,\n BaseItem,\n AutocompleteSubscribers,\n} from './types';\n\nexport interface AutocompleteOptionsWithMetadata\n extends AutocompleteCoreOptions {\n /**\n * @internal\n */\n __autocomplete_metadata?: Record;\n}\n\nexport function createAutocomplete<\n TItem extends BaseItem,\n TEvent = Event,\n TMouseEvent = MouseEvent,\n TKeyboardEvent = KeyboardEvent\n>(\n options: AutocompleteOptionsWithMetadata\n): AutocompleteApi {\n checkOptions(options);\n\n const subscribers: AutocompleteSubscribers = [];\n const props = getDefaultProps(options, subscribers);\n const store = createStore(stateReducer, props, onStoreStateChange);\n\n const setters = getAutocompleteSetters({ store });\n const propGetters = getPropGetters<\n TItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n >({ props, refresh, store, navigator: props.navigator, ...setters });\n\n function onStoreStateChange({ prevState, state }) {\n props.onStateChange({\n prevState,\n state,\n refresh,\n navigator: props.navigator,\n ...setters,\n });\n }\n\n function refresh() {\n return onInput({\n event: new Event('input'),\n nextState: { isOpen: store.getState().isOpen },\n props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n if (\n options.insights &&\n !props.plugins.some((plugin) => plugin.name === 'aa.algoliaInsightsPlugin')\n ) {\n const insightsParams =\n typeof options.insights === 'boolean' ? {} : options.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n\n props.plugins.forEach((plugin) =>\n plugin.subscribe?.({\n ...setters,\n navigator: props.navigator,\n refresh,\n onSelect(fn) {\n subscribers.push({ onSelect: fn });\n },\n onActive(fn) {\n subscribers.push({ onActive: fn });\n },\n onResolve(fn) {\n subscribers.push({ onResolve: fn });\n },\n })\n );\n\n injectMetadata({\n metadata: getMetadata({ plugins: props.plugins, options }),\n environment: props.environment,\n });\n\n return {\n refresh,\n navigator: props.navigator,\n ...propGetters,\n ...setters,\n };\n}\n","import {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n Reducer,\n} from './types';\nimport { createCancelablePromiseList } from './utils';\n\ntype OnStoreStateChange = ({\n prevState,\n state,\n}: {\n prevState: AutocompleteState;\n state: AutocompleteState;\n}) => void;\n\nexport function createStore(\n reducer: Reducer,\n props: InternalAutocompleteOptions,\n onStoreStateChange: OnStoreStateChange\n): AutocompleteStore {\n let state = props.initialState;\n\n return {\n getState() {\n return state;\n },\n dispatch(action, payload) {\n const prevState = { ...state };\n state = reducer(state, {\n type: action,\n props,\n payload,\n });\n\n onStoreStateChange({ state, prevState });\n },\n pendingRequests: createCancelablePromiseList(),\n };\n}\n","import { CancelablePromise } from '.';\n\nexport type CancelablePromiseList = {\n /**\n * Add a cancelable promise to the list.\n *\n * @param cancelablePromise The cancelable promise to add.\n */\n add(cancelablePromise: CancelablePromise): CancelablePromise;\n /**\n * Cancel all pending promises.\n *\n * Requests aren't actually stopped. All pending promises will settle, but\n * attached handlers won't run.\n */\n cancelAll(): void;\n /**\n * Whether there are pending promises in the list.\n */\n isEmpty(): boolean;\n};\n\nexport function createCancelablePromiseList<\n TValue\n>(): CancelablePromiseList {\n let list: Array> = [];\n\n return {\n add(cancelablePromise) {\n list.push(cancelablePromise);\n\n return cancelablePromise.finally(() => {\n list = list.filter((item) => item !== cancelablePromise);\n });\n },\n cancelAll() {\n list.forEach((promise) => promise.cancel());\n },\n isEmpty() {\n return list.length === 0;\n },\n };\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteApi,\n AutocompleteCollection,\n AutocompleteStore,\n BaseItem,\n} from './types';\n\ninterface GetAutocompleteSettersOptions {\n store: AutocompleteStore;\n}\n\nexport function getAutocompleteSetters({\n store,\n}: GetAutocompleteSettersOptions) {\n const setActiveItemId: AutocompleteApi['setActiveItemId'] = (\n value\n ) => {\n store.dispatch('setActiveItemId', value);\n };\n\n const setQuery: AutocompleteApi['setQuery'] = (value) => {\n store.dispatch('setQuery', value);\n };\n\n const setCollections: AutocompleteApi['setCollections'] = (\n rawValue\n ) => {\n let baseItemId = 0;\n const value = rawValue.map>((collection) => ({\n ...collection,\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items as any).map((item: any) => ({\n ...item,\n __autocomplete_id: baseItemId++,\n })),\n }));\n\n store.dispatch('setCollections', value);\n };\n\n const setIsOpen: AutocompleteApi['setIsOpen'] = (value) => {\n store.dispatch('setIsOpen', value);\n };\n\n const setStatus: AutocompleteApi['setStatus'] = (value) => {\n store.dispatch('setStatus', value);\n };\n\n const setContext: AutocompleteApi['setContext'] = (value) => {\n store.dispatch('setContext', value);\n };\n\n return {\n setActiveItemId,\n setQuery,\n setCollections,\n setIsOpen,\n setStatus,\n setContext,\n };\n}\n"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","flatten","values","reduce","a","b","concat","autocompleteId","getItemsCount","state","collections","sum","collection","items","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","userAgents","segment","version","createClickedEvent","_ref","item","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_slicedToArray","arr","i","isArray","_arrayWithHoles","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","done","push","value","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_excluded","_excluded2","_typeof","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_objectWithoutProperties","source","excluded","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","arg","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","map","param","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","init","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","current","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","_ref8","onSelect","_ref9","onActive","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onActiveEvent","callback","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","loadInsights","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","createInternalCancelablePromise","promise","initialState","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getActiveItem","collectionIndex","collectionsCount","nextValue","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","regex","getDefaultProps","props","pluginSubscribers","_props$id","plugins","debug","openOnFocus","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","context","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","maybeSource","sourceId","includes","Error","JSON","stringify","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","location","assign","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","getState","every","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","pendingRequests","add","getItems","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","getPropGetters","getAutocompleteId","instanceId","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","isEmpty","some","contextNode","parent","child","contains","dispatch","cancelAll","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","action","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","_excluded3","getLabelProps","sourceIndex","_excluded5","htmlFor","getInputProps","_props$environment$na","onFocus","_ref2$maxLength","maxLength","_excluded4","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","type","onChange","currentTarget","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","_excluded6","getItemProps","_excluded7","__autocomplete_id","onMouseMove","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","stateReducer","hasOwnProperty","subscribers","reducer","onStoreStateChange","list","prevState","cancelablePromise","createStore","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","insightsParams","_plugin$subscribe","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/flatten.js","../../../autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../autocomplete-shared/dist/esm/getItemsCount.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-shared/dist/esm/createRef.js","../../src/utils/createCancelablePromise.ts","../../src/utils/getNextActiveItemId.ts","../../src/utils/getActiveItem.ts","../../src/utils/getAutocompleteElementId.ts","../../src/utils/isSamsung.ts","../../src/utils/getNativeEvent.ts","../../src/getDefaultProps.ts","../../src/utils/getNormalizedSources.ts","../../src/resolve.ts","../../src/utils/mapToAlgoliaResponse.ts","../../src/utils/createConcurrentSafePromise.ts","../../src/onInput.ts","../../src/reshape.ts","../../src/getPropGetters.ts","../../src/utils/isOrContainsNode.ts","../../src/onKeyDown.ts","../../src/metadata.ts","../../src/getCompletion.ts","../../src/stateReducer.ts","../../src/createAutocomplete.ts","../../src/createStore.ts","../../src/utils/createCancelablePromiseList.ts","../../src/getAutocompleteSetters.ts"],"sourcesContent":["export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","export var version = '1.17.7';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export function createClickedEvent(_ref) {\n var item = _ref.item,\n _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n insightsInitParams = _getOptions.insightsInitParams,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive,\n __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n if (insightsInitParams) {\n insightsClient('init', _objectSpread({\n partial: true\n }, insightsInitParams));\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n var isAuthenticatedToken = false;\n function setInsightsContext(userToken) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: _objectSpread(_objectSpread({}, __autocomplete_clickAnalytics ? {\n clickAnalytics: true\n } : {}), userToken ? {\n userToken: normalizeUserToken(userToken)\n } : {}),\n insights: insights\n }\n });\n }\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', function (userToken) {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n insightsClient('getUserToken', null, function (_error, userToken) {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n\n // Handles authenticated user token changes\n insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n } else {\n isAuthenticatedToken = false;\n insightsClient('getUserToken', null, function (_error, userToken) {\n return setInsightsContext(userToken);\n });\n }\n });\n insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event,\n source = _ref5.source;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n source = _ref6.source,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: source.getItems().filter(isAlgoliaInsightsHit)\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getAlgoliaSources() {\n var _context$algoliaInsig;\n var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 ? arguments[1] : undefined;\n return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : []));\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents,\n state = _ref8.state;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents,\n state = _ref9.state;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context)\n });\n })));\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(userToken) {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","type PromiseExecutor = (\n resolve: (value: TValue | PromiseLike) => void,\n reject: (reason?: any) => void\n) => void;\n\ntype CancelablePromiseState = {\n isCanceled: boolean;\n onCancelList: Array<(...args: any[]) => any>;\n};\n\nfunction createInternalCancelablePromise(\n promise: Promise,\n initialState: CancelablePromiseState\n): CancelablePromise {\n const state = initialState;\n\n return {\n then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(\n promise.then(\n createCallback(onfulfilled, state, promise),\n createCallback(onrejected, state, promise)\n ),\n state\n );\n },\n catch(onrejected) {\n return createInternalCancelablePromise(\n promise.catch(createCallback(onrejected, state, promise)),\n state\n );\n },\n finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n\n return createInternalCancelablePromise(\n promise.finally(\n createCallback(\n onfinally &&\n (() => {\n state.onCancelList = [];\n\n return onfinally();\n }),\n state,\n promise\n )\n ),\n state\n );\n },\n cancel() {\n state.isCanceled = true;\n const callbacks = state.onCancelList;\n state.onCancelList = [];\n\n callbacks.forEach((callback) => {\n callback();\n });\n },\n isCanceled() {\n return state.isCanceled === true;\n },\n };\n}\n\nexport type CancelablePromise = {\n then(\n onfulfilled?:\n | ((\n value: TValue\n ) =>\n | TResultFulfilled\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null,\n onrejected?:\n | ((\n reason: any\n ) =>\n | TResultRejected\n | PromiseLike\n | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n catch(\n onrejected?:\n | ((\n reason: any\n ) => TResult | PromiseLike | CancelablePromise)\n | undefined\n | null\n ): CancelablePromise;\n finally(\n onfinally?: (() => void) | undefined | null\n ): CancelablePromise;\n cancel(): void;\n isCanceled(): boolean;\n};\n\nexport function createCancelablePromise(\n executor: PromiseExecutor\n): CancelablePromise {\n return createInternalCancelablePromise(\n new Promise((resolve, reject) => {\n return executor(resolve, reject);\n }),\n { isCanceled: false, onCancelList: [] }\n );\n}\n\ncreateCancelablePromise.resolve = (\n value?: TValue | PromiseLike | CancelablePromise\n) => cancelable(Promise.resolve(value));\n\ncreateCancelablePromise.reject = (reason?: any) =>\n cancelable(Promise.reject(reason));\n\nexport function cancelable(promise: Promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: [],\n });\n}\n\nfunction createCallback(\n onResult: ((...args: any[]) => any) | null | undefined,\n state: CancelablePromiseState,\n fallback: any\n) {\n if (!onResult) {\n return fallback;\n }\n\n return function callback(arg?: any) {\n if (state.isCanceled) {\n return arg;\n }\n\n return onResult(arg);\n };\n}\n","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(\n moveAmount: number,\n baseIndex: number | null,\n itemCount: number,\n defaultActiveItemId: number | null\n): number | null {\n if (!itemCount) {\n return null;\n }\n\n if (\n moveAmount < 0 &&\n (baseIndex === null || (defaultActiveItemId !== null && baseIndex === 0))\n ) {\n return itemCount + moveAmount;\n }\n\n const numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n\n return numericIndex;\n}\n","import { AutocompleteCollection, AutocompleteState, BaseItem } from '../types';\n\n// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(\n state: AutocompleteState\n): AutocompleteCollection | undefined {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n const accumulatedCollectionsCount = state.collections\n .map((collections) => collections.items.length)\n .reduce((acc, collectionsCount, index) => {\n const previousValue = acc[index - 1] || 0;\n const nextValue = previousValue + collectionsCount;\n\n acc.push(nextValue);\n\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n const collectionIndex = accumulatedCollectionsCount.reduce((acc, current) => {\n if (current <= state.activeItemId!) {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId({\n state,\n collection,\n}: {\n state: AutocompleteState;\n collection: AutocompleteCollection;\n}): number {\n let isOffsetFound = false;\n let counter = 0;\n let previousItemsOffset = 0;\n\n while (isOffsetFound === false) {\n const currentCollection = state.collections[counter];\n\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n\n previousItemsOffset += currentCollection.items.length;\n\n counter++;\n }\n\n return state.activeItemId! - previousItemsOffset;\n}\n\nexport function getActiveItem(\n state: AutocompleteState\n) {\n const collection = getCollectionFromActiveItemId(state);\n\n if (!collection) {\n return null;\n }\n\n const item = collection.items[getRelativeActiveItemId({ state, collection })];\n const source = collection.source;\n const itemInputValue = source.getItemInputValue({ item, state });\n const itemUrl = source.getItemUrl({ item, state });\n\n return {\n item,\n itemInputValue,\n itemUrl,\n source,\n };\n}\n","import type { InternalAutocompleteSource } from '../types';\n\n/**\n * Returns a full element id for an autocomplete element.\n *\n * @param autocompleteInstanceId The id of the autocomplete instance\n * @param elementId The specific element id\n * @param source The source of the element, when it needs to be scoped\n */\nexport function getAutocompleteElementId(\n autocompleteInstanceId: string,\n elementId: string,\n source?: InternalAutocompleteSource\n) {\n return [autocompleteInstanceId, source?.sourceId, elementId]\n .filter(Boolean)\n .join('-')\n .replace(/\\s/g, '');\n}\n","const regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\n\nexport function isSamsung(userAgent: string) {\n return Boolean(userAgent && userAgent.match(regex));\n}\n","export function getNativeEvent(event: TEvent) {\n return (event as unknown as { nativeEvent: TEvent }).nativeEvent || event;\n}\n","import {\n getItemsCount,\n generateAutocompleteId,\n flatten,\n} from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteSubscribers,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getNormalizedSources } from './utils';\n\nexport function getDefaultProps(\n props: AutocompleteOptions,\n pluginSubscribers: AutocompleteSubscribers\n): InternalAutocompleteOptions {\n /* eslint-disable no-restricted-globals */\n const environment: AutocompleteEnvironment = (\n typeof window !== 'undefined' ? window : {}\n ) as typeof window;\n /* eslint-enable no-restricted-globals */\n const plugins = props.plugins || [];\n\n return {\n debug: false,\n openOnFocus: false,\n enterKeyHint: undefined,\n ignoreCompositionEvents: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: undefined,\n environment,\n shouldPanelOpen: ({ state }) => getItemsCount(state) > 0,\n reshape: ({ sources }) => sources,\n ...props,\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: props.id ?? generateAutocompleteId(),\n plugins,\n // The following props need to be deeply defaulted.\n initialState: {\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {},\n ...props.initialState,\n },\n onStateChange(params) {\n props.onStateChange?.(params);\n plugins.forEach((x) => x.onStateChange?.(params));\n },\n onSubmit(params) {\n props.onSubmit?.(params);\n plugins.forEach((x) => x.onSubmit?.(params));\n },\n onReset(params) {\n props.onReset?.(params);\n plugins.forEach((x) => x.onReset?.(params));\n },\n getSources(params) {\n return Promise.all(\n [...plugins.map((plugin) => plugin.getSources), props.getSources]\n .filter(Boolean)\n .map((getSources) => getNormalizedSources(getSources!, params))\n )\n .then((nested) => flatten(nested))\n .then((sources) =>\n sources.map((source) => ({\n ...source,\n onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach((x) => x.onSelect?.(params));\n },\n onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach((x) => x.onActive?.(params));\n },\n onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach((x) => x.onResolve?.(params));\n },\n }))\n );\n },\n navigator: {\n navigate({ itemUrl }) {\n environment.location.assign(itemUrl);\n },\n navigateNewTab({ itemUrl }) {\n const windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference?.focus();\n },\n navigateNewWindow({ itemUrl }) {\n environment.open(itemUrl, '_blank', 'noopener');\n },\n ...props.navigator,\n },\n };\n}\n","import { invariant, decycle, noop } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteSource,\n BaseItem,\n GetSources,\n GetSourcesParams,\n InternalAutocompleteSource,\n InternalGetSources,\n} from '../types';\n\nexport function getNormalizedSources(\n getSources: GetSources,\n params: GetSourcesParams\n): ReturnType> {\n const seenSourceIds: string[] = [];\n\n return Promise.resolve(getSources(params)).then((sources) => {\n invariant(\n Array.isArray(sources),\n () =>\n `The \\`getSources\\` function must return an array of sources but returned type ${JSON.stringify(\n typeof sources\n )}:\\n\\n${JSON.stringify(decycle(sources), null, 2)}`\n );\n\n return Promise.all(\n sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter((maybeSource: any): maybeSource is AutocompleteSource =>\n Boolean(maybeSource)\n )\n .map((source) => {\n invariant(\n typeof source.sourceId === 'string',\n 'A source must provide a `sourceId` string.'\n );\n\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\n `[Autocomplete] The \\`sourceId\\` ${JSON.stringify(\n source.sourceId\n )} is not unique.`\n );\n }\n\n seenSourceIds.push(source.sourceId);\n\n const defaultSource: Omit<\n InternalAutocompleteSource,\n 'sourceId' | 'getItems'\n > = {\n getItemInputValue({ state }) {\n return state.query;\n },\n getItemUrl() {\n return undefined;\n },\n onSelect({ setIsOpen }) {\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop,\n };\n\n Object.keys(defaultSource).forEach((key) => {\n defaultSource[key].__default = true;\n });\n\n const normalizedSource: InternalAutocompleteSource = {\n ...defaultSource,\n ...source,\n };\n\n return Promise.resolve(normalizedSource);\n })\n );\n });\n}\n","import type {\n Execute,\n ExecuteResponse,\n RequesterDescription,\n TransformResponse,\n} from '@algolia/autocomplete-preset-algolia';\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport type { SearchResponse } from '@algolia/autocomplete-shared';\nimport {\n MultipleQueriesQuery,\n SearchForFacetValuesResponse,\n} from '@algolia/client-search';\nimport type { SearchClient } from 'algoliasearch/lite';\n\nimport {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteSource,\n OnResolveParams,\n} from './types';\nimport { mapToAlgoliaResponse } from './utils';\n\nfunction isDescription(\n item:\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n | PackedDescription\n): item is RequestDescriptionPreResolved {\n return Boolean((item as RequestDescriptionPreResolved).execute);\n}\n\nfunction isRequesterDescription(\n description: TItem[] | TItem[][] | RequesterDescription\n): description is RequesterDescription {\n return Boolean((description as RequesterDescription)?.execute);\n}\n\ntype PackedDescription = {\n searchClient: SearchClient;\n execute: Execute;\n requesterId?: string;\n items: RequestDescriptionPreResolved['requests'];\n};\n\ntype RequestDescriptionPreResolved = Pick<\n RequesterDescription,\n 'execute' | 'requesterId' | 'searchClient' | 'transformResponse'\n> & {\n requests: Array<{\n query: MultipleQueriesQuery;\n sourceId: string;\n transformResponse: TransformResponse;\n }>;\n};\n\ntype RequestDescriptionPreResolvedCustom = {\n items: TItem[] | TItem[][];\n sourceId: string;\n transformResponse?: undefined;\n};\n\nexport function preResolve(\n itemsOrDescription: TItem[] | TItem[][] | RequesterDescription,\n sourceId: string,\n state: AutocompleteState\n):\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom {\n if (isRequesterDescription(itemsOrDescription)) {\n const contextParameters =\n itemsOrDescription.requesterId === 'algolia'\n ? Object.assign(\n {},\n ...Object.keys(state.context).map((key) => {\n return (state.context[key] as Record)\n ?.__algoliaSearchParameters;\n })\n )\n : {};\n\n return {\n ...itemsOrDescription,\n requests: itemsOrDescription.queries.map((query) => ({\n query:\n itemsOrDescription.requesterId === 'algolia'\n ? {\n ...query,\n params: {\n ...contextParameters,\n ...query.params,\n },\n }\n : query,\n sourceId,\n transformResponse: itemsOrDescription.transformResponse,\n })),\n };\n }\n\n return {\n items: itemsOrDescription,\n sourceId,\n };\n}\n\nexport function resolve(\n items: Array<\n | RequestDescriptionPreResolved\n | RequestDescriptionPreResolvedCustom\n >\n) {\n const packed = items.reduce<\n Array | PackedDescription>\n >((acc, current) => {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n\n const { searchClient, execute, requesterId, requests } = current;\n\n const container = acc.find>(\n (item): item is PackedDescription => {\n return (\n isDescription(current) &&\n isDescription(item) &&\n item.searchClient === searchClient &&\n Boolean(requesterId) &&\n item.requesterId === requesterId\n );\n }\n );\n\n if (container) {\n container.items.push(...requests);\n } else {\n const request: PackedDescription = {\n execute,\n requesterId,\n items: requests,\n searchClient,\n };\n acc.push(request);\n }\n\n return acc;\n }, []);\n\n const values = packed.map<\n | Promise>\n | ReturnType>\n >((maybeDescription) => {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(\n maybeDescription as RequestDescriptionPreResolvedCustom\n );\n }\n\n const { execute, items, searchClient } =\n maybeDescription as PackedDescription;\n\n return execute({\n searchClient,\n requests: items,\n });\n });\n\n return Promise.all<\n RequestDescriptionPreResolvedCustom | ExecuteResponse\n >(values).then((responses) =>\n flatten<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >(responses)\n );\n}\n\nexport function postResolve(\n responses: Array<\n RequestDescriptionPreResolvedCustom | ExecuteResponse[0]\n >,\n sources: Array>,\n store: AutocompleteStore\n) {\n return sources.map((source) => {\n const matches = responses.filter(\n (response) => response.sourceId === source.sourceId\n );\n const results = matches.map(({ items }) => items);\n const transform = matches[0].transformResponse;\n const items = transform\n ? transform(\n mapToAlgoliaResponse(\n results as Array<\n SearchForFacetValuesResponse | SearchResponse\n >\n )\n )\n : results;\n\n source.onResolve({\n source,\n results,\n items,\n state: store.getState(),\n } as OnResolveParams);\n\n invariant(\n Array.isArray(items),\n () => `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned type ${JSON.stringify(\n typeof items\n )}:\\n\\n${JSON.stringify(decycle(items), null, 2)}.\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n invariant(\n (items as Array).every(Boolean),\n `The \\`getItems\\` function from source \"${\n source.sourceId\n }\" must return an array of items but returned ${JSON.stringify(\n undefined\n )}.\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems`\n );\n\n return {\n source,\n items,\n };\n });\n}\n","import type { SearchResponse } from '@algolia/autocomplete-shared';\nimport type { SearchForFacetValuesResponse } from '@algolia/client-search';\n\nexport function mapToAlgoliaResponse(\n rawResults: Array | SearchForFacetValuesResponse>\n) {\n return {\n results: rawResults,\n hits: rawResults\n .map((result) => (result as SearchResponse).hits)\n .filter(Boolean),\n facetHits: rawResults\n .map((result) =>\n (result as SearchForFacetValuesResponse).facetHits?.map((facetHit) => {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted,\n },\n },\n };\n })\n )\n .filter(Boolean),\n };\n}\n","import { MaybePromise } from '@algolia/autocomplete-shared';\n\n/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n let basePromiseId = -1;\n let latestResolvedId = -1;\n let latestResolvedValue: unknown = undefined;\n\n return function runConcurrentSafePromise(\n promise: MaybePromise\n ) {\n basePromiseId++;\n const currentPromiseId = basePromiseId;\n\n return Promise.resolve(promise).then((x) => {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue as TValue;\n }\n\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n\n return x;\n });\n };\n}\n","import { SearchResponse } from '@algolia/autocomplete-shared';\nimport { SearchForFacetValuesResponse } from '@algolia/client-search';\n\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport {\n AutocompleteScopeApi,\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport {\n cancelable,\n CancelablePromise,\n createConcurrentSafePromise,\n getActiveItem,\n} from './utils';\n\nlet lastStalledId: number | null = null;\n\ninterface OnInputParams\n extends AutocompleteScopeApi {\n event: any;\n /**\n * The next partial state to apply after the function is called.\n *\n * This is useful when we call `onInput` in a different scenario than an\n * actual input. For example, we use `onInput` when we click on an item,\n * but we want to close the panel in that case.\n */\n nextState?: Partial>;\n props: InternalAutocompleteOptions;\n query: string;\n store: AutocompleteStore;\n}\n\nconst runConcurrentSafePromise = createConcurrentSafePromise();\n\nexport function onInput({\n event,\n nextState = {},\n props,\n query,\n refresh,\n store,\n ...setters\n}: OnInputParams): CancelablePromise {\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n\n const {\n setCollections,\n setIsOpen,\n setQuery,\n setActiveItemId,\n setStatus,\n setContext,\n } = setters;\n\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n\n if (!query && props.openOnFocus === false) {\n const collections = store.getState().collections.map((collection) => ({\n ...collection,\n items: [],\n }));\n\n setStatus('idle');\n setCollections(collections);\n setIsOpen(\n nextState.isOpen ?? props.shouldPanelOpen({ state: store.getState() })\n );\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n const request = cancelable(\n runConcurrentSafePromise(collections).then(() => Promise.resolve())\n );\n\n return store.pendingRequests.add(request);\n }\n\n setStatus('loading');\n\n lastStalledId = props.environment.setTimeout(() => {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n const request = cancelable(\n runConcurrentSafePromise(\n props\n .getSources({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n .then((sources) => {\n return Promise.all(\n sources.map((source) => {\n return Promise.resolve(\n source.getItems({\n query,\n refresh,\n state: store.getState(),\n ...setters,\n })\n ).then((itemsOrDescription) =>\n preResolve(\n itemsOrDescription,\n source.sourceId,\n store.getState()\n )\n );\n })\n )\n .then(resolve)\n .then((responses) => {\n const __automaticInsights = responses.some(({ items }) =>\n isSearchResponseWithAutomaticInsightsFlag(items)\n );\n\n // No need to pollute the context if `__automaticInsights=false`\n if (__automaticInsights) {\n setContext({\n algoliaInsightsPlugin: {\n ...((store.getState().context?.algoliaInsightsPlugin ||\n {}) as Record),\n __automaticInsights,\n },\n });\n }\n\n return postResolve(responses, sources, store);\n })\n .then((collections) =>\n reshape({ collections, props, state: store.getState() })\n );\n })\n )\n )\n .then((collections) => {\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n\n setCollections(collections as any);\n\n const isPanelOpen = props.shouldPanelOpen({ state: store.getState() });\n\n setIsOpen(\n nextState.isOpen ??\n ((props.openOnFocus && !query && isPanelOpen) || isPanelOpen)\n );\n\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n })\n .finally(() => {\n setStatus('idle');\n\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n\n return store.pendingRequests.add(request);\n}\n\nfunction isSearchResponseWithAutomaticInsightsFlag(\n items:\n | TItem[]\n | TItem[][]\n | SearchForFacetValuesResponse\n | SearchResponse\n): items is SearchResponse {\n return (\n !Array.isArray(items) &&\n Boolean((items as SearchResponse)?._automaticInsights)\n );\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteCollection,\n AutocompleteReshapeSourcesBySourceId,\n AutocompleteState,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\n\ntype ReshapeParams = {\n collections: Array>;\n props: InternalAutocompleteOptions;\n state: AutocompleteState;\n};\n\nexport function reshape({\n collections,\n props,\n state,\n}: ReshapeParams) {\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n const originalSourcesBySourceId = collections.reduce<\n AutocompleteReshapeSourcesBySourceId\n >(\n (acc, collection) => ({\n ...acc,\n [collection.source.sourceId]: {\n ...collection.source,\n getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n },\n },\n }),\n {}\n );\n\n const { sourcesBySourceId } = props.plugins.reduce(\n (acc, plugin) => {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n },\n {\n sourcesBySourceId: originalSourcesBySourceId,\n state,\n }\n );\n\n const reshapeSources = props.reshape({\n sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state,\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources)\n .filter(Boolean)\n .map((source) => {\n return {\n source,\n items: source.getItems(),\n };\n });\n}\n","import { noop } from '@algolia/autocomplete-shared';\n\nimport { onInput } from './onInput';\nimport { onKeyDown } from './onKeyDown';\nimport {\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n GetEnvironmentProps,\n GetFormProps,\n GetInputProps,\n GetItemProps,\n GetLabelProps,\n GetListProps,\n GetPanelProps,\n GetRootProps,\n InternalAutocompleteOptions,\n} from './types';\nimport {\n getActiveItem,\n getAutocompleteElementId,\n isOrContainsNode,\n isSamsung,\n getNativeEvent,\n} from './utils';\n\ninterface GetPropGettersOptions\n extends AutocompleteScopeApi {\n store: AutocompleteStore;\n props: InternalAutocompleteOptions;\n}\n\nexport function getPropGetters<\n TItem extends BaseItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n>({ props, refresh, store, ...setters }: GetPropGettersOptions) {\n const getEnvironmentProps: GetEnvironmentProps = (providedProps) => {\n const { inputElement, formElement, panelElement, ...rest } = providedProps;\n\n function onMouseDownOrTouchStart(event: MouseEvent | TouchEvent) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n const isAutocompleteInteraction =\n store.getState().isOpen || !store.pendingRequests.isEmpty();\n\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n const isTargetWithinAutocomplete = [formElement, panelElement].some(\n (contextNode) => {\n return isOrContainsNode(contextNode, event.target as Node);\n }\n );\n\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n\n return {\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove(event: TouchEvent) {\n if (\n store.getState().isOpen === false ||\n inputElement !== props.environment.document.activeElement ||\n event.target === inputElement\n ) {\n return;\n }\n\n inputElement.blur();\n },\n ...rest,\n };\n };\n\n const getRootProps: GetRootProps = (rest) => {\n return {\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-controls': store.getState().isOpen\n ? store\n .getState()\n .collections.map(({ source }) =>\n getAutocompleteElementId(props.id, 'list', source)\n )\n .join(' ')\n : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n ...rest,\n };\n };\n\n const getFormProps: GetFormProps = (providedProps) => {\n const { inputElement, ...rest } = providedProps;\n\n return {\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onSubmit({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('submit', null);\n providedProps.inputElement?.blur();\n },\n onReset: (event) => {\n (event as unknown as Event).preventDefault();\n\n props.onReset({\n event,\n refresh,\n state: store.getState(),\n ...setters,\n });\n\n store.dispatch('reset', null);\n providedProps.inputElement?.focus();\n },\n ...rest,\n };\n };\n\n const getInputProps: GetInputProps = (\n providedProps\n ) => {\n function onFocus(event: TEvent) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput({\n event,\n props,\n query: store.getState().completion || store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n store.dispatch('focus', null);\n }\n\n const { inputElement, maxLength = 512, ...rest } = providedProps || {};\n const activeItem = getActiveItem(store.getState());\n\n const userAgent = props.environment.navigator?.userAgent || '';\n const shouldFallbackKeyHint = isSamsung(userAgent);\n const enterKeyHint =\n props.enterKeyHint ||\n (activeItem?.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search');\n\n return {\n 'aria-autocomplete': 'both',\n 'aria-activedescendant':\n store.getState().isOpen && store.getState().activeItemId !== null\n ? getAutocompleteElementId(\n props.id,\n `item-${store.getState().activeItemId}`,\n activeItem?.source\n )\n : undefined,\n 'aria-controls': store.getState().isOpen\n ? store\n .getState()\n .collections.map(({ source }) =>\n getAutocompleteElementId(props.id, 'list', source)\n )\n .join(' ')\n : undefined,\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n value: store.getState().completion || store.getState().query,\n id: getAutocompleteElementId(props.id, 'input'),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength,\n type: 'search',\n onChange: (event) => {\n const value = (\n (event as unknown as Event).currentTarget as HTMLInputElement\n ).value;\n\n if (\n props.ignoreCompositionEvents &&\n getNativeEvent(event as unknown as InputEvent).isComposing\n ) {\n setters.setQuery(value);\n return;\n }\n\n onInput({\n event,\n props,\n query: value.slice(0, maxLength),\n refresh,\n store,\n ...setters,\n });\n },\n onCompositionEnd: (event) => {\n onInput({\n event,\n props,\n query: (\n (event as unknown as Event).currentTarget as HTMLInputElement\n ).value.slice(0, maxLength),\n refresh,\n store,\n ...setters,\n });\n },\n onKeyDown: (event) => {\n if (getNativeEvent(event as unknown as InputEvent).isComposing) {\n return;\n }\n\n onKeyDown({\n event: event as unknown as KeyboardEvent,\n props,\n refresh,\n store,\n ...setters,\n });\n },\n onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: (event) => {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (\n providedProps.inputElement ===\n props.environment.document.activeElement &&\n !store.getState().isOpen\n ) {\n onFocus(event as unknown as TEvent);\n }\n },\n ...rest,\n };\n };\n\n const getLabelProps: GetLabelProps = (rest) => {\n return {\n htmlFor: getAutocompleteElementId(props.id, 'input'),\n id: getAutocompleteElementId(props.id, 'label'),\n ...rest,\n };\n };\n\n const getListProps: GetListProps = (providedProps) => {\n const { source, ...rest } = providedProps || {};\n\n return {\n role: 'listbox',\n 'aria-labelledby': getAutocompleteElementId(props.id, 'label'),\n id: getAutocompleteElementId(props.id, 'list', source),\n ...rest,\n };\n };\n\n const getPanelProps: GetPanelProps = (rest) => {\n return {\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n (event as unknown as MouseEvent).preventDefault();\n },\n onMouseLeave() {\n store.dispatch('mouseleave', null);\n },\n ...rest,\n };\n };\n\n const getItemProps: GetItemProps = (providedProps) => {\n const { item, source, ...rest } = providedProps;\n\n return {\n id: getAutocompleteElementId(\n props.id,\n `item-${item.__autocomplete_id}`,\n source\n ),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n\n store.dispatch('mousemove', item.__autocomplete_id);\n\n const activeItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && activeItem) {\n const { item, itemInputValue, itemUrl, source } = activeItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n },\n onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n (event as unknown as MouseEvent).preventDefault();\n },\n onClick(event) {\n const itemInputValue = source.getItemInputValue({\n item,\n state: store.getState(),\n });\n const itemUrl = source.getItemUrl({\n item,\n state: store.getState(),\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n const runPreCommand = itemUrl\n ? Promise.resolve()\n : onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n });\n\n runPreCommand.then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n },\n ...rest,\n };\n };\n\n return {\n getEnvironmentProps,\n getRootProps,\n getFormProps,\n getLabelProps,\n getInputProps,\n getPanelProps,\n getListProps,\n getItemProps,\n };\n}\n","export function isOrContainsNode(parent: Node, child: Node) {\n return parent === child || parent.contains(child);\n}\n","import { onInput } from './onInput';\nimport {\n ActionType,\n AutocompleteScopeApi,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n} from './types';\nimport { getActiveItem, getAutocompleteElementId } from './utils';\n\ninterface OnKeyDownOptions\n extends AutocompleteScopeApi {\n event: KeyboardEvent;\n props: InternalAutocompleteOptions;\n store: AutocompleteStore;\n}\n\nexport function onKeyDown({\n event,\n props,\n refresh,\n store,\n ...setters\n}: OnKeyDownOptions): void {\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n function triggerScrollIntoView() {\n const highlightedItem = getActiveItem(store.getState());\n\n const nodeItem = props.environment.document.getElementById(\n getAutocompleteElementId(\n props.id,\n `item-${store.getState().activeItemId}`,\n highlightedItem?.source\n )\n );\n\n if (nodeItem) {\n if ((nodeItem as any).scrollIntoViewIfNeeded) {\n (nodeItem as any).scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }\n\n // eslint-disable-next-line no-inner-declarations\n function triggerOnActive() {\n const highlightedItem = getActiveItem(store.getState());\n\n if (store.getState().activeItemId !== null && highlightedItem) {\n const { item, itemInputValue, itemUrl, source } = highlightedItem;\n\n source.onActive({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n }\n }\n\n // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (\n store.getState().isOpen === false &&\n (props.openOnFocus || Boolean(store.getState().query))\n ) {\n onInput({\n event,\n props,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n }).then(() => {\n store.dispatch(event.key as ActionType, {\n nextActiveItemId: props.defaultActiveItemId,\n });\n\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Tab` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (\n store.getState().activeItemId === null ||\n store\n .getState()\n .collections.every((collection) => collection.items.length === 0)\n ) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n\n const { item, itemInputValue, itemUrl, source } = getActiveItem(\n store.getState()\n )!;\n\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewTab({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigateNewWindow({\n itemUrl,\n item,\n state: store.getState(),\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n props.navigator.navigate({\n itemUrl,\n item,\n state: store.getState(),\n });\n\n return;\n }\n\n onInput({\n event,\n nextState: { isOpen: false },\n props,\n query: itemInputValue,\n refresh,\n store,\n ...setters,\n }).then(() => {\n source.onSelect({\n event,\n item,\n itemInputValue,\n itemUrl,\n refresh,\n source,\n state: store.getState(),\n ...setters,\n });\n });\n }\n }\n}\n","import { UserAgent, userAgents } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteEnvironment,\n AutocompleteOptions,\n AutocompleteOptionsWithMetadata,\n AutocompletePlugin,\n BaseItem,\n} from '.';\n\ntype AutocompleteMetadata = {\n plugins: Array<{\n name: string | undefined;\n options: string[];\n }>;\n options: Record;\n ua: UserAgent[];\n};\n\ntype GetMetadataParams = {\n plugins: Array>;\n options: AutocompleteOptionsWithMetadata;\n};\n\nexport function getMetadata({\n plugins,\n options,\n}: GetMetadataParams) {\n const optionsKey = ((options.__autocomplete_metadata\n ?.userAgents as UserAgent[]) || [])[0]?.segment;\n\n const extraOptions = optionsKey\n ? {\n [optionsKey]: Object.keys(\n (options.__autocomplete_metadata\n ?.options as AutocompleteOptions) || {}\n ),\n }\n : {};\n\n return {\n plugins: plugins.map((plugin) => ({\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || []),\n })),\n options: {\n 'autocomplete-core': Object.keys(options),\n ...extraOptions,\n },\n ua: userAgents.concat(\n (options.__autocomplete_metadata?.userAgents as any) || []\n ),\n };\n}\n\ntype InlineMetadataParams = {\n metadata: AutocompleteMetadata;\n environment: AutocompleteEnvironment;\n};\n\nexport function injectMetadata({\n metadata,\n environment,\n}: InlineMetadataParams) {\n const isMetadataEnabled =\n environment.navigator?.userAgent?.includes('Algolia Crawler');\n\n if (isMetadataEnabled) {\n const metadataContainer = environment.document.createElement('meta');\n const headRef = environment.document.querySelector('head');\n\n metadataContainer.name = 'algolia:metadata';\n\n setTimeout(() => {\n metadataContainer.content = JSON.stringify(metadata);\n headRef!.appendChild(metadataContainer);\n }, 0);\n }\n}\n","import { AutocompleteState, BaseItem } from './types';\nimport { getActiveItem } from './utils';\n\ninterface GetCompletionProps {\n state: AutocompleteState;\n}\n\nexport function getCompletion({\n state,\n}: GetCompletionProps): string | null {\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n\n return getActiveItem(state)?.itemInputValue || null;\n}\n","import { getItemsCount, invariant } from '@algolia/autocomplete-shared';\n\nimport { getCompletion } from './getCompletion';\nimport { Reducer } from './types';\nimport { getNextActiveItemId } from './utils';\n\nexport const stateReducer: Reducer = (state, action) => {\n switch (action.type) {\n case 'setActiveItemId': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'setQuery': {\n return {\n ...state,\n query: action.payload,\n completion: null,\n };\n }\n\n case 'setCollections': {\n return {\n ...state,\n collections: action.payload,\n };\n }\n\n case 'setIsOpen': {\n return {\n ...state,\n isOpen: action.payload,\n };\n }\n\n case 'setStatus': {\n return {\n ...state,\n status: action.payload,\n };\n }\n\n case 'setContext': {\n return {\n ...state,\n context: {\n ...state.context,\n ...action.payload,\n },\n };\n }\n\n case 'ArrowDown': {\n const nextState = {\n ...state,\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId')\n ? action.payload.nextActiveItemId\n : getNextActiveItemId(\n 1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'ArrowUp': {\n const nextState = {\n ...state,\n activeItemId: getNextActiveItemId(\n -1,\n state.activeItemId,\n getItemsCount(state),\n action.props.defaultActiveItemId\n ),\n };\n\n return {\n ...nextState,\n completion: getCompletion({ state: nextState }),\n };\n }\n\n case 'Escape': {\n if (state.isOpen) {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n completion: null,\n };\n }\n\n return {\n ...state,\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: [],\n };\n }\n\n case 'submit': {\n return {\n ...state,\n activeItemId: null,\n isOpen: false,\n status: 'idle',\n };\n }\n\n case 'reset': {\n return {\n ...state,\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true\n ? action.props.defaultActiveItemId\n : null,\n status: 'idle',\n completion: null,\n query: '',\n };\n }\n\n case 'focus': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n isOpen:\n (action.props.openOnFocus || Boolean(state.query)) &&\n action.props.shouldPanelOpen({ state }),\n };\n }\n\n case 'blur': {\n if (action.props.debug) {\n return state;\n }\n\n return {\n ...state,\n isOpen: false,\n activeItemId: null,\n };\n }\n\n case 'mousemove': {\n return {\n ...state,\n activeItemId: action.payload,\n };\n }\n\n case 'mouseleave': {\n return {\n ...state,\n activeItemId: action.props.defaultActiveItemId,\n };\n }\n\n default:\n invariant(\n false,\n `The reducer action ${JSON.stringify(action.type)} is not supported.`\n );\n\n return state;\n }\n};\n","import { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\n\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nimport {\n AutocompleteApi,\n AutocompleteOptions as AutocompleteCoreOptions,\n BaseItem,\n AutocompleteSubscribers,\n} from './types';\n\nexport interface AutocompleteOptionsWithMetadata\n extends AutocompleteCoreOptions {\n /**\n * @internal\n */\n __autocomplete_metadata?: Record;\n}\n\nexport function createAutocomplete<\n TItem extends BaseItem,\n TEvent = Event,\n TMouseEvent = MouseEvent,\n TKeyboardEvent = KeyboardEvent\n>(\n options: AutocompleteOptionsWithMetadata\n): AutocompleteApi {\n checkOptions(options);\n\n const subscribers: AutocompleteSubscribers = [];\n const props = getDefaultProps(options, subscribers);\n const store = createStore(stateReducer, props, onStoreStateChange);\n\n const setters = getAutocompleteSetters({ store });\n const propGetters = getPropGetters<\n TItem,\n TEvent,\n TMouseEvent,\n TKeyboardEvent\n >({ props, refresh, store, navigator: props.navigator, ...setters });\n\n function onStoreStateChange({ prevState, state }) {\n props.onStateChange({\n prevState,\n state,\n refresh,\n navigator: props.navigator,\n ...setters,\n });\n\n if (\n !isAlgoliaInsightsPluginEnabled() &&\n state.context?.algoliaInsightsPlugin?.__automaticInsights &&\n props.insights !== false\n ) {\n const plugin = createAlgoliaInsightsPlugin({\n __autocomplete_clickAnalytics: false,\n });\n\n props.plugins.push(plugin);\n\n subscribePlugins([plugin]);\n }\n }\n\n function refresh() {\n return onInput({\n event: new Event('input'),\n nextState: { isOpen: store.getState().isOpen },\n props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh,\n store,\n ...setters,\n });\n }\n\n function subscribePlugins(plugins: typeof props.plugins) {\n plugins.forEach((plugin) =>\n plugin.subscribe?.({\n ...setters,\n navigator: props.navigator,\n refresh,\n onSelect(fn) {\n subscribers.push({ onSelect: fn });\n },\n onActive(fn) {\n subscribers.push({ onActive: fn });\n },\n onResolve(fn) {\n subscribers.push({ onResolve: fn });\n },\n })\n );\n }\n\n function isAlgoliaInsightsPluginEnabled() {\n return props.plugins.some(\n (plugin) => plugin.name === 'aa.algoliaInsightsPlugin'\n );\n }\n\n if (props.insights && !isAlgoliaInsightsPluginEnabled()) {\n const insightsParams =\n typeof props.insights === 'boolean' ? {} : props.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n\n subscribePlugins(props.plugins);\n\n injectMetadata({\n metadata: getMetadata({ plugins: props.plugins, options }),\n environment: props.environment,\n });\n\n return {\n refresh,\n navigator: props.navigator,\n ...propGetters,\n ...setters,\n };\n}\n","import {\n AutocompleteState,\n AutocompleteStore,\n BaseItem,\n InternalAutocompleteOptions,\n Reducer,\n} from './types';\nimport { createCancelablePromiseList } from './utils';\n\ntype OnStoreStateChange = ({\n prevState,\n state,\n}: {\n prevState: AutocompleteState;\n state: AutocompleteState;\n}) => void;\n\nexport function createStore(\n reducer: Reducer,\n props: InternalAutocompleteOptions,\n onStoreStateChange: OnStoreStateChange\n): AutocompleteStore {\n let state = props.initialState;\n\n return {\n getState() {\n return state;\n },\n dispatch(action, payload) {\n const prevState = { ...state };\n state = reducer(state, {\n type: action,\n props,\n payload,\n });\n\n onStoreStateChange({ state, prevState });\n },\n pendingRequests: createCancelablePromiseList(),\n };\n}\n","import { CancelablePromise } from '.';\n\nexport type CancelablePromiseList = {\n /**\n * Add a cancelable promise to the list.\n *\n * @param cancelablePromise The cancelable promise to add.\n */\n add(cancelablePromise: CancelablePromise): CancelablePromise;\n /**\n * Cancel all pending promises.\n *\n * Requests aren't actually stopped. All pending promises will settle, but\n * attached handlers won't run.\n */\n cancelAll(): void;\n /**\n * Whether there are pending promises in the list.\n */\n isEmpty(): boolean;\n};\n\nexport function createCancelablePromiseList<\n TValue\n>(): CancelablePromiseList {\n let list: Array> = [];\n\n return {\n add(cancelablePromise) {\n list.push(cancelablePromise);\n\n return cancelablePromise.finally(() => {\n list = list.filter((item) => item !== cancelablePromise);\n });\n },\n cancelAll() {\n list.forEach((promise) => promise.cancel());\n },\n isEmpty() {\n return list.length === 0;\n },\n };\n}\n","import { flatten } from '@algolia/autocomplete-shared';\n\nimport {\n AutocompleteApi,\n AutocompleteCollection,\n AutocompleteStore,\n BaseItem,\n} from './types';\n\ninterface GetAutocompleteSettersOptions {\n store: AutocompleteStore;\n}\n\nexport function getAutocompleteSetters({\n store,\n}: GetAutocompleteSettersOptions) {\n const setActiveItemId: AutocompleteApi['setActiveItemId'] = (\n value\n ) => {\n store.dispatch('setActiveItemId', value);\n };\n\n const setQuery: AutocompleteApi['setQuery'] = (value) => {\n store.dispatch('setQuery', value);\n };\n\n const setCollections: AutocompleteApi['setCollections'] = (\n rawValue\n ) => {\n let baseItemId = 0;\n const value = rawValue.map>((collection) => ({\n ...collection,\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items as any).map((item: any) => ({\n ...item,\n __autocomplete_id: baseItemId++,\n })),\n }));\n\n store.dispatch('setCollections', value);\n };\n\n const setIsOpen: AutocompleteApi['setIsOpen'] = (value) => {\n store.dispatch('setIsOpen', value);\n };\n\n const setStatus: AutocompleteApi['setStatus'] = (value) => {\n store.dispatch('setStatus', value);\n };\n\n const setContext: AutocompleteApi['setContext'] = (value) => {\n store.dispatch('setContext', value);\n };\n\n return {\n setActiveItemId,\n setQuery,\n setCollections,\n setIsOpen,\n setStatus,\n setContext,\n };\n}\n"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","flatten","values","reduce","a","b","concat","autocompleteId","getItemsCount","state","collections","sum","collection","items","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","userAgents","segment","version","createClickedEvent","_ref","item","_ref$items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_slicedToArray","arr","i","isArray","_arrayWithHoles","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","call","next","done","push","value","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","prototype","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_excluded","_excluded2","_typeof","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_objectWithoutProperties","source","excluded","target","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","arg","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","map","param","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","current","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","_ref8","getAlgoliaSources","context","onSelect","_ref9","onActive","__autocomplete_clickAnalytics","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onActiveEvent","callback","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","loadInsights","partial","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","isAuthenticatedToken","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_context$algoliaInsig","algoliaSourceBase","__automaticInsights","createInternalCancelablePromise","promise","initialState","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getActiveItem","collectionIndex","collectionsCount","nextValue","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","getAutocompleteElementId","autocompleteInstanceId","elementId","sourceId","Boolean","join","replace","regex","getNativeEvent","nativeEvent","getDefaultProps","props","pluginSubscribers","_props$id","plugins","debug","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","seenSourceIds","resolve","maybeSource","includes","Error","JSON","stringify","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigator","navigate","location","assign","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","getState","every","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","pendingRequests","add","_store$getState$conte","some","_automaticInsights","isSearchResponseWithAutomaticInsightsFlag","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","isEmpty","contextNode","parent","child","contains","dispatch","cancelAll","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","action","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","_excluded3","getLabelProps","htmlFor","getInputProps","_props$environment$na","onFocus","_ref3$maxLength","maxLength","_excluded4","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","autoComplete","autoCorrect","autoCapitalize","spellCheck","type","onChange","currentTarget","isComposing","onCompositionEnd","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","_excluded5","getItemProps","_excluded6","__autocomplete_id","onMouseMove","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","stateReducer","hasOwnProperty","subscribers","reducer","onStoreStateChange","list","prevState","cancelablePromise","createStore","_state$context","_state$context$algoli","isAlgoliaInsightsPluginEnabled","subscribePlugins","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","_plugin$subscribe","insightsParams","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-core/package.json b/node_modules/@algolia/autocomplete-core/package.json index 3c3e95f..8f7ce00 100644 --- a/node_modules/@algolia/autocomplete-core/package.json +++ b/node_modules/@algolia/autocomplete-core/package.json @@ -1,7 +1,7 @@ { "name": "@algolia/autocomplete-core", "description": "Core primitives for building autocomplete experiences.", - "version": "1.9.3", + "version": "1.17.7", "license": "MIT", "homepage": "https://github.com/algolia/autocomplete", "repository": "algolia/autocomplete", @@ -31,11 +31,11 @@ "watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\"" }, "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" }, "devDependencies": { - "@algolia/autocomplete-preset-algolia": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.17.7", "@algolia/client-search": "4.16.0", "algoliasearch": "4.16.0" } diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.d.ts b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.d.ts index 1cf53c7..337010b 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.d.ts +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.d.ts @@ -1,5 +1,5 @@ import { AutocompletePlugin } from '@algolia/autocomplete-shared'; -import { InsightsClient, OnActiveParams, OnItemsChangeParams, OnSelectParams } from './types'; +import { InsightsClient, InsightsMethodMap, OnActiveParams, OnItemsChangeParams, OnSelectParams } from './types'; export declare type CreateAlgoliaInsightsPluginParams = { /** * The initialized Search Insights client. @@ -7,6 +7,12 @@ export declare type CreateAlgoliaInsightsPluginParams = { * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient */ insightsClient?: InsightsClient; + /** + * Insights parameters to forward to the Insights client’s init method. + * + * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsinitparams + */ + insightsInitParams?: Partial; /** * Hook to send an Insights event when the items change. * @@ -33,5 +39,9 @@ export declare type CreateAlgoliaInsightsPluginParams = { * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive */ onActive?(params: OnActiveParams): void; + /** + * @internal + */ + __autocomplete_clickAnalytics?: boolean; }; export declare function createAlgoliaInsightsPlugin(options: CreateAlgoliaInsightsPluginParams): AutocompletePlugin; diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js index ddf265b..5ea320d 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js @@ -16,7 +16,7 @@ import { createSearchInsightsApi } from './createSearchInsightsApi'; import { createViewedEvents } from './createViewedEvents'; import { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit'; var VIEW_EVENT_DELAY = 400; -var ALGOLIA_INSIGHTS_VERSION = '2.6.0'; +var ALGOLIA_INSIGHTS_VERSION = '2.15.0'; var ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@".concat(ALGOLIA_INSIGHTS_VERSION, "/dist/search-insights.min.js"); var sendViewedObjectIDs = debounce(function (_ref) { var onItemsChange = _ref.onItemsChange, @@ -38,9 +38,11 @@ var sendViewedObjectIDs = debounce(function (_ref) { export function createAlgoliaInsightsPlugin(options) { var _getOptions = getOptions(options), providedInsightsClient = _getOptions.insightsClient, + insightsInitParams = _getOptions.insightsInitParams, onItemsChange = _getOptions.onItemsChange, onSelectEvent = _getOptions.onSelect, - onActiveEvent = _getOptions.onActive; + onActiveEvent = _getOptions.onActive, + __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics; var insightsClient = providedInsightsClient; if (!providedInsightsClient) { safelyRunOnBrowser(function (_ref2) { @@ -68,6 +70,17 @@ export function createAlgoliaInsightsPlugin(options) { } }); } + + // We return an empty plugin if `insightsClient` is still undefined at + // this stage, which can happen in server environments. + if (!insightsClient) { + return {}; + } + if (insightsInitParams) { + insightsClient('init', _objectSpread({ + partial: true + }, insightsInitParams)); + } var insights = createSearchInsightsApi(insightsClient); var previousItems = createRef([]); var debouncedOnStateChange = debounce(function (_ref3) { @@ -100,19 +113,57 @@ export function createAlgoliaInsightsPlugin(options) { var setContext = _ref4.setContext, onSelect = _ref4.onSelect, onActive = _ref4.onActive; + var isAuthenticatedToken = false; + function setInsightsContext(userToken) { + setContext({ + algoliaInsightsPlugin: { + __algoliaSearchParameters: _objectSpread(_objectSpread({}, __autocomplete_clickAnalytics ? { + clickAnalytics: true + } : {}), userToken ? { + userToken: normalizeUserToken(userToken) + } : {}), + insights: insights + } + }); + } insightsClient('addAlgoliaAgent', 'insights-plugin'); - setContext({ - algoliaInsightsPlugin: { - __algoliaSearchParameters: { - clickAnalytics: true - }, - insights: insights + setInsightsContext(); + + // Handles user token changes + insightsClient('onUserTokenChange', function (userToken) { + if (!isAuthenticatedToken) { + setInsightsContext(userToken); + } + }); + insightsClient('getUserToken', null, function (_error, userToken) { + if (!isAuthenticatedToken) { + setInsightsContext(userToken); + } + }); + + // Handles authenticated user token changes + insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) { + if (authenticatedUserToken) { + isAuthenticatedToken = true; + setInsightsContext(authenticatedUserToken); + } else { + isAuthenticatedToken = false; + insightsClient('getUserToken', null, function (_error, userToken) { + return setInsightsContext(userToken); + }); + } + }); + insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) { + if (authenticatedUserToken) { + isAuthenticatedToken = true; + setInsightsContext(authenticatedUserToken); } }); onSelect(function (_ref5) { var item = _ref5.item, state = _ref5.state, - event = _ref5.event; + event = _ref5.event, + source = _ref5.source; if (!isAlgoliaInsightsHit(item)) { return; } @@ -125,12 +176,13 @@ export function createAlgoliaInsightsPlugin(options) { eventName: 'Item Selected' }, createClickedEvent({ item: item, - items: previousItems.current + items: source.getItems().filter(isAlgoliaInsightsHit) }))] }); }); onActive(function (_ref6) { var item = _ref6.item, + source = _ref6.source, state = _ref6.state, event = _ref6.event; if (!isAlgoliaInsightsHit(item)) { @@ -145,7 +197,7 @@ export function createAlgoliaInsightsPlugin(options) { eventName: 'Item Active' }, createClickedEvent({ item: item, - items: previousItems.current + items: source.getItems().filter(isAlgoliaInsightsHit) }))] }); }); @@ -159,27 +211,36 @@ export function createAlgoliaInsightsPlugin(options) { __autocomplete_pluginOptions: options }; } +function getAlgoliaSources() { + var _context$algoliaInsig; + var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var context = arguments.length > 1 ? arguments[1] : undefined; + return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : [])); +} function getOptions(options) { return _objectSpread({ onItemsChange: function onItemsChange(_ref8) { var insights = _ref8.insights, - insightsEvents = _ref8.insightsEvents; + insightsEvents = _ref8.insightsEvents, + state = _ref8.state; insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) { return _objectSpread(_objectSpread({}, event), {}, { - algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal']) + algoliaSource: getAlgoliaSources(event.algoliaSource, state.context) }); }))); }, onSelect: function onSelect(_ref9) { var insights = _ref9.insights, - insightsEvents = _ref9.insightsEvents; + insightsEvents = _ref9.insightsEvents, + state = _ref9.state; insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) { return _objectSpread(_objectSpread({}, event), {}, { - algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal']) + algoliaSource: getAlgoliaSources(event.algoliaSource, state.context) }); }))); }, - onActive: noop + onActive: noop, + __autocomplete_clickAnalytics: true }, options); } function loadInsights(environment) { @@ -197,4 +258,12 @@ function loadInsights(environment) { // eslint-disable-next-line no-console console.error(errorMessage); } +} + +/** + * While `search-insights` supports both string and number user tokens, + * the Search API only accepts strings. This function normalizes the user token. + */ +function normalizeUserToken(userToken) { + return typeof userToken === 'number' ? userToken.toString() : userToken; } \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js index 8fbb672..c5c89c6 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js @@ -1,6 +1,7 @@ export function createClickedEvent(_ref) { var item = _ref.item, - items = _ref.items; + _ref$items = _ref.items, + items = _ref$items === void 0 ? [] : _ref$items; return { index: item.__autocomplete_indexName, items: [item], diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.d.ts b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.d.ts index a694c46..3342168 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.d.ts +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.d.ts @@ -1,9 +1,16 @@ -import { ClickedFiltersParams, ClickedObjectIDsAfterSearchParams, ClickedObjectIDsParams, ConvertedFiltersParams, ConvertedObjectIDsAfterSearchParams, ConvertedObjectIDsParams, InsightsClient, InsightsParamsWithItems, ViewedFiltersParams, ViewedObjectIDsParams } from './types'; +import { ClickedFiltersParams, ClickedObjectIDsAfterSearchParams, ClickedObjectIDsParams, ConvertedFiltersParams, ConvertedObjectIDsAfterSearchParams, ConvertedObjectIDsParams, InsightsClient, WithArbitraryParams, InsightsParamsWithItems, ViewedFiltersParams, ViewedObjectIDsParams } from './types'; export declare function createSearchInsightsApi(searchInsights: InsightsClient): { /** * Initializes Insights with Algolia credentials. */ init(appId: string, apiKey: string): void; + /** + * Sets the authenticated user token to attach to events. + * Unsets the authenticated token by passing `undefined`. + * + * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/ + */ + setAuthenticatedUserToken(authenticatedUserToken: string | undefined): void; /** * Sets the user token to attach to events. */ @@ -13,47 +20,47 @@ export declare function createSearchInsightsApi(searchInsights: InsightsClient): * * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/ */ - clickedObjectIDsAfterSearch(...params: Array>): void; + clickedObjectIDsAfterSearch(...params: Array>>): void; /** * Sends click events to capture clicked items. * * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/ */ - clickedObjectIDs(...params: Array>): void; + clickedObjectIDs(...params: Array>>): void; /** * Sends click events to capture the filters a user clicks on. * * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/ */ - clickedFilters(...params: ClickedFiltersParams[]): void; + clickedFilters(...params: Array>): void; /** * Sends conversion events to capture a query and its clicked items. * * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/ */ - convertedObjectIDsAfterSearch(...params: Array>): void; + convertedObjectIDsAfterSearch(...params: Array>>): void; /** * Sends conversion events to capture clicked items. * * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/ */ - convertedObjectIDs(...params: Array>): void; + convertedObjectIDs(...params: Array>>): void; /** * Sends conversion events to capture the filters a user uses when converting. * * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/ */ - convertedFilters(...params: ConvertedFiltersParams[]): void; + convertedFilters(...params: Array>): void; /** * Sends view events to capture clicked items. * * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/ */ - viewedObjectIDs(...params: Array>): void; + viewedObjectIDs(...params: Array>>): void; /** * Sends view events to capture the filters a user uses when viewing. * * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/ */ - viewedFilters(...params: ViewedFiltersParams[]): void; + viewedFilters(...params: Array>): void; }; diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js index 8ac781f..8ce9053 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js @@ -65,6 +65,15 @@ export function createSearchInsightsApi(searchInsights) { apiKey: apiKey }); }, + /** + * Sets the authenticated user token to attach to events. + * Unsets the authenticated token by passing `undefined`. + * + * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/ + */ + setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) { + searchInsights('setAuthenticatedUserToken', authenticatedUserToken); + }, /** * Sets the user token to attach to events. */ diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/AutocompleteInsightsApi.d.ts b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/AutocompleteInsightsApi.d.ts index 62ed916..434c524 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/AutocompleteInsightsApi.d.ts +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/AutocompleteInsightsApi.d.ts @@ -1,6 +1,7 @@ import { createSearchInsightsApi } from '../createSearchInsightsApi'; import type { AlgoliaInsightsHit } from './AlgoliaInsightsHit'; export declare type AutocompleteInsightsApi = ReturnType; +export declare type WithArbitraryParams> = Record & TParams; export declare type InsightsParamsWithItems = Omit & { diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/InsightsClient.d.ts b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/InsightsClient.d.ts index 732cbcf..4e10cb8 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/InsightsClient.d.ts +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/types/InsightsClient.d.ts @@ -1,5 +1,6 @@ -import type { InsightsMethodMap, InsightsClient as _InsightsClient } from 'search-insights'; -export type { Init as InsightsInit, AddAlgoliaAgent as InsightsAddAlgoliaAgent, SetUserToken as InsightsSetUserToken, GetUserToken as InsightsGetUserToken, OnUserTokenChange as InsightsOnUserTokenChange, } from 'search-insights'; +import type { InsightsMethodMap as _InsightsMethodMap, InsightsClient as _InsightsClient } from 'search-insights'; +export type { Init as InsightsInit, AddAlgoliaAgent as InsightsAddAlgoliaAgent, SetUserToken as InsightsSetUserToken, GetUserToken as InsightsGetUserToken, OnUserTokenChange as InsightsOnUserTokenChange, InsightsEvent, } from 'search-insights'; +export declare type InsightsMethodMap = _InsightsMethodMap; export declare type InsightsClientMethod = keyof InsightsMethodMap; export declare type InsightsClientPayload = { eventName: string; diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js index ff38be7..3701710 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js @@ -1,4 +1,4 @@ -/*! @algolia/autocomplete-plugin-algolia-insights 1.9.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +/*! @algolia/autocomplete-plugin-algolia-insights 1.17.7 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : @@ -205,7 +205,8 @@ function createClickedEvent(_ref) { var item = _ref.item, - items = _ref.items; + _ref$items = _ref.items, + items = _ref$items === void 0 ? [] : _ref$items; return { index: item.__autocomplete_indexName, items: [item], @@ -287,6 +288,15 @@ apiKey: apiKey }); }, + /** + * Sets the authenticated user token to attach to events. + * Unsets the authenticated token by passing `undefined`. + * + * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/ + */ + setAuthenticatedUserToken: function setAuthenticatedUserToken(authenticatedUserToken) { + searchInsights('setAuthenticatedUserToken', authenticatedUserToken); + }, /** * Sets the user token to attach to events. */ @@ -440,7 +450,7 @@ } var VIEW_EVENT_DELAY = 400; - var ALGOLIA_INSIGHTS_VERSION = '2.6.0'; + var ALGOLIA_INSIGHTS_VERSION = '2.15.0'; var ALGOLIA_INSIGHTS_SRC = "https://cdn.jsdelivr.net/npm/search-insights@".concat(ALGOLIA_INSIGHTS_VERSION, "/dist/search-insights.min.js"); var sendViewedObjectIDs = debounce(function (_ref) { var onItemsChange = _ref.onItemsChange, @@ -462,9 +472,11 @@ function createAlgoliaInsightsPlugin(options) { var _getOptions = getOptions(options), providedInsightsClient = _getOptions.insightsClient, + insightsInitParams = _getOptions.insightsInitParams, onItemsChange = _getOptions.onItemsChange, onSelectEvent = _getOptions.onSelect, - onActiveEvent = _getOptions.onActive; + onActiveEvent = _getOptions.onActive, + __autocomplete_clickAnalytics = _getOptions.__autocomplete_clickAnalytics; var insightsClient = providedInsightsClient; if (!providedInsightsClient) { safelyRunOnBrowser(function (_ref2) { @@ -492,6 +504,17 @@ } }); } + + // We return an empty plugin if `insightsClient` is still undefined at + // this stage, which can happen in server environments. + if (!insightsClient) { + return {}; + } + if (insightsInitParams) { + insightsClient('init', _objectSpread2({ + partial: true + }, insightsInitParams)); + } var insights = createSearchInsightsApi(insightsClient); var previousItems = createRef([]); var debouncedOnStateChange = debounce(function (_ref3) { @@ -524,19 +547,57 @@ var setContext = _ref4.setContext, onSelect = _ref4.onSelect, onActive = _ref4.onActive; + var isAuthenticatedToken = false; + function setInsightsContext(userToken) { + setContext({ + algoliaInsightsPlugin: { + __algoliaSearchParameters: _objectSpread2(_objectSpread2({}, __autocomplete_clickAnalytics ? { + clickAnalytics: true + } : {}), userToken ? { + userToken: normalizeUserToken(userToken) + } : {}), + insights: insights + } + }); + } insightsClient('addAlgoliaAgent', 'insights-plugin'); - setContext({ - algoliaInsightsPlugin: { - __algoliaSearchParameters: { - clickAnalytics: true - }, - insights: insights + setInsightsContext(); + + // Handles user token changes + insightsClient('onUserTokenChange', function (userToken) { + if (!isAuthenticatedToken) { + setInsightsContext(userToken); + } + }); + insightsClient('getUserToken', null, function (_error, userToken) { + if (!isAuthenticatedToken) { + setInsightsContext(userToken); + } + }); + + // Handles authenticated user token changes + insightsClient('onAuthenticatedUserTokenChange', function (authenticatedUserToken) { + if (authenticatedUserToken) { + isAuthenticatedToken = true; + setInsightsContext(authenticatedUserToken); + } else { + isAuthenticatedToken = false; + insightsClient('getUserToken', null, function (_error, userToken) { + return setInsightsContext(userToken); + }); + } + }); + insightsClient('getAuthenticatedUserToken', null, function (_error, authenticatedUserToken) { + if (authenticatedUserToken) { + isAuthenticatedToken = true; + setInsightsContext(authenticatedUserToken); } }); onSelect(function (_ref5) { var item = _ref5.item, state = _ref5.state, - event = _ref5.event; + event = _ref5.event, + source = _ref5.source; if (!isAlgoliaInsightsHit(item)) { return; } @@ -549,12 +610,13 @@ eventName: 'Item Selected' }, createClickedEvent({ item: item, - items: previousItems.current + items: source.getItems().filter(isAlgoliaInsightsHit) }))] }); }); onActive(function (_ref6) { var item = _ref6.item, + source = _ref6.source, state = _ref6.state, event = _ref6.event; if (!isAlgoliaInsightsHit(item)) { @@ -569,7 +631,7 @@ eventName: 'Item Active' }, createClickedEvent({ item: item, - items: previousItems.current + items: source.getItems().filter(isAlgoliaInsightsHit) }))] }); }); @@ -583,27 +645,36 @@ __autocomplete_pluginOptions: options }; } + function getAlgoliaSources() { + var _context$algoliaInsig; + var algoliaSourceBase = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var context = arguments.length > 1 ? arguments[1] : undefined; + return [].concat(_toConsumableArray(algoliaSourceBase), ['autocomplete-internal'], _toConsumableArray((_context$algoliaInsig = context.algoliaInsightsPlugin) !== null && _context$algoliaInsig !== void 0 && _context$algoliaInsig.__automaticInsights ? ['autocomplete-automatic'] : [])); + } function getOptions(options) { return _objectSpread2({ onItemsChange: function onItemsChange(_ref8) { var insights = _ref8.insights, - insightsEvents = _ref8.insightsEvents; + insightsEvents = _ref8.insightsEvents, + state = _ref8.state; insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) { return _objectSpread2(_objectSpread2({}, event), {}, { - algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal']) + algoliaSource: getAlgoliaSources(event.algoliaSource, state.context) }); }))); }, onSelect: function onSelect(_ref9) { var insights = _ref9.insights, - insightsEvents = _ref9.insightsEvents; + insightsEvents = _ref9.insightsEvents, + state = _ref9.state; insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) { return _objectSpread2(_objectSpread2({}, event), {}, { - algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal']) + algoliaSource: getAlgoliaSources(event.algoliaSource, state.context) }); }))); }, - onActive: noop + onActive: noop, + __autocomplete_clickAnalytics: true }, options); } function loadInsights(environment) { @@ -623,6 +694,14 @@ } } + /** + * While `search-insights` supports both string and number user tokens, + * the Search API only accepts strings. This function normalizes the user token. + */ + function normalizeUserToken(userToken) { + return typeof userToken === 'number' ? userToken.toString() : userToken; + } + exports.createAlgoliaInsightsPlugin = createAlgoliaInsightsPlugin; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js.map b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js.map index 66a3a2f..406eb3e 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js.map +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.development.js.map @@ -1 +1 @@ -{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../src/createClickedEvent.ts","../../src/isModernInsightsClient.ts","../../src/createSearchInsightsApi.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","import type {\n AlgoliaInsightsHit,\n ClickedObjectIDsAfterSearchParams,\n InsightsParamsWithItems,\n} from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items,\n}: CreateClickedEventParams): Omit<\n InsightsParamsWithItems,\n 'eventName'\n> & { algoliaSource?: string[] } {\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete'],\n };\n}\n","import type { InsightsClient } from './types';\n\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client: InsightsClient): boolean {\n const [major, minor] = (client.version || '').split('.').map(Number);\n\n /* eslint-disable @typescript-eslint/camelcase */\n const v3 = major >= 3;\n const v2_4 = major === 2 && minor >= 4;\n const v1_10 = major === 1 && minor >= 10;\n\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}\n","import type { InsightsMethodMap } from 'search-insights';\n\nimport { isModernInsightsClient } from './isModernInsightsClient';\nimport {\n AlgoliaInsightsHit,\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n InsightsClientMethod,\n InsightsParamsWithItems,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nfunction chunk(\n item: TItem,\n chunkSize: number = 20\n): TItem[] {\n const chunks: TItem[] = [];\n for (let i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push({\n ...item,\n objectIDs: item.objectIDs.slice(i, i + chunkSize),\n });\n }\n return chunks;\n}\n\nfunction mapToInsightsParamsApi<\n TInsightsParamsType extends {\n items: AlgoliaInsightsHit[];\n objectIDs?: string[];\n }\n>(params: TInsightsParamsType[]) {\n return params.map(({ items, ...param }) => ({\n ...param,\n objectIDs: items?.map(({ objectID }) => objectID) || param.objectIDs,\n }));\n}\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n const canSendHeaders = isModernInsightsClient(searchInsights);\n\n function sendToInsights(\n method: InsightsClientMethod,\n payloads: InsightsMethodMap[TInsightsMethod],\n items?: AlgoliaInsightsHit[]\n ) {\n if (canSendHeaders && typeof items !== 'undefined') {\n const { appId, apiKey } = items[0].__autocomplete_algoliaCredentials;\n const headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey,\n };\n\n searchInsights(method, ...payloads, { headers });\n } else {\n searchInsights(method, ...payloads);\n }\n }\n\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: Array<\n InsightsParamsWithItems\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDsAfterSearch',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(\n ...params: Array>\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDs',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(...params: ClickedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: Array<\n InsightsParamsWithItems\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDsAfterSearch',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(\n ...params: Array>\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDs',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(...params: ConvertedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(\n ...params: Array>\n ) {\n if (params.length > 0) {\n params\n .reduce<\n Array<{\n items?: AlgoliaInsightsHit[];\n payload: ViewedObjectIDsParams;\n }>\n >(\n (acc, { items, ...param }) => [\n ...acc,\n ...chunk({\n ...param,\n objectIDs:\n items?.map(({ objectID }) => objectID) || param.objectIDs,\n }).map((payload) => {\n return { items, payload };\n }),\n ],\n []\n )\n .forEach(({ items, payload }) =>\n sendToInsights('viewedObjectIDs', [payload], items)\n );\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: ViewedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import {\n AlgoliaInsightsHit,\n InsightsParamsWithItems,\n ViewedObjectIDsParams,\n} from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<\n Omit, 'eventName'>\n> {\n const itemsByIndexName = items.reduce>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(itemsByIndexName).map((indexName) => {\n const items = itemsByIndexName[indexName];\n\n return {\n index: indexName,\n items,\n algoliaSource: ['autocomplete'],\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n createRef,\n debounce,\n isEqual,\n noop,\n safelyRunOnBrowser,\n} from '@algolia/autocomplete-shared';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\nconst ALGOLIA_INSIGHTS_VERSION = '2.6.0';\nconst ALGOLIA_INSIGHTS_SRC = `https://cdn.jsdelivr.net/npm/search-insights@${ALGOLIA_INSIGHTS_VERSION}/dist/search-insights.min.js`;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState;\n};\n\nconst sendViewedObjectIDs = debounce(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient?: InsightsClient;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin {\n const {\n insightsClient: providedInsightsClient,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n } = getOptions(options);\n let insightsClient = providedInsightsClient as InsightsClient;\n\n if (!providedInsightsClient) {\n safelyRunOnBrowser(({ window }) => {\n const pointer = window.AlgoliaAnalyticsObject || 'aa';\n\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n\n if (!window[pointer]) {\n window[pointer] = (...args: any[]) => {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n\n window[pointer].queue.push(args);\n };\n }\n\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n\n insightsClient = window[pointer];\n\n loadInsights(window);\n }\n });\n }\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true,\n },\n insights,\n },\n });\n\n onSelect(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n\n onActive(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents }: OnItemsChangeParams) {\n insights.viewedObjectIDs(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: [\n ...(event.algoliaSource || []),\n 'autocomplete-internal',\n ],\n }))\n );\n },\n onSelect({ insights, insightsEvents }: OnSelectParams) {\n insights.clickedObjectIDsAfterSearch(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: [\n ...(event.algoliaSource || []),\n 'autocomplete-internal',\n ],\n }))\n );\n },\n onActive: noop,\n ...options,\n };\n}\n\nfunction loadInsights(environment: typeof window) {\n const errorMessage = `[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete`;\n\n try {\n const script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n\n script.onerror = () => {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","safelyRunOnBrowser","callback","window","createClickedEvent","_ref","item","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","isModernInsightsClient","client","_split$map","version","split","map","Number","_split$map2","_slicedToArray","major","minor","v3","v2_4","v1_10","chunk","chunkSize","chunks","i","objectIDs","push","_objectSpread","slice","mapToInsightsParamsApi","params","param","_objectWithoutProperties","_excluded","_ref2","createSearchInsightsApi","searchInsights","canSendHeaders","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","appId","apiKey","headers","concat","_toConsumableArray","init","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","_excluded2","_ref4","payload","forEach","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onSelect","onActiveEvent","onActive","pointer","AlgoliaAnalyticsObject","queue","loadInsights","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","_ref8","_ref9","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../src/createClickedEvent.ts","../../src/isModernInsightsClient.ts","../../src/createSearchInsightsApi.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","import type {\n AlgoliaInsightsHit,\n ClickedObjectIDsAfterSearchParams,\n InsightsParamsWithItems,\n} from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items = [],\n}: CreateClickedEventParams): Omit<\n InsightsParamsWithItems,\n 'eventName'\n> & { algoliaSource?: string[] } {\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete'],\n };\n}\n","import type { InsightsClient } from './types';\n\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client: InsightsClient): boolean {\n const [major, minor] = (client.version || '').split('.').map(Number);\n\n /* eslint-disable @typescript-eslint/camelcase */\n const v3 = major >= 3;\n const v2_4 = major === 2 && minor >= 4;\n const v1_10 = major === 1 && minor >= 10;\n\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}\n","import type { InsightsMethodMap } from 'search-insights';\n\nimport { isModernInsightsClient } from './isModernInsightsClient';\nimport {\n AlgoliaInsightsHit,\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n InsightsClientMethod,\n WithArbitraryParams,\n InsightsParamsWithItems,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nfunction chunk(\n item: TItem,\n chunkSize: number = 20\n): TItem[] {\n const chunks: TItem[] = [];\n for (let i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push({\n ...item,\n objectIDs: item.objectIDs.slice(i, i + chunkSize),\n });\n }\n return chunks;\n}\n\nfunction mapToInsightsParamsApi<\n TInsightsParamsType extends {\n items: AlgoliaInsightsHit[];\n objectIDs?: string[];\n }\n>(params: TInsightsParamsType[]) {\n return params.map(({ items, ...param }) => ({\n ...param,\n objectIDs: items?.map(({ objectID }) => objectID) || param.objectIDs,\n }));\n}\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n const canSendHeaders = isModernInsightsClient(searchInsights);\n\n function sendToInsights(\n method: InsightsClientMethod,\n payloads: InsightsMethodMap[TInsightsMethod],\n items?: AlgoliaInsightsHit[]\n ) {\n if (canSendHeaders && typeof items !== 'undefined') {\n const { appId, apiKey } = items[0].__autocomplete_algoliaCredentials;\n const headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey,\n };\n\n searchInsights(method, ...payloads, { headers });\n } else {\n searchInsights(method, ...payloads);\n }\n }\n\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken(authenticatedUserToken: string | undefined) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: Array<\n WithArbitraryParams<\n InsightsParamsWithItems\n >\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDsAfterSearch',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDs',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(\n ...params: Array>\n ) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: Array<\n WithArbitraryParams<\n InsightsParamsWithItems\n >\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDsAfterSearch',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDs',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(\n ...params: Array>\n ) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n params\n .reduce<\n Array<{\n items?: AlgoliaInsightsHit[];\n payload: ViewedObjectIDsParams;\n }>\n >(\n (acc, { items, ...param }) => [\n ...acc,\n ...chunk({\n ...param,\n objectIDs:\n items?.map(({ objectID }) => objectID) || param.objectIDs,\n }).map((payload) => {\n return { items, payload };\n }),\n ],\n []\n )\n .forEach(({ items, payload }) =>\n sendToInsights('viewedObjectIDs', [payload], items)\n );\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: Array>) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import {\n AlgoliaInsightsHit,\n InsightsParamsWithItems,\n ViewedObjectIDsParams,\n} from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<\n Omit, 'eventName'>\n> {\n const itemsByIndexName = items.reduce>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(itemsByIndexName).map((indexName) => {\n const items = itemsByIndexName[indexName];\n\n return {\n index: indexName,\n items,\n algoliaSource: ['autocomplete'],\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n createRef,\n debounce,\n isEqual,\n noop,\n safelyRunOnBrowser,\n} from '@algolia/autocomplete-shared';\nimport {\n AutocompleteContext,\n AutocompleteReshapeSource,\n} from '@algolia/autocomplete-shared/dist/esm/core';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n InsightsEvent,\n InsightsMethodMap,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\nconst ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nconst ALGOLIA_INSIGHTS_SRC = `https://cdn.jsdelivr.net/npm/search-insights@${ALGOLIA_INSIGHTS_VERSION}/dist/search-insights.min.js`;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState;\n};\n\nconst sendViewedObjectIDs = debounce(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient?: InsightsClient;\n /**\n * Insights parameters to forward to the Insights client’s init method.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsinitparams\n */\n insightsInitParams?: Partial;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n /**\n * @internal\n */\n __autocomplete_clickAnalytics?: boolean;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin {\n const {\n insightsClient: providedInsightsClient,\n insightsInitParams,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n __autocomplete_clickAnalytics,\n } = getOptions(options);\n let insightsClient = providedInsightsClient as InsightsClient;\n\n if (!providedInsightsClient) {\n safelyRunOnBrowser(({ window }) => {\n const pointer = window.AlgoliaAnalyticsObject || 'aa';\n\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n\n if (!window[pointer]) {\n window[pointer] = (...args: any[]) => {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n\n window[pointer].queue.push(args);\n };\n }\n\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n\n insightsClient = window[pointer];\n\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n\n if (insightsInitParams) {\n insightsClient('init', { partial: true, ...insightsInitParams });\n }\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n let isAuthenticatedToken = false;\n function setInsightsContext(userToken?: InsightsEvent['userToken']) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n ...(__autocomplete_clickAnalytics\n ? { clickAnalytics: true }\n : {}),\n ...(userToken\n ? { userToken: normalizeUserToken(userToken) }\n : {}),\n },\n insights,\n },\n });\n }\n\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', (userToken) => {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n insightsClient('getUserToken', null, (_error, userToken) => {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n\n // Handles authenticated user token changes\n insightsClient(\n 'onAuthenticatedUserTokenChange',\n (authenticatedUserToken) => {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n } else {\n isAuthenticatedToken = false;\n insightsClient('getUserToken', null, (_error, userToken) =>\n setInsightsContext(userToken)\n );\n }\n }\n );\n insightsClient(\n 'getAuthenticatedUserToken',\n null,\n (_error, authenticatedUserToken) => {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n }\n }\n );\n\n onSelect(({ item, state, event, source }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({\n item,\n items: (source as AutocompleteReshapeSource)\n .getItems()\n .filter(isAlgoliaInsightsHit),\n }),\n },\n ],\n });\n });\n\n onActive(({ item, source, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({\n item,\n items: (source as AutocompleteReshapeSource)\n .getItems()\n .filter(isAlgoliaInsightsHit),\n }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getAlgoliaSources(\n algoliaSourceBase: string[] = [],\n context: AutocompleteContext\n) {\n return [\n ...algoliaSourceBase,\n 'autocomplete-internal',\n ...((context.algoliaInsightsPlugin as Record)\n ?.__automaticInsights\n ? ['autocomplete-automatic']\n : []),\n ];\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents, state }: OnItemsChangeParams) {\n insights.viewedObjectIDs(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context),\n }))\n );\n },\n onSelect({ insights, insightsEvents, state }: OnSelectParams) {\n insights.clickedObjectIDsAfterSearch(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context),\n }))\n );\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true,\n ...options,\n };\n}\n\nfunction loadInsights(environment: typeof window) {\n const errorMessage = `[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete`;\n\n try {\n const script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n\n script.onerror = () => {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(\n userToken: NonNullable\n): string {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","safelyRunOnBrowser","callback","window","createClickedEvent","_ref","item","_ref$items","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","isModernInsightsClient","client","_split$map","version","split","map","Number","_split$map2","_slicedToArray","major","minor","v3","v2_4","v1_10","chunk","chunkSize","chunks","i","objectIDs","push","_objectSpread","slice","mapToInsightsParamsApi","params","param","_objectWithoutProperties","_excluded","_ref2","createSearchInsightsApi","searchInsights","canSendHeaders","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","appId","apiKey","headers","concat","_toConsumableArray","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","_excluded2","_ref4","payload","forEach","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onSelect","onActiveEvent","onActive","__autocomplete_clickAnalytics","pointer","AlgoliaAnalyticsObject","queue","loadInsights","partial","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","isAuthenticatedToken","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","source","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","getAlgoliaSources","_context$algoliaInsig","algoliaSourceBase","context","__automaticInsights","_ref8","_ref9","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","toString"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js index 01107d3..7b8bbb4 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js @@ -1,3 +1,3 @@ -/*! @algolia/autocomplete-plugin-algolia-insights 1.9.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-plugin-algolia-insights"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,c,a=[],u=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);u=!0);}catch(e){l=!0,i=e}finally{try{if(!u&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(l)throw i}}return a}}(e,t)||a(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:20,r=[],i=0;i=3||2===r&&a>=4||1===r&&a>=10);function l(t,n,r){if(u&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,o={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(c(n),[{headers:o}]))}else e.apply(void 0,[t].concat(c(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("clickedObjectIDsAfterSearch",y(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("clickedObjectIDs",y(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("convertedObjectIDsAfterSearch",y(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("convertedObjectIDs",y(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,o=i(t,g);return[].concat(c(e),c(d(n(n({},o),{},{objectIDs:(null==r?void 0:r.map((function(e){return e.objectID})))||o.objectIDs})).map((function(e){return{items:r,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return l("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function b(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}var O="2.6.0",I="https://cdn.jsdelivr.net/npm/search-insights@".concat(O,"/dist/search-insights.min.js"),w=l((function(e){var t=e.onItemsChange,r=e.items,i=e.insights,o=e.state;t({insights:i,insightsEvents:b({items:r}).map((function(e){return n({eventName:"Items Viewed"},e)})),state:o})}),400);e.createAlgoliaInsightsPlugin=function(e){var t=function(e){return n({onItemsChange:function(e){var t=e.insights,r=e.insightsEvents;t.viewedObjectIDs.apply(t,c(r.map((function(e){return n(n({},e),{},{algoliaSource:[].concat(c(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onSelect:function(e){var t=e.insights,r=e.insightsEvents;t.clickedObjectIDsAfterSearch.apply(t,c(r.map((function(e){return n(n({},e),{},{algoliaSource:[].concat(c(e.algoliaSource||[]),["autocomplete-internal"])})}))))},onActive:p},e)}(e),r=t.insightsClient,i=t.onItemsChange,o=t.onSelect,a=t.onActive,u=r;r||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(u=t[n]),u||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),i=0;i0&&w({onItemsChange:i,items:n,insights:s,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,i=e.onActive;u("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:s}}),r((function(e){var t=e.item,r=e.state,i=e.event;j(t)&&o({state:r,event:i,insights:s,item:t,insightsEvents:[n({eventName:"Item Selected"},m({item:t,items:v.current}))]})})),i((function(e){var t=e.item,r=e.state,i=e.event;j(t)&&a({state:r,event:i,insights:s,item:t,insightsEvents:[n({eventName:"Item Active"},m({item:t,items:v.current}))]})}))},onStateChange:function(e){var t=e.state;g({state:t})},__autocomplete_pluginOptions:e}},Object.defineProperty(e,"__esModule",{value:!0})})); +/*! @algolia/autocomplete-plugin-algolia-insights 1.17.7 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-plugin-algolia-insights"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,o,c,a=[],u=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(a.push(r.value),a.length!==t);u=!0);}catch(e){l=!0,i=e}finally{try{if(!u&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(l)throw i}}return a}}(e,t)||a(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:20,r=[],i=0;i=3||2===r&&a>=4||1===r&&a>=10);function l(t,n,r){if(u&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,o={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(c(n),[{headers:o}]))}else e.apply(void 0,[t].concat(c(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("clickedObjectIDsAfterSearch",h(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("clickedObjectIDs",h(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("convertedObjectIDsAfterSearch",h(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&l("convertedObjectIDs",h(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,o=i(t,v);return[].concat(c(e),c(d(n(n({},o),{},{objectIDs:(null==r?void 0:r.map((function(e){return e.objectID})))||o.objectIDs})).map((function(e){return{items:r,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return l("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function b(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}var I="2.15.0",O="https://cdn.jsdelivr.net/npm/search-insights@".concat(I,"/dist/search-insights.min.js"),A=l((function(e){var t=e.onItemsChange,r=e.items,i=e.insights,o=e.state;t({insights:i,insightsEvents:b({items:r}).map((function(e){return n({eventName:"Items Viewed"},e)})),state:o})}),400);function w(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;return[].concat(c(t),["autocomplete-internal"],c(null!==(e=n.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function _(e){return"number"==typeof e?e.toString():e}e.createAlgoliaInsightsPlugin=function(e){var t=function(e){return n({onItemsChange:function(e){var t=e.insights,r=e.insightsEvents,i=e.state;t.viewedObjectIDs.apply(t,c(r.map((function(e){return n(n({},e),{},{algoliaSource:w(e.algoliaSource,i.context)})}))))},onSelect:function(e){var t=e.insights,r=e.insightsEvents,i=e.state;t.clickedObjectIDsAfterSearch.apply(t,c(r.map((function(e){return n(n({},e),{},{algoliaSource:w(e.algoliaSource,i.context)})}))))},onActive:p,__autocomplete_clickAnalytics:!0},e)}(e),r=t.insightsClient,i=t.insightsInitParams,o=t.onItemsChange,a=t.onSelect,u=t.onActive,s=t.__autocomplete_clickAnalytics,m=r;if(r||function(e){if("undefined"!=typeof window)e({window:window})}((function(e){var t=e.window,n=t.AlgoliaAnalyticsObject||"aa";"string"==typeof n&&(m=t[n]),m||(t.AlgoliaAnalyticsObject=n,t[n]||(t[n]=function(){t[n].queue||(t[n].queue=[]);for(var e=arguments.length,r=new Array(e),i=0;i0&&A({onItemsChange:o,items:n,insights:v,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,i=e.onActive,o=!1;function c(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:n(n({},s?{clickAnalytics:!0}:{}),e?{userToken:_(e)}:{}),insights:v}})}m("addAlgoliaAgent","insights-plugin"),c(),m("onUserTokenChange",(function(e){o||c(e)})),m("getUserToken",null,(function(e,t){o||c(t)})),m("onAuthenticatedUserTokenChange",(function(e){e?(o=!0,c(e)):(o=!1,m("getUserToken",null,(function(e,t){return c(t)})))})),m("getAuthenticatedUserToken",null,(function(e,t){t&&(o=!0,c(t))})),r((function(e){var t=e.item,r=e.state,i=e.event,o=e.source;j(t)&&a({state:r,event:i,insights:v,item:t,insightsEvents:[n({eventName:"Item Selected"},g({item:t,items:o.getItems().filter(j)}))]})})),i((function(e){var t=e.item,r=e.source,i=e.state,o=e.event;j(t)&&u({state:i,event:o,insights:v,item:t,insightsEvents:[n({eventName:"Item Active"},g({item:t,items:r.getItems().filter(j)}))]})}))},onStateChange:function(e){var t=e.state;h({state:t})},__autocomplete_pluginOptions:e}},Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=index.production.js.map diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js.map b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js.map index 9c96ffe..e409885 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js.map +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/umd/index.production.js.map @@ -1 +1 @@ -{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../src/createClickedEvent.ts","../../src/createSearchInsightsApi.ts","../../src/isModernInsightsClient.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-shared/dist/esm/createRef.js"],"sourcesContent":["export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","import type {\n AlgoliaInsightsHit,\n ClickedObjectIDsAfterSearchParams,\n InsightsParamsWithItems,\n} from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items,\n}: CreateClickedEventParams): Omit<\n InsightsParamsWithItems,\n 'eventName'\n> & { algoliaSource?: string[] } {\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete'],\n };\n}\n","import type { InsightsMethodMap } from 'search-insights';\n\nimport { isModernInsightsClient } from './isModernInsightsClient';\nimport {\n AlgoliaInsightsHit,\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n InsightsClientMethod,\n InsightsParamsWithItems,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nfunction chunk(\n item: TItem,\n chunkSize: number = 20\n): TItem[] {\n const chunks: TItem[] = [];\n for (let i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push({\n ...item,\n objectIDs: item.objectIDs.slice(i, i + chunkSize),\n });\n }\n return chunks;\n}\n\nfunction mapToInsightsParamsApi<\n TInsightsParamsType extends {\n items: AlgoliaInsightsHit[];\n objectIDs?: string[];\n }\n>(params: TInsightsParamsType[]) {\n return params.map(({ items, ...param }) => ({\n ...param,\n objectIDs: items?.map(({ objectID }) => objectID) || param.objectIDs,\n }));\n}\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n const canSendHeaders = isModernInsightsClient(searchInsights);\n\n function sendToInsights(\n method: InsightsClientMethod,\n payloads: InsightsMethodMap[TInsightsMethod],\n items?: AlgoliaInsightsHit[]\n ) {\n if (canSendHeaders && typeof items !== 'undefined') {\n const { appId, apiKey } = items[0].__autocomplete_algoliaCredentials;\n const headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey,\n };\n\n searchInsights(method, ...payloads, { headers });\n } else {\n searchInsights(method, ...payloads);\n }\n }\n\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: Array<\n InsightsParamsWithItems\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDsAfterSearch',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(\n ...params: Array>\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDs',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(...params: ClickedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: Array<\n InsightsParamsWithItems\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDsAfterSearch',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(\n ...params: Array>\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDs',\n mapToInsightsParamsApi(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(...params: ConvertedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(\n ...params: Array>\n ) {\n if (params.length > 0) {\n params\n .reduce<\n Array<{\n items?: AlgoliaInsightsHit[];\n payload: ViewedObjectIDsParams;\n }>\n >(\n (acc, { items, ...param }) => [\n ...acc,\n ...chunk({\n ...param,\n objectIDs:\n items?.map(({ objectID }) => objectID) || param.objectIDs,\n }).map((payload) => {\n return { items, payload };\n }),\n ],\n []\n )\n .forEach(({ items, payload }) =>\n sendToInsights('viewedObjectIDs', [payload], items)\n );\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: ViewedFiltersParams[]) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import type { InsightsClient } from './types';\n\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client: InsightsClient): boolean {\n const [major, minor] = (client.version || '').split('.').map(Number);\n\n /* eslint-disable @typescript-eslint/camelcase */\n const v3 = major >= 3;\n const v2_4 = major === 2 && minor >= 4;\n const v1_10 = major === 1 && minor >= 10;\n\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}\n","import {\n AlgoliaInsightsHit,\n InsightsParamsWithItems,\n ViewedObjectIDsParams,\n} from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<\n Omit, 'eventName'>\n> {\n const itemsByIndexName = items.reduce>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(itemsByIndexName).map((indexName) => {\n const items = itemsByIndexName[indexName];\n\n return {\n index: indexName,\n items,\n algoliaSource: ['autocomplete'],\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n createRef,\n debounce,\n isEqual,\n noop,\n safelyRunOnBrowser,\n} from '@algolia/autocomplete-shared';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\nconst ALGOLIA_INSIGHTS_VERSION = '2.6.0';\nconst ALGOLIA_INSIGHTS_SRC = `https://cdn.jsdelivr.net/npm/search-insights@${ALGOLIA_INSIGHTS_VERSION}/dist/search-insights.min.js`;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState;\n};\n\nconst sendViewedObjectIDs = debounce(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient?: InsightsClient;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin {\n const {\n insightsClient: providedInsightsClient,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n } = getOptions(options);\n let insightsClient = providedInsightsClient as InsightsClient;\n\n if (!providedInsightsClient) {\n safelyRunOnBrowser(({ window }) => {\n const pointer = window.AlgoliaAnalyticsObject || 'aa';\n\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n\n if (!window[pointer]) {\n window[pointer] = (...args: any[]) => {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n\n window[pointer].queue.push(args);\n };\n }\n\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n\n insightsClient = window[pointer];\n\n loadInsights(window);\n }\n });\n }\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true,\n },\n insights,\n },\n });\n\n onSelect(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n\n onActive(({ item, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({ item, items: previousItems.current }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents }: OnItemsChangeParams) {\n insights.viewedObjectIDs(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: [\n ...(event.algoliaSource || []),\n 'autocomplete-internal',\n ],\n }))\n );\n },\n onSelect({ insights, insightsEvents }: OnSelectParams) {\n insights.clickedObjectIDsAfterSearch(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: [\n ...(event.algoliaSource || []),\n 'autocomplete-internal',\n ],\n }))\n );\n },\n onActive: noop,\n ...options,\n };\n}\n\nfunction loadInsights(environment: typeof window) {\n const errorMessage = `[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete`;\n\n try {\n const script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n\n script.onerror = () => {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","createClickedEvent","_ref","item","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","chunk","chunkSize","chunks","i","objectIDs","push","_objectSpread","slice","mapToInsightsParamsApi","params","map","param","_objectWithoutProperties","_excluded","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","_slicedToArray","version","split","Number","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","concat","_toConsumableArray","init","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","_excluded2","_ref4","payload","forEach","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","current","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","options","_getOptions","_ref8","onSelect","_ref9","onActive","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onActiveEvent","callback","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","loadInsights","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../src/createClickedEvent.ts","../../src/createSearchInsightsApi.ts","../../src/isModernInsightsClient.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../autocomplete-shared/dist/esm/createRef.js"],"sourcesContent":["export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","import type {\n AlgoliaInsightsHit,\n ClickedObjectIDsAfterSearchParams,\n InsightsParamsWithItems,\n} from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items = [],\n}: CreateClickedEventParams): Omit<\n InsightsParamsWithItems,\n 'eventName'\n> & { algoliaSource?: string[] } {\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete'],\n };\n}\n","import type { InsightsMethodMap } from 'search-insights';\n\nimport { isModernInsightsClient } from './isModernInsightsClient';\nimport {\n AlgoliaInsightsHit,\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n InsightsClientMethod,\n WithArbitraryParams,\n InsightsParamsWithItems,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nfunction chunk(\n item: TItem,\n chunkSize: number = 20\n): TItem[] {\n const chunks: TItem[] = [];\n for (let i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push({\n ...item,\n objectIDs: item.objectIDs.slice(i, i + chunkSize),\n });\n }\n return chunks;\n}\n\nfunction mapToInsightsParamsApi<\n TInsightsParamsType extends {\n items: AlgoliaInsightsHit[];\n objectIDs?: string[];\n }\n>(params: TInsightsParamsType[]) {\n return params.map(({ items, ...param }) => ({\n ...param,\n objectIDs: items?.map(({ objectID }) => objectID) || param.objectIDs,\n }));\n}\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n const canSendHeaders = isModernInsightsClient(searchInsights);\n\n function sendToInsights(\n method: InsightsClientMethod,\n payloads: InsightsMethodMap[TInsightsMethod],\n items?: AlgoliaInsightsHit[]\n ) {\n if (canSendHeaders && typeof items !== 'undefined') {\n const { appId, apiKey } = items[0].__autocomplete_algoliaCredentials;\n const headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey,\n };\n\n searchInsights(method, ...payloads, { headers });\n } else {\n searchInsights(method, ...payloads);\n }\n }\n\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken(authenticatedUserToken: string | undefined) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: Array<\n WithArbitraryParams<\n InsightsParamsWithItems\n >\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDsAfterSearch',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDs',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(\n ...params: Array>\n ) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: Array<\n WithArbitraryParams<\n InsightsParamsWithItems\n >\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDsAfterSearch',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDs',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(\n ...params: Array>\n ) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n params\n .reduce<\n Array<{\n items?: AlgoliaInsightsHit[];\n payload: ViewedObjectIDsParams;\n }>\n >(\n (acc, { items, ...param }) => [\n ...acc,\n ...chunk({\n ...param,\n objectIDs:\n items?.map(({ objectID }) => objectID) || param.objectIDs,\n }).map((payload) => {\n return { items, payload };\n }),\n ],\n []\n )\n .forEach(({ items, payload }) =>\n sendToInsights('viewedObjectIDs', [payload], items)\n );\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: Array>) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import type { InsightsClient } from './types';\n\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client: InsightsClient): boolean {\n const [major, minor] = (client.version || '').split('.').map(Number);\n\n /* eslint-disable @typescript-eslint/camelcase */\n const v3 = major >= 3;\n const v2_4 = major === 2 && minor >= 4;\n const v1_10 = major === 1 && minor >= 10;\n\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}\n","import {\n AlgoliaInsightsHit,\n InsightsParamsWithItems,\n ViewedObjectIDsParams,\n} from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<\n Omit, 'eventName'>\n> {\n const itemsByIndexName = items.reduce>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(itemsByIndexName).map((indexName) => {\n const items = itemsByIndexName[indexName];\n\n return {\n index: indexName,\n items,\n algoliaSource: ['autocomplete'],\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n createRef,\n debounce,\n isEqual,\n noop,\n safelyRunOnBrowser,\n} from '@algolia/autocomplete-shared';\nimport {\n AutocompleteContext,\n AutocompleteReshapeSource,\n} from '@algolia/autocomplete-shared/dist/esm/core';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n InsightsEvent,\n InsightsMethodMap,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\nconst ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nconst ALGOLIA_INSIGHTS_SRC = `https://cdn.jsdelivr.net/npm/search-insights@${ALGOLIA_INSIGHTS_VERSION}/dist/search-insights.min.js`;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState;\n};\n\nconst sendViewedObjectIDs = debounce(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient?: InsightsClient;\n /**\n * Insights parameters to forward to the Insights client’s init method.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsinitparams\n */\n insightsInitParams?: Partial;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n /**\n * @internal\n */\n __autocomplete_clickAnalytics?: boolean;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin {\n const {\n insightsClient: providedInsightsClient,\n insightsInitParams,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n __autocomplete_clickAnalytics,\n } = getOptions(options);\n let insightsClient = providedInsightsClient as InsightsClient;\n\n if (!providedInsightsClient) {\n safelyRunOnBrowser(({ window }) => {\n const pointer = window.AlgoliaAnalyticsObject || 'aa';\n\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n\n if (!window[pointer]) {\n window[pointer] = (...args: any[]) => {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n\n window[pointer].queue.push(args);\n };\n }\n\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n\n insightsClient = window[pointer];\n\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n\n if (insightsInitParams) {\n insightsClient('init', { partial: true, ...insightsInitParams });\n }\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n let isAuthenticatedToken = false;\n function setInsightsContext(userToken?: InsightsEvent['userToken']) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n ...(__autocomplete_clickAnalytics\n ? { clickAnalytics: true }\n : {}),\n ...(userToken\n ? { userToken: normalizeUserToken(userToken) }\n : {}),\n },\n insights,\n },\n });\n }\n\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', (userToken) => {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n insightsClient('getUserToken', null, (_error, userToken) => {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n\n // Handles authenticated user token changes\n insightsClient(\n 'onAuthenticatedUserTokenChange',\n (authenticatedUserToken) => {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n } else {\n isAuthenticatedToken = false;\n insightsClient('getUserToken', null, (_error, userToken) =>\n setInsightsContext(userToken)\n );\n }\n }\n );\n insightsClient(\n 'getAuthenticatedUserToken',\n null,\n (_error, authenticatedUserToken) => {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n }\n }\n );\n\n onSelect(({ item, state, event, source }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({\n item,\n items: (source as AutocompleteReshapeSource)\n .getItems()\n .filter(isAlgoliaInsightsHit),\n }),\n },\n ],\n });\n });\n\n onActive(({ item, source, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({\n item,\n items: (source as AutocompleteReshapeSource)\n .getItems()\n .filter(isAlgoliaInsightsHit),\n }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getAlgoliaSources(\n algoliaSourceBase: string[] = [],\n context: AutocompleteContext\n) {\n return [\n ...algoliaSourceBase,\n 'autocomplete-internal',\n ...((context.algoliaInsightsPlugin as Record)\n ?.__automaticInsights\n ? ['autocomplete-automatic']\n : []),\n ];\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents, state }: OnItemsChangeParams) {\n insights.viewedObjectIDs(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context),\n }))\n );\n },\n onSelect({ insights, insightsEvents, state }: OnSelectParams) {\n insights.clickedObjectIDsAfterSearch(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context),\n }))\n );\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true,\n ...options,\n };\n}\n\nfunction loadInsights(environment: typeof window) {\n const errorMessage = `[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete`;\n\n try {\n const script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n\n script.onerror = () => {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(\n userToken: NonNullable\n): string {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}\n","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}"],"names":["debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","createClickedEvent","_ref","item","_ref$items","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","chunk","chunkSize","chunks","i","objectIDs","push","_objectSpread","slice","mapToInsightsParamsApi","params","map","param","_objectWithoutProperties","_excluded","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","_slicedToArray","version","split","Number","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","concat","_toConsumableArray","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","_excluded2","_ref4","payload","forEach","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","current","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","getAlgoliaSources","_context$algoliaInsig","algoliaSourceBase","context","algoliaInsightsPlugin","__automaticInsights","normalizeUserToken","toString","options","_getOptions","_ref8","onSelect","_ref9","onActive","__autocomplete_clickAnalytics","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onActiveEvent","callback","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","loadInsights","partial","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","isAuthenticatedToken","setInsightsContext","__algoliaSearchParameters","clickAnalytics","_error","source","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions"],"mappings":";mhGAAO,SAASA,EAASC,EAAIC,GAC3B,IAAIC,OAAUC,EACd,OAAO,WACL,IAAK,IAAIC,EAAOC,UAAUC,OAAQC,EAAO,IAAIC,MAAMJ,GAAOK,EAAO,EAAGA,EAAOL,EAAMK,IAC/EF,EAAKE,GAAQJ,UAAUI,GAErBP,GACFQ,aAAaR,GAEfA,EAAUS,YAAW,WACnB,OAAOX,EAAGY,WAAM,EAAQL,KACvBN,ICXP,SAASY,EAAYC,GACnB,OAAOA,IAAQC,OAAOD,GAEjB,SAASE,EAAQC,EAAOC,GAC7B,GAAID,IAAUC,EACZ,OAAO,EAET,GAAIL,EAAYI,IAAUJ,EAAYK,IAA4B,mBAAVD,GAA0C,mBAAXC,EACrF,OAAOD,IAAUC,EAEnB,GAAIH,OAAOI,KAAKF,GAAOX,SAAWS,OAAOI,KAAKD,GAAQZ,OACpD,OAAO,EAET,IAAK,IAAIc,EAAK,EAAGC,EAAeN,OAAOI,KAAKF,GAAQG,EAAKC,EAAaf,OAAQc,IAAM,CAClF,IAAIE,EAAMD,EAAaD,GACvB,KAAME,KAAOJ,GACX,OAAO,EAET,IAAKF,EAAQC,EAAMK,GAAMJ,EAAOI,IAC9B,OAAO,EAGX,OAAO,ECtBF,IAAIC,EAAO,aCWX,SAASC,EAAkBC,GAMD,IAL/BC,EAAID,EAAJC,KAAIC,EAAAF,EACJG,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAKV,MAAO,CACLE,MAAOH,EAAKI,yBACZF,MAAO,CAACF,GACRK,UAAW,CAAC,EAAIH,EAAMI,WAAU,SAACC,GAAC,OAAKA,EAAEC,WAAaR,EAAKQ,aAC3DC,QAAST,EAAKU,uBACdC,cAAe,CAAC,6CCJpB,SAASC,EACPZ,GAIA,IAFS,IADTa,EAAiBlC,UAAAC,OAAA,QAAAH,IAAAE,UAAA,GAAAA,UAAA,GAAG,GAEdmC,EAAkB,GACfC,EAAI,EAAGA,EAAIf,EAAKgB,UAAUpC,OAAQmC,GAAKF,EAC9CC,EAAOG,KAAIC,EAAAA,KACNlB,GAAI,GAAA,CACPgB,UAAWhB,EAAKgB,UAAUG,MAAMJ,EAAGA,EAAIF,MAG3C,OAAOC,EAGT,SAASM,EAKPC,GACA,OAAOA,EAAOC,KAAI,SAAAvB,GAAA,IAAGG,EAAKH,EAALG,MAAUqB,EAAKC,EAAAzB,EAAA0B,GAAA,OAAAP,EAAAA,EAAA,GAC/BK,GAAK,GAAA,CACRP,WAAWd,MAAAA,OAAAA,EAAAA,EAAOoB,KAAI,SAAAI,GAAW,OAAAA,EAARlB,cAA4Be,EAAMP,eAIxD,SAASW,EAAwBC,GACtC,ICvCoEC,EAA7DC,EAAOC,EDuCRC,GCvC8DH,EAAAI,GDuCtBL,ECvCfM,SAAW,IAAIC,MAAM,KAAKb,IAAIc,QAAO,GAA7DN,EAAKD,EAAA,GAAEE,EAAKF,EAAA,GAGRC,GAAS,GACG,IAAVA,GAAeC,GAAS,GACb,IAAVD,GAAeC,GAAS,IDoCtC,SAASM,EACPC,EACAC,EACArC,GAEA,GAAI8B,QAAmC,IAAV9B,EAAuB,CAClD,IAAAsC,EAA0BtC,EAAM,GAAGuC,kCAC7BC,EAAU,CACd,2BAFWF,EAALG,MAGN,oBAHmBH,EAANI,QAMfhB,EAAc1C,WAAA,EAAA,CAACoD,GAAMO,OAAAC,EAAKP,GAAU,CAAA,CAAEG,QAAAA,WAEtCd,EAAc1C,WAAA,EAAA,CAACoD,GAAMO,OAAAC,EAAKP,KAI9B,MAAO,CAILQ,KAAIA,SAACJ,EAAeC,GAClBhB,EAAe,OAAQ,CAAEe,MAAAA,EAAOC,OAAAA,KAQlCI,0BAAyB,SAACC,GACxBrB,EAAe,4BAA6BqB,IAK9CC,aAAY,SAACC,GACXvB,EAAe,eAAgBuB,IAOjCC,4BAA2B,WAMzB,IAAA,IAAA1E,EAAAC,UAAAC,OALGyC,EAAMvC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAANsC,EAAMtC,GAAAJ,UAAAI,GAMLsC,EAAOzC,OAAS,GAClByD,EACE,8BACAjB,EAEEC,GACFA,EAAO,GAAGnB,QAShBmD,iBAAgB,WAId,IAAA,IAAAC,EAAA3E,UAAAC,OAHGyC,EAAMvC,IAAAA,MAAAwE,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANlC,EAAMkC,GAAA5E,UAAA4E,GAILlC,EAAOzC,OAAS,GAClByD,EACE,mBACAjB,EAEEC,GACFA,EAAO,GAAGnB,QAShBsD,eAAc,WAEZ,IAAA,IAAAC,EAAA9E,UAAAC,OADGyC,EAAMvC,IAAAA,MAAA2E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANrC,EAAMqC,GAAA/E,UAAA+E,GAELrC,EAAOzC,OAAS,GAClBgD,EAAc1C,WAAC,EAAA,CAAA,kBAAgB2D,OAAKxB,KAQxCsC,8BAA6B,WAM3B,IAAA,IAAAC,EAAAjF,UAAAC,OALGyC,EAAMvC,IAAAA,MAAA8E,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANxC,EAAMwC,GAAAlF,UAAAkF,GAMLxC,EAAOzC,OAAS,GAClByD,EACE,gCACAjB,EAEEC,GACFA,EAAO,GAAGnB,QAShB4D,mBAAkB,WAIhB,IAAA,IAAAC,EAAApF,UAAAC,OAHGyC,EAAMvC,IAAAA,MAAAiF,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN3C,EAAM2C,GAAArF,UAAAqF,GAIL3C,EAAOzC,OAAS,GAClByD,EACE,qBACAjB,EAEEC,GACFA,EAAO,GAAGnB,QAShB+D,iBAAgB,WAEd,IAAA,IAAAC,EAAAvF,UAAAC,OADGyC,EAAMvC,IAAAA,MAAAoF,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN9C,EAAM8C,GAAAxF,UAAAwF,GAEL9C,EAAOzC,OAAS,GAClBgD,EAAc1C,WAAC,EAAA,CAAA,oBAAkB2D,OAAKxB,KAQ1C+C,gBAAe,WAIb,IAAA,IAAAC,EAAA1F,UAAAC,OAHGyC,EAAMvC,IAAAA,MAAAuF,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAANjD,EAAMiD,GAAA3F,UAAA2F,GAILjD,EAAOzC,OAAS,GAClByC,EACGkD,QAMC,SAACC,EAAGC,GAAA,IAAIvE,EAAKuE,EAALvE,MAAUqB,EAAKC,EAAAiD,EAAAC,GAAA,MAAA,GAAA7B,OAAAC,EAClB0B,GAAG1B,EACHlC,EAAKM,EAAAA,KACHK,GAAK,GAAA,CACRP,WACEd,MAAAA,OAAAA,EAAAA,EAAOoB,KAAI,SAAAqD,GAAW,OAAAA,EAARnE,cAA4Be,EAAMP,aACjDM,KAAI,SAACsD,GACN,MAAO,CAAE1E,MAAAA,EAAO0E,QAAAA,UAGpB,IAEDC,SAAQ,SAAAC,GAAA,IAAG5E,EAAK4E,EAAL5E,MAAc,OACxBmC,EAAe,kBAAmB,CADVyC,EAAPF,SAC4B1E,OASrD6E,cAAa,WAA6D,IAAA,IAAAC,EAAArG,UAAAC,OAAzDyC,EAAMvC,IAAAA,MAAAkG,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAN5D,EAAM4D,GAAAtG,UAAAsG,GACjB5D,EAAOzC,OAAS,GAClBgD,EAAc1C,WAAC,EAAA,CAAA,iBAAe2D,OAAKxB,MEpOpC,SAAS6D,EAAkBnF,GAIhC,IACMoF,EAJDpF,EAALG,MAI+BqE,QAC7B,SAACC,EAAKY,GAAY,IAAAC,EAKhB,OAJAb,EAAIY,EAAQhF,2BAC2BiF,QADCA,EACtCb,EAAIY,EAAQhF,iCAAyBiF,IAAAA,EAAAA,EAAI,IACzCxC,OAAOuC,GAEFZ,IAET,IAGF,OAAOnF,OAAOI,KAAK0F,GAAkB7D,KAAI,SAACgE,GAGxC,MAAO,CACLnF,MAAOmF,EACPpF,MAJYiF,EAAiBG,GAK7B3E,cAAe,CAAC,oBC9Bf,SAAS4E,EAAqBC,GACnC,OACEA,EAAIhF,UAAYgF,EAAIpF,0BAA4BoF,EAAI9E,uBCyBxD,IACM+E,EAA2B,SAC3BC,EAAoB,gDAAA7C,OAAmD4C,EAAsD,gCAS7HE,EAAsBtH,GAC1B,SAAA0B,GAA+C,IAA5C6F,EAAa7F,EAAb6F,cAAe1F,EAAKH,EAALG,MAAO2F,EAAQ9F,EAAR8F,SAAUC,EAAK/F,EAAL+F,MACjCF,EAAc,CACZC,SAAAA,EACAE,eAAgBb,EAAmB,CAAEhF,MAAAA,IAASoB,KAAI,SAAC0E,GAAK,OAAA9E,EAAA,CACtD+E,UAAW,gBACRD,MAELF,MAAAA,MAnBmB,KA8QzB,SAASI,IAGP,IAAAC,EAFAC,EAA2BzH,UAAAC,OAAA,QAAAH,IAAAE,UAAA,GAAAA,UAAA,GAAG,GAC9B0H,EAA4B1H,UAAAC,OAAAD,EAAAA,kBAAAF,EAE5B,MAAAoE,GAAAA,OAAAC,EACKsD,GACH,CAAA,yBAAuBtD,EACW,QAA9BqD,EAACE,EAAQC,6BAAqB,IAAAH,GAA9BA,EACAI,oBACA,CAAC,0BACD,KAoDR,SAASC,EACPrD,GAEA,MAA4B,iBAAdA,EAAyBA,EAAUsD,WAAatD,gCAzQzD,SACLuD,GAEA,IAAAC,EAmNF,SAAoBD,GAClB,OAAAxF,EAAA,CACE0E,cAAa,SAAAgB,GAA2D,IAAxDf,EAAQe,EAARf,SAAUE,EAAca,EAAdb,eAAgBD,EAAKc,EAALd,MACxCD,EAASzB,gBAAelF,MAAxB2G,EAAQ/C,EACHiD,EAAezE,KAAI,SAAC0E,GAAK,OAAA9E,EAAAA,EAAA,GACvB8E,GAAK,GAAA,CACRrF,cAAeuF,EAAkBF,EAAMrF,cAAemF,EAAMO,iBAIlEQ,SAAQ,SAAAC,GAAsD,IAAnDjB,EAAQiB,EAARjB,SAAUE,EAAce,EAAdf,eAAgBD,EAAKgB,EAALhB,MACnCD,EAASzC,4BAA2BlE,MAApC2G,EAAQ/C,EACHiD,EAAezE,KAAI,SAAC0E,GAAK,OAAA9E,EAAAA,EAAA,GACvB8E,GAAK,GAAA,CACRrF,cAAeuF,EAAkBF,EAAMrF,cAAemF,EAAMO,iBAIlEU,SAAUlH,EACVmH,+BAA+B,GAC5BN,GAhODO,CAAWP,GANGQ,EAAsBP,EAAtCQ,eACAC,EAAkBT,EAAlBS,mBACAxB,EAAae,EAAbf,cACUyB,EAAaV,EAAvBE,SACUS,EAAaX,EAAvBI,SACAC,EAA6BL,EAA7BK,8BAEEG,EAAiBD,EAkCrB,GAhCKA,GC7GA,SAA4BK,GACjC,GAAsB,oBAAXC,OACFD,EAAS,CACdC,OAAQA,SD2GVC,EAAmB,SAAA/F,GAAgB,IAAb8F,EAAM9F,EAAN8F,OACdE,EAAUF,EAAOG,wBAA0B,KAE1B,iBAAZD,IACTP,EAAiBK,EAAOE,IAGrBP,IACHK,EAAOG,uBAAyBD,EAE3BF,EAAOE,KACVF,EAAOE,GAAW,WACXF,EAAOE,GAASE,QACnBJ,EAAOE,GAASE,MAAQ,IACzB,IAAA,IAAAlJ,EAAAC,UAAAC,OAHmBC,EAAIC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAKxByI,EAAOE,GAASE,MAAM3G,KAAKpC,KAI/B2I,EAAOE,GAASxF,QAAUuD,EAE1B0B,EAAiBK,EAAOE,GA0MhC,SAAsBG,GACpB,IAAMC,EAA0I,4HAEhJ,IACE,IAAMC,EAASF,EAAYG,SAASC,cAAc,UAClDF,EAAOG,OAAQ,EACfH,EAAOI,IAAMzC,EAEbqC,EAAOK,QAAU,WAEfC,QAAQC,MAAMR,IAGhBE,SAASO,KAAKC,YAAYT,GAC1B,MAAOU,GAEPJ,QAAQC,MAAMR,IAxNVY,CAAalB,QAOdL,EACH,MAAO,GAGLC,GACFD,EAAe,OAAMjG,EAAA,CAAIyH,SAAS,GAASvB,IAG7C,IAAMvB,EAAWlE,EAAwBwF,GACnCyB,EExJC,CACLxD,QFuJoD,IAEhDyD,EAAyBxK,GAE5B,SAAAoG,GAAe,IAAZqB,EAAKrB,EAALqB,MACJ,GAAKA,EAAMgD,OAAX,CAIA,IAAM5I,EAAQ4F,EAAMiD,YACjBxE,QAAkB,SAACC,EAAKY,GACvB,MAAAvC,GAAAA,OAAAC,EAAW0B,GAAG1B,EAAKsC,EAAQlF,UAC1B,IACF8I,OAAOzD,GAGPjG,EACCsJ,EAAcxD,QAAQ9D,KAAI,SAACf,GAAC,OAAKA,EAAEC,YACnCN,EAAMoB,KAAI,SAACf,GAAC,OAAKA,EAAEC,eAGrBoI,EAAcxD,QAAUlF,EAEpBA,EAAMtB,OAAS,GACjB+G,EAAoB,CAAEC,cAAAA,EAAe1F,MAAAA,EAAO2F,SAAAA,EAAUC,MAAAA,QAGzD,GAEH,MAAO,CACLmD,KAAM,2BACNC,UAAS,SAAAvE,GAAqC,IAAlCwE,EAAUxE,EAAVwE,WAAYtC,EAAQlC,EAARkC,SAAUE,EAAQpC,EAARoC,SAC5BqC,GAAuB,EAC3B,SAASC,EAAmBlG,GAC1BgG,EAAW,CACT7C,sBAAuB,CACrBgD,0BAAyBpI,EAAAA,EAAA,GACnB8F,EACA,CAAEuC,gBAAgB,GAClB,IACApG,EACA,CAAEA,UAAWqD,EAAmBrD,IAChC,IAEN0C,SAAAA,KAKNsB,EAAe,kBAAmB,mBAElCkC,IAGAlC,EAAe,qBAAqB,SAAChE,GAC9BiG,GACHC,EAAmBlG,MAGvBgE,EAAe,eAAgB,MAAM,SAACqC,EAAQrG,GACvCiG,GACHC,EAAmBlG,MAKvBgE,EACE,kCACA,SAAClE,GACKA,GACFmG,GAAuB,EACvBC,EAAmBpG,KAEnBmG,GAAuB,EACvBjC,EAAe,eAAgB,MAAM,SAACqC,EAAQrG,GAAS,OACrDkG,EAAmBlG,UAK3BgE,EACE,4BACA,MACA,SAACqC,EAAQvG,GACHA,IACFmG,GAAuB,EACvBC,EAAmBpG,OAKzB4D,GAAS,SAAA/B,GAAoC,IAAjC9E,EAAI8E,EAAJ9E,KAAM8F,EAAKhB,EAALgB,MAAOE,EAAKlB,EAALkB,MAAOyD,EAAM3E,EAAN2E,OACzBlE,EAAqBvF,IAI1BqH,EAAc,CACZvB,MAAOA,EACPE,MAAAA,EACAH,SAAAA,EACA7F,KAAAA,EACA+F,eAAgB,CAAA7E,EAAA,CAEZ+E,UAAW,iBACRnG,EAAmB,CACpBE,KAAAA,EACAE,MAAQuJ,EACLC,WACAV,OAAOzD,YAOpBwB,GAAS,SAAA4C,GAAoC,IAAjC3J,EAAI2J,EAAJ3J,KAAMyJ,EAAME,EAANF,OAAQ3D,EAAK6D,EAAL7D,MAAOE,EAAK2D,EAAL3D,MAC1BT,EAAqBvF,IAI1BsH,EAAc,CACZxB,MAAOA,EACPE,MAAAA,EACAH,SAAAA,EACA7F,KAAAA,EACA+F,eAAgB,CAAA7E,EAAA,CAEZ+E,UAAW,eACRnG,EAAmB,CACpBE,KAAAA,EACAE,MAAQuJ,EACLC,WACAV,OAAOzD,aAOtBqE,cAAa,SAAAC,GAAY,IAAT/D,EAAK+D,EAAL/D,MACd+C,EAAuB,CAAE/C,MAAOA,KAElCgE,6BAA8BpD"} \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-plugin-algolia-insights/package.json b/node_modules/@algolia/autocomplete-plugin-algolia-insights/package.json index b7044be..a6d8ed5 100644 --- a/node_modules/@algolia/autocomplete-plugin-algolia-insights/package.json +++ b/node_modules/@algolia/autocomplete-plugin-algolia-insights/package.json @@ -1,7 +1,7 @@ { "name": "@algolia/autocomplete-plugin-algolia-insights", "description": "A plugin to add Algolia Insights to Algolia Autocomplete.", - "version": "1.9.3", + "version": "1.17.7", "license": "MIT", "homepage": "https://github.com/algolia/autocomplete", "repository": "algolia/autocomplete", @@ -31,7 +31,7 @@ "watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\"" }, "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "search-insights": ">= 1 < 3" diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/ParseAlgoliaHitParams.d.ts b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/ParseAlgoliaHitParams.d.ts index f6fe561..93bb3cc 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/ParseAlgoliaHitParams.d.ts +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/ParseAlgoliaHitParams.d.ts @@ -1,4 +1,4 @@ export declare type ParseAlgoliaHitParams = { hit: TItem; - attribute: keyof TItem | string[]; + attribute: keyof TItem | Array; }; diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.d.ts b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.d.ts index f0e9b06..5090eff 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.d.ts +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.d.ts @@ -1,2 +1,3 @@ -import type { SearchForFacetValuesResponse, SearchResponse, SearchParams } from '../types'; +import type { SearchResponse } from '@algolia/autocomplete-shared'; +import type { SearchForFacetValuesResponse, SearchParams } from '../types'; export declare function fetchAlgoliaResults({ searchClient, queries, userAgents, }: SearchParams): Promise | SearchForFacetValuesResponse>>; diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.d.ts b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.d.ts index d7b0d01..94bcb15 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.d.ts +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.d.ts @@ -1,5 +1,4 @@ -import type { SearchClient } from '../types'; -export declare function getAppIdAndApiKey(searchClient: SearchClient): { +export declare function getAppIdAndApiKey(searchClient: any): { appId: string; apiKey: string; }; diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js index fde0466..4117ab1 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/esm/utils/getAppIdAndApiKey.js @@ -1,9 +1,8 @@ +// typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect export function getAppIdAndApiKey(searchClient) { - var _ref = searchClient.transporter || {}, - _ref$headers = _ref.headers, - headers = _ref$headers === void 0 ? {} : _ref$headers, - _ref$queryParameters = _ref.queryParameters, - queryParameters = _ref$queryParameters === void 0 ? {} : _ref$queryParameters; + var transporter = searchClient.transporter || {}; + var headers = transporter.headers || transporter.baseHeaders || {}; + var queryParameters = transporter.queryParameters || transporter.baseQueryParameters || {}; var APP_ID = 'x-algolia-application-id'; var API_KEY = 'x-algolia-api-key'; var appId = headers[APP_ID] || queryParameters[APP_ID]; diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js index 0c8a5fd..1b8bee9 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js @@ -1,4 +1,4 @@ -/*! @algolia/autocomplete-preset-algolia 1.9.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +/*! @algolia/autocomplete-preset-algolia 1.17.7 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : @@ -133,7 +133,7 @@ } } - var version = '1.9.3'; + var version = '1.17.7'; var userAgents = [{ segment: 'autocomplete-core', @@ -323,12 +323,11 @@ }; } + // typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect function getAppIdAndApiKey(searchClient) { - var _ref = searchClient.transporter || {}, - _ref$headers = _ref.headers, - headers = _ref$headers === void 0 ? {} : _ref$headers, - _ref$queryParameters = _ref.queryParameters, - queryParameters = _ref$queryParameters === void 0 ? {} : _ref$queryParameters; + var transporter = searchClient.transporter || {}; + var headers = transporter.headers || transporter.baseHeaders || {}; + var queryParameters = transporter.queryParameters || transporter.baseQueryParameters || {}; var APP_ID = 'x-algolia-application-id'; var API_KEY = 'x-algolia-api-key'; var appId = headers[APP_ID] || queryParameters[APP_ID]; diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js.map b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js.map index 276ef7e..fb8bd9c 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js.map +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.development.js.map @@ -1 +1 @@ -{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/invariant.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-shared/dist/esm/warn.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts","../../src/requester/createRequester.ts","../../src/utils/getAppIdAndApiKey.ts","../../src/search/fetchAlgoliaResults.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaFacets.ts","../../src/requester/getAlgoliaResults.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","/**\n * Throws an error if the condition is not met in development mode.\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (!condition) {\n throw new Error(\"[Autocomplete] \".concat(typeof message === 'function' ? message() : message));\n }\n}","export var version = '1.9.3';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var warnCache = {\n current: {}\n};\n\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (condition) {\n return;\n }\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true;\n\n // eslint-disable-next-line no-console\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}\n","import type {\n Fetcher,\n ExecuteParams,\n RequesterParams,\n RequestParams,\n RequesterDescription,\n} from '../types';\n\nexport function createRequester(fetcher: Fetcher, requesterId?: string) {\n function execute(fetcherParams: ExecuteParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams\n ) {\n return function requester(\n requestParams: RequestParams\n ): RequesterDescription {\n return {\n requesterId,\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","import type { SearchClient } from '../types';\n\nexport function getAppIdAndApiKey(searchClient: SearchClient): {\n appId: string;\n apiKey: string;\n} {\n const { headers = {}, queryParameters = {} } = searchClient.transporter || {};\n const APP_ID = 'x-algolia-application-id';\n const API_KEY = 'x-algolia-api-key';\n const appId = headers[APP_ID] || queryParameters[APP_ID];\n const apiKey = headers[API_KEY] || queryParameters[API_KEY];\n return { appId, apiKey };\n}\n","import {\n userAgents as coreUserAgents,\n UserAgent,\n invariant,\n} from '@algolia/autocomplete-shared';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport type {\n SearchForFacetValuesResponse,\n SearchResponse,\n SearchParams,\n} from '../types';\nimport { getAppIdAndApiKey } from '../utils';\n\nexport function fetchAlgoliaResults({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [...coreUserAgents, ...userAgents];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n const { appId, apiKey } = getAppIdAndApiKey(searchClient);\n\n invariant(\n Boolean(appId),\n 'The Algolia `appId` was not accessible from the searchClient passed.'\n );\n invariant(\n Boolean(apiKey),\n 'The Algolia `apiKey` was not accessible from the searchClient passed.'\n );\n\n return searchClient\n .search(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results.map((result, resultIndex) => ({\n ...result,\n hits: result.hits?.map((hit) => ({\n ...hit,\n // Bring support for the Insights plugin.\n __autocomplete_indexName:\n result.index || queries[resultIndex].indexName,\n __autocomplete_queryID: result.queryID,\n __autocomplete_algoliaCredentials: {\n appId,\n apiKey,\n },\n })),\n }));\n });\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(\n fetchAlgoliaResults,\n 'algolia'\n);\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport type { MultipleQueriesQuery } from '../types';\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaFacets({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport function getAlgoliaResults(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaResults({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n });\n\n return requester(requestParams);\n}\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","invariant","condition","message","Error","concat","version","userAgents","segment","warnCache","warn","sanitizedMessage","trim","hasAlreadyPrinted","console","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","createAttributeSet","initialValue","arguments","length","undefined","value","get","add","part","lastPart","isHighlighted","push","parseAttribute","_ref","highlightedValue","preTagParts","split","firstValue","shift","parts","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","_toConsumableArray","process","join","JSON","stringify","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","unescape","test","replace","character","isPartHighlighted","i","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","reverseHighlightedParts","some","map","_objectSpread","parseAlgoliaHitReverseHighlight","props","parseAlgoliaHitSnippet","parseAlgoliaHitReverseSnippet","createRequester","fetcher","requesterId","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","_fetcherParams$reques","sourceId","transformResponse","items","createSpecifiedRequester","requesterParams","requester","requestParams","getAppIdAndApiKey","transporter","_ref$headers","headers","_ref$queryParameters","queryParameters","APP_ID","API_KEY","appId","apiKey","fetchAlgoliaResults","_ref$userAgents","addAlgoliaAgent","algoliaAgents","coreUserAgents","_ref2","_getAppIdAndApiKey","Boolean","search","searchParameters","params","_objectWithoutProperties","_excluded","hitsPerPage","highlightPreTag","highlightPostTag","results","result","resultIndex","_result$hits","hits","__autocomplete_indexName","indexName","__autocomplete_queryID","queryID","__autocomplete_algoliaCredentials","createAlgoliaRequester","getAlgoliaFacets","_typeof","facetHits","type","getAlgoliaResults"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/invariant.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../../autocomplete-shared/dist/esm/warn.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts","../../src/requester/createRequester.ts","../../src/utils/getAppIdAndApiKey.ts","../../src/search/fetchAlgoliaResults.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaFacets.ts","../../src/requester/getAlgoliaResults.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","/**\n * Throws an error if the condition is not met in development mode.\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (!condition) {\n throw new Error(\"[Autocomplete] \".concat(typeof message === 'function' ? message() : message));\n }\n}","export var version = '1.17.7';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var warnCache = {\n current: {}\n};\n\n/**\n * Logs a warning if the condition is not met.\n * This is used to log issues in development environment only.\n */\nexport function warn(condition, message) {\n if (!(process.env.NODE_ENV !== 'production')) {\n return;\n }\n if (condition) {\n return;\n }\n var sanitizedMessage = message.trim();\n var hasAlreadyPrinted = warnCache.current[sanitizedMessage];\n if (!hasAlreadyPrinted) {\n warnCache.current[sanitizedMessage] = true;\n\n // eslint-disable-next-line no-console\n console.warn(\"[Autocomplete] \".concat(sanitizedMessage));\n }\n}","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}\n","import type {\n Fetcher,\n ExecuteParams,\n RequesterParams,\n RequestParams,\n RequesterDescription,\n} from '../types';\n\nexport function createRequester(fetcher: Fetcher, requesterId?: string) {\n function execute(fetcherParams: ExecuteParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams\n ) {\n return function requester(\n requestParams: RequestParams\n ): RequesterDescription {\n return {\n requesterId,\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","// typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect\nexport function getAppIdAndApiKey(searchClient: any): {\n appId: string;\n apiKey: string;\n} {\n const transporter = searchClient.transporter || {};\n const headers = transporter.headers || transporter.baseHeaders || {};\n const queryParameters =\n transporter.queryParameters || transporter.baseQueryParameters || {};\n const APP_ID = 'x-algolia-application-id';\n const API_KEY = 'x-algolia-api-key';\n const appId = headers[APP_ID] || queryParameters[APP_ID];\n const apiKey = headers[API_KEY] || queryParameters[API_KEY];\n return { appId, apiKey };\n}\n","import {\n userAgents as coreUserAgents,\n UserAgent,\n invariant,\n} from '@algolia/autocomplete-shared';\nimport type { SearchResponse } from '@algolia/autocomplete-shared';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport type { SearchForFacetValuesResponse, SearchParams } from '../types';\nimport { getAppIdAndApiKey } from '../utils';\n\nexport function fetchAlgoliaResults({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [...coreUserAgents, ...userAgents];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n const { appId, apiKey } = getAppIdAndApiKey(searchClient);\n\n invariant(\n Boolean(appId),\n 'The Algolia `appId` was not accessible from the searchClient passed.'\n );\n invariant(\n Boolean(apiKey),\n 'The Algolia `apiKey` was not accessible from the searchClient passed.'\n );\n\n return searchClient\n .search(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results.map((result, resultIndex) => ({\n ...result,\n hits: result.hits?.map((hit) => ({\n ...hit,\n // Bring support for the Insights plugin.\n __autocomplete_indexName:\n result.index || queries[resultIndex].indexName,\n __autocomplete_queryID: result.queryID,\n __autocomplete_algoliaCredentials: {\n appId,\n apiKey,\n },\n })),\n }));\n });\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(\n fetchAlgoliaResults,\n 'algolia'\n);\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport type { MultipleQueriesQuery } from '../types';\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaFacets({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport function getAlgoliaResults(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaResults({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n });\n\n return requester(requestParams);\n}\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","invariant","condition","message","Error","concat","version","userAgents","segment","warnCache","warn","sanitizedMessage","trim","hasAlreadyPrinted","console","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","createAttributeSet","initialValue","arguments","length","undefined","value","get","add","part","lastPart","isHighlighted","push","parseAttribute","_ref","highlightedValue","preTagParts","split","firstValue","shift","parts","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","_toConsumableArray","process","join","JSON","stringify","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","unescape","test","replace","character","isPartHighlighted","i","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","reverseHighlightedParts","some","map","_objectSpread","parseAlgoliaHitReverseHighlight","props","parseAlgoliaHitSnippet","parseAlgoliaHitReverseSnippet","createRequester","fetcher","requesterId","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","_fetcherParams$reques","sourceId","transformResponse","items","createSpecifiedRequester","requesterParams","requester","requestParams","getAppIdAndApiKey","transporter","headers","baseHeaders","queryParameters","baseQueryParameters","APP_ID","API_KEY","appId","apiKey","fetchAlgoliaResults","_ref$userAgents","addAlgoliaAgent","algoliaAgents","coreUserAgents","_ref2","_getAppIdAndApiKey","Boolean","search","searchParameters","params","_objectWithoutProperties","_excluded","hitsPerPage","highlightPreTag","highlightPostTag","results","result","resultIndex","_result$hits","hits","__autocomplete_indexName","indexName","__autocomplete_queryID","queryID","__autocomplete_algoliaCredentials","createAlgoliaRequester","getAlgoliaFacets","_typeof","facetHits","type","getAlgoliaResults"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js index 0ad821c..c03eb17 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js @@ -1,3 +1,3 @@ -/*! @algolia/autocomplete-preset-algolia 1.9.3 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-preset-algolia"]={})}(this,(function(e){"use strict";function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(e){for(var r=1;r=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function u(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var r=e[e.length-1];(null==r?void 0:r.isHighlighted)===t.isHighlighted?e[e.length-1]={value:r.value+t.value,isHighlighted:r.isHighlighted}:e.push(t)}}}(r?[{value:r,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(f);n.add({value:t[0],isHighlighted:!0}),""!==t[1]&&n.add({value:t[1],isHighlighted:!1})})),n.get()}function g(e){var t=e.hit,r=e.attribute,n=Array.isArray(r)?r:[r],i=l(t,["_highlightResult"].concat(u(n),["value"]));return"string"!=typeof i&&(i=l(t,n)||""),p({highlightedValue:i})}var h={"&":"&","<":"<",">":">",""":'"',"'":"'"},d=new RegExp(/\w/i),y=/&(amp|quot|lt|gt|#39);/g,v=RegExp(y.source);function m(e,t){var r,n,i,o=e[t],u=(null===(r=e[t+1])||void 0===r?void 0:r.isHighlighted)||!0,a=(null===(n=e[t-1])||void 0===n?void 0:n.isHighlighted)||!0;return d.test((i=o.value)&&v.test(i)?i.replace(y,(function(e){return h[e]})):i)||a!==u?o.isHighlighted:a}function b(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return r(r({},t),{},{isHighlighted:!m(e,n)})})):e.map((function(e){return r(r({},e),{},{isHighlighted:!1})}))}function O(e){var t=e.hit,r=e.attribute,n=Array.isArray(r)?r:[r],i=l(t,["_snippetResult"].concat(u(n),["value"]));return"string"!=typeof i&&(i=l(t,n)||""),p({highlightedValue:i})}function j(e,t){function n(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,r){var n=t.requests[r];return{items:e,sourceId:n.sourceId,transformResponse:n.transformResponse}}))}))}return function(e){return function(i){return r(r({requesterId:t,execute:n},e),i)}}}var A=["params"];function _(e){var t=e.searchClient,n=e.queries,i=e.userAgents,a=void 0===i?[]:i;"function"==typeof t.addAlgoliaAgent&&[].concat(u(c),u(a)).forEach((function(e){var r=e.segment,n=e.version;t.addAlgoliaAgent(r,n)}));var l=function(e){var t=e.transporter||{},r=t.headers,n=void 0===r?{}:r,i=t.queryParameters,o=void 0===i?{}:i,u="x-algolia-application-id",a="x-algolia-api-key";return{appId:n[u]||o[u],apiKey:n[a]||o[a]}}(t),p=l.appId,g=l.apiKey;return t.search(n.map((function(e){var t=e.params;return r(r({},o(e,A)),{},{params:r({hitsPerPage:5,highlightPreTag:s,highlightPostTag:f},t)})}))).then((function(e){return e.results.map((function(e,t){var i;return r(r({},e),{},{hits:null===(i=e.hits)||void 0===i?void 0:i.map((function(i){return r(r({},i),{},{__autocomplete_indexName:e.index||n[t].indexName,__autocomplete_queryID:e.queryID,__autocomplete_algoliaCredentials:{appId:p,apiKey:g}})}))})}))}))}var H=j(_,"algolia");e.createRequester=j,e.fetchAlgoliaResults=_,e.getAlgoliaFacets=function(e){n(e.searchClient);var t=H({transformResponse:function(e){return e.facetHits}}),i=e.queries.map((function(e){return r(r({},e),{},{type:"facet"})}));return t(r(r({},e),{},{queries:i}))},e.getAlgoliaResults=function(e){return n(e.searchClient),H({transformResponse:function(e){return e.hits}})(e)},e.parseAlgoliaHitHighlight=g,e.parseAlgoliaHitReverseHighlight=function(e){return b(g(e))},e.parseAlgoliaHitReverseSnippet=function(e){return b(O(e))},e.parseAlgoliaHitSnippet=O,Object.defineProperty(e,"__esModule",{value:!0})})); +/*! @algolia/autocomplete-preset-algolia 1.17.7 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-preset-algolia"]={})}(this,(function(e){"use strict";function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(e){for(var r=1;r=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function u(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var r=e[e.length-1];(null==r?void 0:r.isHighlighted)===t.isHighlighted?e[e.length-1]={value:r.value+t.value,isHighlighted:r.isHighlighted}:e.push(t)}}}(r?[{value:r,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(f);n.add({value:t[0],isHighlighted:!0}),""!==t[1]&&n.add({value:t[1],isHighlighted:!1})})),n.get()}function g(e){var t=e.hit,r=e.attribute,n=Array.isArray(r)?r:[r],i=l(t,["_highlightResult"].concat(u(n),["value"]));return"string"!=typeof i&&(i=l(t,n)||""),p({highlightedValue:i})}var h={"&":"&","<":"<",">":">",""":'"',"'":"'"},d=new RegExp(/\w/i),y=/&(amp|quot|lt|gt|#39);/g,m=RegExp(y.source);function v(e,t){var r,n,i,o=e[t],u=(null===(r=e[t+1])||void 0===r?void 0:r.isHighlighted)||!0,a=(null===(n=e[t-1])||void 0===n?void 0:n.isHighlighted)||!0;return d.test((i=o.value)&&m.test(i)?i.replace(y,(function(e){return h[e]})):i)||a!==u?o.isHighlighted:a}function b(e){return e.some((function(e){return e.isHighlighted}))?e.map((function(t,n){return r(r({},t),{},{isHighlighted:!v(e,n)})})):e.map((function(e){return r(r({},e),{},{isHighlighted:!1})}))}function O(e){var t=e.hit,r=e.attribute,n=Array.isArray(r)?r:[r],i=l(t,["_snippetResult"].concat(u(n),["value"]));return"string"!=typeof i&&(i=l(t,n)||""),p({highlightedValue:i})}function j(e,t){function n(t){return e({searchClient:t.searchClient,queries:t.requests.map((function(e){return e.query}))}).then((function(e){return e.map((function(e,r){var n=t.requests[r];return{items:e,sourceId:n.sourceId,transformResponse:n.transformResponse}}))}))}return function(e){return function(i){return r(r({requesterId:t,execute:n},e),i)}}}var A=["params"];function H(e){var t=e.searchClient,n=e.queries,i=e.userAgents,a=void 0===i?[]:i;"function"==typeof t.addAlgoliaAgent&&[].concat(u(s),u(a)).forEach((function(e){var r=e.segment,n=e.version;t.addAlgoliaAgent(r,n)}));var l=function(e){var t=e.transporter||{},r=t.headers||t.baseHeaders||{},n=t.queryParameters||t.baseQueryParameters||{},i="x-algolia-application-id",o="x-algolia-api-key";return{appId:r[i]||n[i],apiKey:r[o]||n[o]}}(t),p=l.appId,g=l.apiKey;return t.search(n.map((function(e){var t=e.params;return r(r({},o(e,A)),{},{params:r({hitsPerPage:5,highlightPreTag:c,highlightPostTag:f},t)})}))).then((function(e){return e.results.map((function(e,t){var i;return r(r({},e),{},{hits:null===(i=e.hits)||void 0===i?void 0:i.map((function(i){return r(r({},i),{},{__autocomplete_indexName:e.index||n[t].indexName,__autocomplete_queryID:e.queryID,__autocomplete_algoliaCredentials:{appId:p,apiKey:g}})}))})}))}))}var _=j(H,"algolia");e.createRequester=j,e.fetchAlgoliaResults=H,e.getAlgoliaFacets=function(e){n(e.searchClient);var t=_({transformResponse:function(e){return e.facetHits}}),i=e.queries.map((function(e){return r(r({},e),{},{type:"facet"})}));return t(r(r({},e),{},{queries:i}))},e.getAlgoliaResults=function(e){return n(e.searchClient),_({transformResponse:function(e){return e.hits}})(e)},e.parseAlgoliaHitHighlight=g,e.parseAlgoliaHitReverseHighlight=function(e){return b(g(e))},e.parseAlgoliaHitReverseSnippet=function(e){return b(O(e))},e.parseAlgoliaHitSnippet=O,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=index.production.js.map diff --git a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js.map b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js.map index d26b169..d3788f7 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js.map +++ b/node_modules/@algolia/autocomplete-preset-algolia/dist/umd/index.production.js.map @@ -1 +1 @@ -{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/requester/createRequester.ts","../../src/search/fetchAlgoliaResults.ts","../../src/utils/getAppIdAndApiKey.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaFacets.ts","../../src/requester/getAlgoliaResults.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export var version = '1.9.3';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import type {\n Fetcher,\n ExecuteParams,\n RequesterParams,\n RequestParams,\n RequesterDescription,\n} from '../types';\n\nexport function createRequester(fetcher: Fetcher, requesterId?: string) {\n function execute(fetcherParams: ExecuteParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams\n ) {\n return function requester(\n requestParams: RequestParams\n ): RequesterDescription {\n return {\n requesterId,\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","import {\n userAgents as coreUserAgents,\n UserAgent,\n invariant,\n} from '@algolia/autocomplete-shared';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport type {\n SearchForFacetValuesResponse,\n SearchResponse,\n SearchParams,\n} from '../types';\nimport { getAppIdAndApiKey } from '../utils';\n\nexport function fetchAlgoliaResults({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [...coreUserAgents, ...userAgents];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n const { appId, apiKey } = getAppIdAndApiKey(searchClient);\n\n invariant(\n Boolean(appId),\n 'The Algolia `appId` was not accessible from the searchClient passed.'\n );\n invariant(\n Boolean(apiKey),\n 'The Algolia `apiKey` was not accessible from the searchClient passed.'\n );\n\n return searchClient\n .search(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results.map((result, resultIndex) => ({\n ...result,\n hits: result.hits?.map((hit) => ({\n ...hit,\n // Bring support for the Insights plugin.\n __autocomplete_indexName:\n result.index || queries[resultIndex].indexName,\n __autocomplete_queryID: result.queryID,\n __autocomplete_algoliaCredentials: {\n appId,\n apiKey,\n },\n })),\n }));\n });\n}\n","import type { SearchClient } from '../types';\n\nexport function getAppIdAndApiKey(searchClient: SearchClient): {\n appId: string;\n apiKey: string;\n} {\n const { headers = {}, queryParameters = {} } = searchClient.transporter || {};\n const APP_ID = 'x-algolia-application-id';\n const API_KEY = 'x-algolia-api-key';\n const appId = headers[APP_ID] || queryParameters[APP_ID];\n const apiKey = headers[API_KEY] || queryParameters[API_KEY];\n return { appId, apiKey };\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(\n fetchAlgoliaResults,\n 'algolia'\n);\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport type { MultipleQueriesQuery } from '../types';\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaFacets({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport function getAlgoliaResults(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaResults({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n });\n\n return requester(requestParams);\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","userAgents","segment","version","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","_ref","preTagParts","highlightedValue","split","firstValue","shift","parts","value","arguments","length","undefined","get","add","part","lastPart","isHighlighted","push","createAttributeSet","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","concat","_toConsumableArray","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","isPartHighlighted","i","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","test","replace","character","reverseHighlightedParts","some","map","_objectSpread","parseAlgoliaHitSnippet","createRequester","fetcher","requesterId","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","_fetcherParams$reques","items","sourceId","transformResponse","requesterParams","requestParams","fetchAlgoliaResults","_ref$userAgents","addAlgoliaAgent","coreUserAgents","_ref2","_getAppIdAndApiKey","transporter","_ref$headers","headers","_ref$queryParameters","queryParameters","APP_ID","API_KEY","appId","apiKey","getAppIdAndApiKey","search","searchParameters","params","_objectWithoutProperties","_excluded","hitsPerPage","highlightPreTag","highlightPostTag","results","result","resultIndex","_result$hits","hits","__autocomplete_indexName","indexName","__autocomplete_queryID","queryID","__autocomplete_algoliaCredentials","createAlgoliaRequester","_typeof","requester","facetHits","type","props"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.production.js","sources":["../../../autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../autocomplete-shared/dist/esm/version.js","../../../autocomplete-shared/dist/esm/userAgents.js","../../src/constants/index.ts","../../src/highlight/parseAttribute.ts","../../src/highlight/parseAlgoliaHitHighlight.ts","../../src/highlight/isPartHighlighted.ts","../../src/highlight/reverseHighlightedParts.ts","../../src/highlight/parseAlgoliaHitSnippet.ts","../../src/requester/createRequester.ts","../../src/search/fetchAlgoliaResults.ts","../../src/utils/getAppIdAndApiKey.ts","../../src/requester/createAlgoliaRequester.ts","../../src/requester/getAlgoliaFacets.ts","../../src/requester/getAlgoliaResults.ts","../../src/highlight/parseAlgoliaHitReverseHighlight.ts","../../src/highlight/parseAlgoliaHitReverseSnippet.ts"],"sourcesContent":["export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","export var version = '1.17.7';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export const HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport const HIGHLIGHT_POST_TAG = '__/aa-highlight__';\n","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\nimport { ParsedAttribute } from './ParsedAttribute';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet(initialValue: ParsedAttribute[] = []) {\n const value = initialValue;\n\n return {\n get() {\n return value;\n },\n add(part: ParsedAttribute) {\n const lastPart: ParsedAttribute | undefined = value[value.length - 1];\n\n if (lastPart?.isHighlighted === part.isHighlighted) {\n value[value.length - 1] = {\n value: lastPart.value + part.value,\n isHighlighted: lastPart.isHighlighted,\n };\n } else {\n value.push(part);\n }\n },\n };\n}\n\ntype ParseAttributeParams = {\n highlightedValue: string;\n};\n\nexport function parseAttribute({\n highlightedValue,\n}: ParseAttributeParams): ParsedAttribute[] {\n const preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n const firstValue = preTagParts.shift();\n const parts = createAttributeSet(\n firstValue ? [{ value: firstValue, isHighlighted: false }] : []\n );\n\n preTagParts.forEach((part) => {\n const postTagParts = part.split(HIGHLIGHT_POST_TAG);\n\n parts.add({\n value: postTagParts[0],\n isHighlighted: true,\n });\n\n if (postTagParts[1] !== '') {\n parts.add({\n value: postTagParts[1],\n isHighlighted: false,\n });\n }\n });\n\n return parts.get();\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { HighlightedHit } from './HighlightedHit';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function parseAlgoliaHitHighlight>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_highlightResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToHighlight\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import { ParsedAttribute } from './ParsedAttribute';\n\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\",\n};\nconst hasAlphanumeric = new RegExp(/\\w/i);\nconst regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nconst regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value: string): string {\n return value && regexHasEscapedHtml.test(value)\n ? value.replace(regexEscapedHtml, (character) => htmlEscapes[character])\n : value;\n}\n\nexport function isPartHighlighted(parts: ParsedAttribute[], i: number) {\n const current = parts[i];\n const isNextHighlighted = parts[i + 1]?.isHighlighted || true;\n const isPreviousHighlighted = parts[i - 1]?.isHighlighted || true;\n\n if (\n !hasAlphanumeric.test(unescape(current.value)) &&\n isPreviousHighlighted === isNextHighlighted\n ) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}\n","import { isPartHighlighted } from './isPartHighlighted';\nimport { ParsedAttribute } from './ParsedAttribute';\n\nexport function reverseHighlightedParts(parts: ParsedAttribute[]) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some((part) => part.isHighlighted)) {\n return parts.map((part) => ({ ...part, isHighlighted: false }));\n }\n\n return parts.map((part, i) => ({\n ...part,\n isHighlighted: !isPartHighlighted(parts, i),\n }));\n}\n","import { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\n\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAttribute } from './parseAttribute';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitSnippet>({\n hit,\n attribute,\n}: ParseAlgoliaHitParams): ParsedAttribute[] {\n const path = Array.isArray(attribute) ? attribute : ([attribute] as string[]);\n let highlightedValue = getAttributeValueByPath(hit, [\n '_snippetResult',\n ...path,\n 'value',\n ]);\n\n if (typeof highlightedValue !== 'string') {\n warn(\n false,\n `The attribute \"${path.join('.')}\" described by the path ${JSON.stringify(\n path\n )} does not exist on the hit. Did you set it in \\`attributesToSnippet\\`?` +\n '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/'\n );\n\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({ highlightedValue });\n}\n","import type {\n Fetcher,\n ExecuteParams,\n RequesterParams,\n RequestParams,\n RequesterDescription,\n} from '../types';\n\nexport function createRequester(fetcher: Fetcher, requesterId?: string) {\n function execute(fetcherParams: ExecuteParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map((x) => x.query),\n }).then((responses) =>\n responses.map((response, index) => {\n const { sourceId, transformResponse } = fetcherParams.requests[index];\n\n return {\n items: response,\n sourceId,\n transformResponse,\n };\n })\n );\n }\n\n return function createSpecifiedRequester(\n requesterParams: RequesterParams\n ) {\n return function requester(\n requestParams: RequestParams\n ): RequesterDescription {\n return {\n requesterId,\n execute,\n ...requesterParams,\n ...requestParams,\n };\n };\n };\n}\n","import {\n userAgents as coreUserAgents,\n UserAgent,\n invariant,\n} from '@algolia/autocomplete-shared';\nimport type { SearchResponse } from '@algolia/autocomplete-shared';\n\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nimport type { SearchForFacetValuesResponse, SearchParams } from '../types';\nimport { getAppIdAndApiKey } from '../utils';\n\nexport function fetchAlgoliaResults({\n searchClient,\n queries,\n userAgents = [],\n}: SearchParams): Promise<\n Array | SearchForFacetValuesResponse>\n> {\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n const algoliaAgents: UserAgent[] = [...coreUserAgents, ...userAgents];\n\n algoliaAgents.forEach(({ segment, version }) => {\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n const { appId, apiKey } = getAppIdAndApiKey(searchClient);\n\n invariant(\n Boolean(appId),\n 'The Algolia `appId` was not accessible from the searchClient passed.'\n );\n invariant(\n Boolean(apiKey),\n 'The Algolia `apiKey` was not accessible from the searchClient passed.'\n );\n\n return searchClient\n .search(\n queries.map((searchParameters) => {\n const { params, ...headers } = searchParameters;\n\n return {\n ...headers,\n params: {\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG,\n ...params,\n },\n };\n })\n )\n .then((response) => {\n return response.results.map((result, resultIndex) => ({\n ...result,\n hits: result.hits?.map((hit) => ({\n ...hit,\n // Bring support for the Insights plugin.\n __autocomplete_indexName:\n result.index || queries[resultIndex].indexName,\n __autocomplete_queryID: result.queryID,\n __autocomplete_algoliaCredentials: {\n appId,\n apiKey,\n },\n })),\n }));\n });\n}\n","// typed as any, since it accepts the _real_ js clients, not the interface we otherwise expect\nexport function getAppIdAndApiKey(searchClient: any): {\n appId: string;\n apiKey: string;\n} {\n const transporter = searchClient.transporter || {};\n const headers = transporter.headers || transporter.baseHeaders || {};\n const queryParameters =\n transporter.queryParameters || transporter.baseQueryParameters || {};\n const APP_ID = 'x-algolia-application-id';\n const API_KEY = 'x-algolia-api-key';\n const appId = headers[APP_ID] || queryParameters[APP_ID];\n const apiKey = headers[API_KEY] || queryParameters[API_KEY];\n return { appId, apiKey };\n}\n","import { fetchAlgoliaResults } from '../search';\n\nimport { createRequester } from './createRequester';\n\nexport const createAlgoliaRequester = createRequester(\n fetchAlgoliaResults,\n 'algolia'\n);\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport type { MultipleQueriesQuery } from '../types';\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\nexport function getAlgoliaFacets(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaFacets({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.facetHits,\n });\n\n const queries = requestParams.queries.map((query) => ({\n ...query,\n type: 'facet',\n })) as MultipleQueriesQuery[];\n\n return requester({\n ...requestParams,\n queries,\n });\n}\n","import { invariant } from '@algolia/autocomplete-shared';\n\nimport { RequestParams } from '../types';\n\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n\n/**\n * Retrieves Algolia results from multiple indices.\n */\nexport function getAlgoliaResults(requestParams: RequestParams) {\n invariant(\n typeof requestParams.searchClient === 'object',\n 'The `searchClient` parameter is required for getAlgoliaResults({ searchClient }).'\n );\n\n const requester = createAlgoliaRequester({\n transformResponse: (response) => response.hits,\n });\n\n return requester(requestParams);\n}\n","import { HighlightedHit } from './HighlightedHit';\nimport { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\n\nexport function parseAlgoliaHitReverseHighlight<\n THit extends HighlightedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}\n","import { ParseAlgoliaHitParams } from './ParseAlgoliaHitParams';\nimport { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { ParsedAttribute } from './ParsedAttribute';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nimport { SnippetedHit } from './SnippetedHit';\n\nexport function parseAlgoliaHitReverseSnippet<\n THit extends SnippetedHit\n>(props: ParseAlgoliaHitParams): ParsedAttribute[] {\n return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}\n"],"names":["getAttributeValueByPath","record","path","reduce","current","key","userAgents","segment","version","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","_ref","preTagParts","highlightedValue","split","firstValue","shift","parts","value","arguments","length","undefined","get","add","part","lastPart","isHighlighted","push","createAttributeSet","forEach","postTagParts","parseAlgoliaHitHighlight","hit","attribute","Array","isArray","concat","_toConsumableArray","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","source","isPartHighlighted","i","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","test","replace","character","reverseHighlightedParts","some","map","_objectSpread","parseAlgoliaHitSnippet","createRequester","fetcher","requesterId","execute","fetcherParams","searchClient","queries","requests","x","query","then","responses","response","index","_fetcherParams$reques","items","sourceId","transformResponse","requesterParams","requestParams","fetchAlgoliaResults","_ref$userAgents","addAlgoliaAgent","coreUserAgents","_ref2","_getAppIdAndApiKey","transporter","headers","baseHeaders","queryParameters","baseQueryParameters","APP_ID","API_KEY","appId","apiKey","getAppIdAndApiKey","search","searchParameters","params","_objectWithoutProperties","_excluded","hitsPerPage","highlightPreTag","highlightPostTag","results","result","resultIndex","_result$hits","hits","__autocomplete_indexName","indexName","__autocomplete_queryID","queryID","__autocomplete_algoliaCredentials","createAlgoliaRequester","_typeof","requester","facetHits","type","props"],"mappings":";6mFAAO,SAASA,EAAwBC,EAAQC,GAC9C,OAAOA,EAAKC,QAAO,SAAUC,EAASC,GACpC,OAAOD,GAAWA,EAAQC,KACzBJ,GCHE,ICCIK,EAAa,CAAC,CACvBC,QAAS,oBACTC,QDHmB,WEAd,IAAMC,EAAoB,mBACpBC,EAAqB,oBCiC3B,SAASC,EAAcC,GAEc,IACpCC,EAFUD,EAAhBE,iBAEqCC,MAAMN,GACrCO,EAAaH,EAAYI,QACzBC,EA/BR,WAAkE,IAC1DC,EADmDC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAG5D,MAAO,CACLG,IAAG,WACD,OAAOJ,GAETK,IAAG,SAACC,GACF,IAAMC,EAAwCP,EAAMA,EAAME,OAAS,IAE/DK,MAAAA,OAAAA,EAAAA,EAAUC,iBAAkBF,EAAKE,cACnCR,EAAMA,EAAME,OAAS,GAAK,CACxBF,MAAOO,EAASP,MAAQM,EAAKN,MAC7BQ,cAAeD,EAASC,eAG1BR,EAAMS,KAAKH,KAeHI,CACZb,EAAa,CAAC,CAAEG,MAAOH,EAAYW,eAAe,IAAW,IAmB/D,OAhBAd,EAAYiB,SAAQ,SAACL,GACnB,IAAMM,EAAeN,EAAKV,MAAML,GAEhCQ,EAAMM,IAAI,CACRL,MAAOY,EAAa,GACpBJ,eAAe,IAGO,KAApBI,EAAa,IACfb,EAAMM,IAAI,CACRL,MAAOY,EAAa,GACpBJ,eAAe,OAKdT,EAAMK,MCpDR,SAASS,EAAwBpB,GAGW,IAFjDqB,EAAGrB,EAAHqB,IACAC,EAAStB,EAATsB,UAEMhC,EAAOiC,MAAMC,QAAQF,GAAaA,EAAa,CAACA,GAClDpB,EAAmBd,EAAwBiC,EAC7C,CAAA,oBAAkBI,OAAAC,EACfpC,GAAI,CACP,WAeF,MAZgC,iBAArBY,IASTA,EAAmBd,EAAwBiC,EAAK/B,IAAS,IAGpDS,EAAe,CAAEG,iBAAAA,IC5B1B,IAAMyB,EAAc,CAClB,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,KAELC,EAAkB,IAAIC,OAAO,OAC7BC,EAAmB,0BACnBC,EAAsBF,OAAOC,EAAiBE,QAQ7C,SAASC,EAAkB3B,EAA0B4B,GAAW,IAAAC,EAAAC,EANrD7B,EAOVf,EAAUc,EAAM4B,GAChBG,WAAoBF,EAAA7B,EAAM4B,EAAI,UAAE,IAAAC,OAAA,EAAZA,EAAcpB,iBAAiB,EACnDuB,WAAwBF,EAAA9B,EAAM4B,EAAI,UAAE,IAAAE,OAAA,EAAZA,EAAcrB,iBAAiB,EAE7D,OACGa,EAAgBW,MAZHhC,EAYiBf,EAAQe,QAXzBwB,EAAoBQ,KAAKhC,GACrCA,EAAMiC,QAAQV,GAAkB,SAACW,GAAS,OAAKd,EAAYc,MAC3DlC,IAUF+B,IAA0BD,EAKrB7C,EAAQuB,cAHNuB,ECzBJ,SAASI,EAAwBpC,GAEtC,OAAKA,EAAMqC,MAAK,SAAC9B,GAAI,OAAKA,EAAKE,iBAIxBT,EAAMsC,KAAI,SAAC/B,EAAMqB,GAAC,OAAAW,EAAAA,EAAA,GACpBhC,GAAI,GAAA,CACPE,eAAgBkB,EAAkB3B,EAAO4B,QALlC5B,EAAMsC,KAAI,SAAC/B,GAAI,OAAAgC,EAAAA,EAAA,GAAWhC,GAAI,GAAA,CAAEE,eAAe,OCCnD,SAAS+B,EAAsB9C,GAGa,IAFjDqB,EAAGrB,EAAHqB,IACAC,EAAStB,EAATsB,UAEMhC,EAAOiC,MAAMC,QAAQF,GAAaA,EAAa,CAACA,GAClDpB,EAAmBd,EAAwBiC,EAC7C,CAAA,kBAAgBI,OAAAC,EACbpC,GAAI,CACP,WAeF,MAZgC,iBAArBY,IASTA,EAAmBd,EAAwBiC,EAAK/B,IAAS,IAGpDS,EAAe,CAAEG,iBAAAA,ICtBnB,SAAS6C,EAAgBC,EAAkBC,GAChD,SAASC,EAAcC,GACrB,OAAOH,EAAc,CACnBI,aAAcD,EAAcC,aAC5BC,QAASF,EAAcG,SAASV,KAAI,SAACW,GAAC,OAAKA,EAAEC,WAC5CC,MAAK,SAACC,GAAS,OAChBA,EAAUd,KAAI,SAACe,EAAUC,GACvB,IAAAC,EAAwCV,EAAcG,SAASM,GAE/D,MAAO,CACLE,MAAOH,EACPI,SAJcF,EAARE,SAKNC,kBALiCH,EAAjBG,yBAWxB,OAAO,SACLC,GAEA,OAAO,SACLC,GAEA,OAAArB,EAAAA,EAAA,CACEI,YAAAA,EACAC,QAAAA,GACGe,GACAC,sBCzBJ,SAASC,EAAmBnE,GAMjC,IALAoD,EAAYpD,EAAZoD,aACAC,EAAOrD,EAAPqD,QAAOe,EAAApE,EACPN,WAAAA,OAAa,IAAH0E,EAAG,GAAEA,EAI6B,mBAAjChB,EAAaiB,iBACU5C,GAAAA,OAAAC,EAAO4C,GAAc5C,EAAKhC,IAE5CwB,SAAQ,SAAAqD,GAA0B,IAAvB5E,EAAO4E,EAAP5E,QAASC,EAAO2E,EAAP3E,QAChCwD,EAAaiB,gBAAgB1E,EAASC,MAI1C,IAAA4E,ECzBK,SAA2BpB,GAIhC,IAAMqB,EAAcrB,EAAaqB,aAAe,GAC1CC,EAAUD,EAAYC,SAAWD,EAAYE,aAAe,GAC5DC,EACJH,EAAYG,iBAAmBH,EAAYI,qBAAuB,GAC9DC,EAAS,2BACTC,EAAU,oBAGhB,MAAO,CAAEC,MAFKN,EAAQI,IAAWF,EAAgBE,GAEjCG,OADDP,EAAQK,IAAYH,EAAgBG,IDczBG,CAAkB9B,GAApC4B,EAAKR,EAALQ,MAAOC,EAAMT,EAANS,OAWf,OAAO7B,EACJ+B,OACC9B,EAAQT,KAAI,SAACwC,GACX,IAAQC,EAAuBD,EAAvBC,OAER,OAAAxC,EAAAA,EAAA,GAF0ByC,EAAKF,EAAgBG,IAGnC,GAAA,CACVF,OAAMxC,EAAA,CACJ2C,YAAa,EACbC,gBAAiB5F,EACjB6F,iBAAkB5F,GACfuF,SAKV5B,MAAK,SAACE,GACL,OAAOA,EAASgC,QAAQ/C,KAAI,SAACgD,EAAQC,GAAW,IAAAC,EAAA,OAAAjD,EAAAA,EAAA,GAC3C+C,GAAM,GAAA,CACTG,KAAiB,QAAbD,EAAEF,EAAOG,YAAI,IAAAD,OAAA,EAAXA,EAAalD,KAAI,SAACvB,GAAG,OAAAwB,EAAAA,EAAA,GACtBxB,GAAG,GAAA,CAEN2E,yBACEJ,EAAOhC,OAASP,EAAQwC,GAAaI,UACvCC,uBAAwBN,EAAOO,QAC/BC,kCAAmC,CACjCpB,MAAAA,EACAC,OAAAA,gBE5DL,IAAMoB,EAAyBtD,EACpCoB,EACA,0ECIK,SAAiCD,GAEpCoC,EAAOpC,EAAcd,cAIvB,IAAMmD,EAAYF,EAAuB,CACvCrC,kBAAmB,SAACL,GAAQ,OAAKA,EAAS6C,aAGtCnD,EAAUa,EAAcb,QAAQT,KAAI,SAACY,GAAK,OAAAX,EAAAA,EAAA,GAC3CW,GAAK,GAAA,CACRiD,KAAM,aAGR,OAAOF,EAAS1D,EAAAA,KACXqB,GAAa,GAAA,CAChBb,QAAAA,0BClBG,SAAkCa,GAUvC,OAREoC,EAAOpC,EAAcd,cAILiD,EAAuB,CACvCrC,kBAAmB,SAACL,GAAQ,OAAKA,EAASoC,OAGrCQ,CAAUrC,mECbZ,SAELwC,GACA,OAAOhE,EAAwBtB,EAA+BsF,qCCHzD,SAELA,GACA,OAAOhE,EAAwBI,EAA6B4D"} \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-preset-algolia/package.json b/node_modules/@algolia/autocomplete-preset-algolia/package.json index 31f8d2e..229175d 100644 --- a/node_modules/@algolia/autocomplete-preset-algolia/package.json +++ b/node_modules/@algolia/autocomplete-preset-algolia/package.json @@ -1,7 +1,7 @@ { "name": "@algolia/autocomplete-preset-algolia", "description": "Presets for building autocomplete experiences with Algolia.", - "version": "1.9.3", + "version": "1.17.7", "license": "MIT", "homepage": "https://github.com/algolia/autocomplete", "repository": "algolia/autocomplete", @@ -31,7 +31,7 @@ "watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\"" }, "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.7" }, "devDependencies": { "algoliasearch": "4.16.0" diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteOptions.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteOptions.d.ts index 5a5d760..d992890 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteOptions.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteOptions.d.ts @@ -6,6 +6,7 @@ import { AutocompletePlugin } from './AutocompletePlugin'; import { Reshape } from './AutocompleteReshape'; import { AutocompleteSource, InternalAutocompleteSource } from './AutocompleteSource'; import { AutocompleteState } from './AutocompleteState'; +export declare type AutocompleteEnterKeyHint = 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'; export interface OnSubmitParams extends AutocompleteScopeApi { state: AutocompleteState; event: any; @@ -55,6 +56,20 @@ export interface AutocompleteOptions { * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-onstatechange */ onStateChange?(props: OnStateChangeProps): void; + /** + * The action label or icon to present for the enter key on virtual keyboards. + * + * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-enterkeyhint + */ + enterKeyHint?: AutocompleteEnterKeyHint; + /** + * Whether to update the search input value in the middle of a + * composition session. + * + * @default false + * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-ignorecompositionevents + */ + ignoreCompositionEvents?: boolean; /** * The placeholder text to show in the search input when there's no query. * @@ -165,6 +180,8 @@ export interface InternalAutocompleteOptions extends Aut debug: boolean; id: string; onStateChange(props: OnStateChangeProps): void; + enterKeyHint: AutocompleteEnterKeyHint | undefined; + ignoreCompositionEvents: boolean; placeholder: string; autoFocus: boolean; defaultActiveItemId: number | null; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompletePropGetters.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompletePropGetters.d.ts index 7f5bb4c..1f99cef 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompletePropGetters.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompletePropGetters.d.ts @@ -1,4 +1,5 @@ import { BaseItem } from './AutocompleteApi'; +import { AutocompleteEnterKeyHint } from './AutocompleteOptions'; import { InternalAutocompleteSource } from './AutocompleteSource'; export interface AutocompletePropGetters { getEnvironmentProps: GetEnvironmentProps; @@ -26,7 +27,7 @@ export declare type GetRootProps = (props?: { role: 'combobox'; 'aria-expanded': boolean; 'aria-haspopup': boolean | 'dialog' | 'menu' | 'true' | 'false' | 'grid' | 'listbox' | 'tree' | undefined; - 'aria-owns': string | undefined; + 'aria-controls': string | undefined; 'aria-labelledby': string; }; export declare type GetFormProps = (props: { @@ -41,7 +42,6 @@ export declare type GetFormProps = (props: { }; export declare type GetLabelProps = (props?: { [key: string]: unknown; - sourceIndex?: number; }) => { htmlFor: string; id: string; @@ -58,7 +58,7 @@ export declare type GetInputProps = (props: autoComplete: 'on' | 'off'; autoCorrect: 'on' | 'off'; autoCapitalize: 'on' | 'off'; - enterKeyHint: 'go' | 'search'; + enterKeyHint: AutocompleteEnterKeyHint; spellCheck: 'false'; maxLength: number; type: 'search'; @@ -67,6 +67,7 @@ export declare type GetInputProps = (props: 'aria-controls': string | undefined; 'aria-labelledby': string; onChange(event: TEvent): void; + onCompositionEnd(event: TEvent): void; onKeyDown(event: TKeyboardEvent): void; onFocus(event: TEvent): void; onBlur(): void; @@ -80,7 +81,7 @@ export declare type GetPanelProps = (props?: { }; export declare type GetListProps = (props?: { [key: string]: unknown; - sourceIndex?: number; + source: InternalAutocompleteSource; }) => { role: 'listbox'; 'aria-labelledby': string; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteSource.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteSource.d.ts index d6e0b69..7b90dfe 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteSource.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/core/AutocompleteSource.d.ts @@ -1,7 +1,8 @@ -import type { FacetHit, Hit } from '@algolia/client-search'; +import type { Hit } from '@algolia/client-search'; import type { MaybePromise } from '../MaybePromise'; -import type { SearchForFacetValuesResponse, SearchResponse } from '../preset-algolia/algoliasearch'; +import type { FacetHit, SearchForFacetValuesResponse } from '../preset-algolia/algoliasearch'; import type { RequesterDescription } from '../preset-algolia/createRequester'; +import type { SearchResponse } from '../SearchResponse'; import { AutocompleteScopeApi, BaseItem } from './AutocompleteApi'; import { GetSourcesParams } from './AutocompleteOptions'; import { AutocompleteState } from './AutocompleteState'; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.d.ts index 49c4621..9d50a2a 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.d.ts @@ -1 +1 @@ -export declare function getAttributeValueByPath(record: TRecord, path: string[]): any; +export declare function getAttributeValueByPath(record: TRecord, path: Array): any; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/index.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/index.d.ts index 22d8f26..915857d 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/index.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/index.d.ts @@ -10,6 +10,7 @@ export * from './isEqual'; export * from './MaybePromise'; export * from './noop'; export * from './safelyRunOnBrowser'; +export * from './SearchResponse'; export * from './UserAgent'; export * from './userAgents'; export * from './version'; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/index.js b/node_modules/@algolia/autocomplete-shared/dist/esm/index.js index 6bd4615..18174ed 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/index.js +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/index.js @@ -10,6 +10,7 @@ export * from './isEqual'; export * from './MaybePromise'; export * from './noop'; export * from './safelyRunOnBrowser'; +export * from './SearchResponse'; export * from './UserAgent'; export * from './userAgents'; export * from './version'; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteTranslations.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteTranslations.d.ts index 4238a48..45e6c5c 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteTranslations.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/js/AutocompleteTranslations.d.ts @@ -2,4 +2,5 @@ export declare type AutocompleteTranslations = { detachedCancelButtonText: string; clearButtonTitle: string; submitButtonTitle: string; + detachedSearchButtonTitle: string; }; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/js/HighlightHitParams.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/js/HighlightHitParams.d.ts index b81ec32..711e158 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/js/HighlightHitParams.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/js/HighlightHitParams.d.ts @@ -8,7 +8,7 @@ export declare type HighlightHitParams = { * * You can use the array syntax to reference nested attributes. */ - attribute: keyof THit | string[]; + attribute: keyof THit | Array; /** * The tag name to use for highlighted parts. * diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/algoliasearch.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/algoliasearch.d.ts index ad0bcde..d69aca2 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/algoliasearch.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/algoliasearch.d.ts @@ -1,6 +1,6 @@ import * as ClientSearch from '@algolia/client-search'; import type * as AlgoliaSearch from 'algoliasearch/lite'; -declare type AnyToUnknown = (any extends TSubject ? true : false) extends true ? unknown : TSubject; +declare type AnyToUnknown = (0 extends 1 & TSubject ? true : false) extends true ? unknown : TSubject; declare type SearchClientShape = { search: unknown; }; @@ -51,4 +51,10 @@ export declare type SnippetResult = PickForClient<{ /** @ts-ignore */ v5: AlgoliaSearch.SnippetResult; }>; +export declare type FacetHit = PickForClient<{ + /** @ts-ignore */ + v4: ClientSearch.FacetHit; + /** @ts-ignore */ + v5: AlgoliaSearch.FacetHits; +}>; export {}; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/createRequester.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/createRequester.d.ts index 37533e9..a32c5bf 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/createRequester.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/preset-algolia/createRequester.d.ts @@ -1,5 +1,6 @@ +import type { SearchResponse } from '../SearchResponse'; import { UserAgent } from '../UserAgent'; -import { MultipleQueriesQuery, SearchClient, SearchForFacetValuesResponse, SearchResponse } from './algoliasearch'; +import { MultipleQueriesQuery, SearchClient, SearchForFacetValuesResponse } from './algoliasearch'; export interface SearchParams { /** * The initialized Algolia search client. diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/version.d.ts b/node_modules/@algolia/autocomplete-shared/dist/esm/version.d.ts index 2441c23..570652f 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/version.d.ts +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/version.d.ts @@ -1 +1 @@ -export declare const version = "1.9.3"; +export declare const version = "1.17.7"; diff --git a/node_modules/@algolia/autocomplete-shared/dist/esm/version.js b/node_modules/@algolia/autocomplete-shared/dist/esm/version.js index 7c3389a..81adcce 100644 --- a/node_modules/@algolia/autocomplete-shared/dist/esm/version.js +++ b/node_modules/@algolia/autocomplete-shared/dist/esm/version.js @@ -1 +1 @@ -export var version = '1.9.3'; \ No newline at end of file +export var version = '1.17.7'; \ No newline at end of file diff --git a/node_modules/@algolia/autocomplete-shared/package.json b/node_modules/@algolia/autocomplete-shared/package.json index 73d6750..70ab2d9 100644 --- a/node_modules/@algolia/autocomplete-shared/package.json +++ b/node_modules/@algolia/autocomplete-shared/package.json @@ -1,7 +1,7 @@ { "name": "@algolia/autocomplete-shared", "description": "Shared utils for Autocomplete packages.", - "version": "1.9.3", + "version": "1.17.7", "license": "MIT", "homepage": "https://github.com/algolia/autocomplete", "repository": "algolia/autocomplete", diff --git a/node_modules/@algolia/client-analytics/dist/client-analytics.cjs.js b/node_modules/@algolia/client-analytics/dist/client-analytics.cjs.js deleted file mode 100644 index ea5ead7..0000000 --- a/node_modules/@algolia/client-analytics/dist/client-analytics.cjs.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var clientCommon = require('@algolia/client-common'); -var transporter = require('@algolia/transporter'); -var requesterCommon = require('@algolia/requester-common'); - -const createAnalyticsClient = options => { - const region = options.region || 'us'; - const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, options.appId, options.apiKey); - const transporter$1 = transporter.createTransporter({ - hosts: [{ url: `analytics.${region}.algolia.com` }], - ...options, - headers: { - ...auth.headers(), - ...{ 'content-type': 'application/json' }, - ...options.headers, - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters, - }, - }); - const appId = options.appId; - return clientCommon.addMethods({ appId, transporter: transporter$1 }, options.methods); -}; - -const addABTest = (base) => { - return (abTest, requestOptions) => { - return base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: '2/abtests', - data: abTest, - }, requestOptions); - }; -}; - -const deleteABTest = (base) => { - return (abTestID, requestOptions) => { - return base.transporter.write({ - method: requesterCommon.MethodEnum.Delete, - path: clientCommon.encode('2/abtests/%s', abTestID), - }, requestOptions); - }; -}; - -const getABTest = (base) => { - return (abTestID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('2/abtests/%s', abTestID), - }, requestOptions); - }; -}; - -const getABTests = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '2/abtests', - }, requestOptions); - }; -}; - -const stopABTest = (base) => { - return (abTestID, requestOptions) => { - return base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('2/abtests/%s/stop', abTestID), - }, requestOptions); - }; -}; - -exports.addABTest = addABTest; -exports.createAnalyticsClient = createAnalyticsClient; -exports.deleteABTest = deleteABTest; -exports.getABTest = getABTest; -exports.getABTests = getABTests; -exports.stopABTest = stopABTest; diff --git a/node_modules/@algolia/client-analytics/dist/client-analytics.d.ts b/node_modules/@algolia/client-analytics/dist/client-analytics.d.ts deleted file mode 100644 index 9f616be..0000000 --- a/node_modules/@algolia/client-analytics/dist/client-analytics.d.ts +++ /dev/null @@ -1,251 +0,0 @@ -import { ClientTransporterOptions } from '@algolia/client-common'; -import { CreateClient } from '@algolia/client-common'; -import { RequestOptions } from '@algolia/transporter'; -import { SearchOptions } from '@algolia/client-search'; -import { Transporter } from '@algolia/transporter'; - -export declare type ABTest = { - /** - * The ab test name. - */ - readonly name: string; - /** - * The ab test list of variants. - */ - readonly variants: readonly Variant[]; - /** - * The ab test end date, if any. - */ - readonly endAt: string; -}; - -export declare const addABTest: (base: AnalyticsClient) => (abTest: ABTest, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type AddABTestResponse = { - /** - * The ab test unique identifier. - */ - abTestID: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * The index name where the ab test is attached to. - */ - index: string; -}; - -export declare type AnalyticsClient = { - /** - * The application id. - */ - readonly appId: string; - /** - * The underlying transporter. - */ - readonly transporter: Transporter; -}; - -export declare type AnalyticsClientOptions = { - /** - * The application id. - */ - readonly appId: string; - /** - * The api key. - */ - readonly apiKey: string; - /** - * The prefered region. - */ - readonly region?: 'de' | 'us'; -}; - -export declare const createAnalyticsClient: CreateClient; - -export declare const deleteABTest: (base: AnalyticsClient) => (abTestID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type DeleteABTestResponse = { - /** - * The ab test unique identifier. - */ - abTestID: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * The index name where the ab test was attached to. - */ - index: string; -}; - -export declare const getABTest: (base: AnalyticsClient) => (abTestID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type GetABTestResponse = { - /** - * The ab test name. - */ - name: string; - /** - * The ab test status. - */ - status: string; - /** - * The ab test list of variants. - */ - variants: VariantResponse[]; - /** - * The ab test end date, if any. - */ - endAt: string; - /** - * The ab test created date, if any. - */ - createdAt: string; - /** - * The ab test updated date. - */ - updatedAt: string; - /** - * The ab test unique identifier. - */ - abTestID: number; - /** - * The ab test significance based on click data. Should be higher than 0.95 to be considered significant - no matter which variant is winning. - */ - clickSignificance: number; - /** - * - * The ab test significance based on conversion data. Should be higher than 0.95 to be considered significant - no matter which variant is winning. - */ - conversionSignificance: number; -}; - -export declare const getABTests: (base: AnalyticsClient) => (requestOptions?: (RequestOptions & GetABTestsOptions) | undefined) => Readonly>; - -export declare type GetABTestsOptions = { - /** - * The number of ab tests to skip from the biginning of the list. - */ - readonly offset?: number; - /** - * The limit of the number of ab tests returned. - */ - readonly limit?: number; - /** - * Filters the returned ab tests by any indices starting with the - * provided prefix that are assigned to either variant of an ab test. - */ - readonly indexPrefix?: string; - /** - * Filters the returned ab tests by any indices ending with the - * provided suffix that are assigned to either variant of an ab test. - */ - readonly indexSuffix?: string; -}; - -export declare type GetABTestsResponse = { - /** - * The number of ab tests within this response. - */ - count: number; - /** - * The total of ab tests. - */ - total: number; - /** - * The list of ab tests. - */ - abtests: GetABTestResponse[] | null; -}; - -export declare const stopABTest: (base: AnalyticsClient) => (abTestID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type StopABTestResponse = { - /** - * The ab test unique identifier. - */ - abTestID: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * The index name where the ab test is attached to. - */ - index: string; -}; - -export declare type Variant = { - /** - * The index name. - */ - readonly index: string; - /** - * Description of the variant. Useful when seing the results in the dashboard or via the API. - */ - readonly description?: string; - /** - * Percentage of the traffic that should be going to the variant. The sum of the percentage should be equal to 100. - */ - readonly trafficPercentage: number; - /** - * The search parameters. - */ - readonly customSearchParameters?: SearchOptions; -}; - -export declare type VariantResponse = Variant & { - /** - * Average click position for the variant. - */ - averageClickPosition?: number; - /** - * Distinct click count for the variant. - */ - clickCount?: number; - /** - * Click through rate for the variant. - */ - clickThroughRate?: number; - /** - * Click through rate for the variant. - */ - conversionCount?: number; - /** - * Distinct conversion count for the variant. - */ - conversionRate?: number; - /** - * No result count. - */ - noResultCount?: number; - /** - * Tracked search count. - */ - trackedSearchCount?: number; - /** - * Search count. - */ - searchCount?: number; - /** - * User count. - */ - userCount?: number; - /** - * Count of the tracked searches attributed to outlier traffic that were removed from the A/B test. - */ - outlierTrackedSearchesCount?: number; - /** - * Count of users attributed to outlier traffic that were removed from the A/B test. - */ - outlierUsersCount?: number; - /** - * The search parameters. - */ - customSearchParameters?: SearchOptions; -}; - -export { } diff --git a/node_modules/@algolia/client-analytics/dist/client-analytics.esm.js b/node_modules/@algolia/client-analytics/dist/client-analytics.esm.js deleted file mode 100644 index 0a2da9c..0000000 --- a/node_modules/@algolia/client-analytics/dist/client-analytics.esm.js +++ /dev/null @@ -1,71 +0,0 @@ -import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common'; -import { createTransporter } from '@algolia/transporter'; -import { MethodEnum } from '@algolia/requester-common'; - -const createAnalyticsClient = options => { - const region = options.region || 'us'; - const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey); - const transporter = createTransporter({ - hosts: [{ url: `analytics.${region}.algolia.com` }], - ...options, - headers: { - ...auth.headers(), - ...{ 'content-type': 'application/json' }, - ...options.headers, - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters, - }, - }); - const appId = options.appId; - return addMethods({ appId, transporter }, options.methods); -}; - -const addABTest = (base) => { - return (abTest, requestOptions) => { - return base.transporter.write({ - method: MethodEnum.Post, - path: '2/abtests', - data: abTest, - }, requestOptions); - }; -}; - -const deleteABTest = (base) => { - return (abTestID, requestOptions) => { - return base.transporter.write({ - method: MethodEnum.Delete, - path: encode('2/abtests/%s', abTestID), - }, requestOptions); - }; -}; - -const getABTest = (base) => { - return (abTestID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('2/abtests/%s', abTestID), - }, requestOptions); - }; -}; - -const getABTests = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '2/abtests', - }, requestOptions); - }; -}; - -const stopABTest = (base) => { - return (abTestID, requestOptions) => { - return base.transporter.write({ - method: MethodEnum.Post, - path: encode('2/abtests/%s/stop', abTestID), - }, requestOptions); - }; -}; - -export { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest }; diff --git a/node_modules/@algolia/client-analytics/index.js b/node_modules/@algolia/client-analytics/index.js index 3588503..21e26aa 100644 --- a/node_modules/@algolia/client-analytics/index.js +++ b/node_modules/@algolia/client-analytics/index.js @@ -1,2 +1 @@ -// eslint-disable-next-line functional/immutable-data, import/no-commonjs -module.exports = require('./dist/client-analytics.cjs.js'); +module.exports = require('./dist/builds/node.cjs'); diff --git a/node_modules/@algolia/client-analytics/package.json b/node_modules/@algolia/client-analytics/package.json index 2dbf595..aa029b3 100644 --- a/node_modules/@algolia/client-analytics/package.json +++ b/node_modules/@algolia/client-analytics/package.json @@ -1,24 +1,69 @@ { - "name": "@algolia/client-analytics", - "version": "4.22.0", - "private": false, + "version": "5.48.0", "repository": { "type": "git", - "url": "git://github.com/algolia/algoliasearch-client-javascript.git" + "url": "git+https://github.com/algolia/algoliasearch-client-javascript.git" }, + "homepage": "https://github.com/algolia/algoliasearch-client-javascript/tree/main/packages/client-analytics#readme", + "type": "module", "license": "MIT", - "sideEffects": false, - "main": "index.js", - "module": "dist/client-analytics.esm.js", - "types": "dist/client-analytics.d.ts", + "author": "Algolia", + "scripts": { + "build": "yarn clean && yarn tsup && yarn rollup -c rollup.config.js", + "clean": "rm -rf ./dist || true", + "test:bundle": "publint . && attw --pack ." + }, + "name": "@algolia/client-analytics", + "description": "JavaScript client for client-analytics", + "exports": { + ".": { + "node": { + "types": { + "import": "./dist/node.d.ts", + "module": "./dist/node.d.ts", + "require": "./dist/node.d.cts" + }, + "import": "./dist/builds/node.js", + "module": "./dist/builds/node.js", + "require": "./dist/builds/node.cjs" + }, + "worker": { + "types": "./dist/worker.d.ts", + "default": "./dist/builds/worker.js" + }, + "default": { + "types": "./dist/browser.d.ts", + "module": "./dist/builds/browser.js", + "import": "./dist/builds/browser.js", + "default": "./dist/builds/browser.umd.js" + } + }, + "./dist/builds/*": "./dist/builds/*.js" + }, + "jsdelivr": "./dist/builds/browser.umd.js", + "unpkg": "./dist/builds/browser.umd.js", + "react-native": "./dist/builds/browser.js", "files": [ + "dist", "index.js", - "dist" + "index.d.ts" ], "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/client-search": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" - } + "@algolia/client-common": "5.48.0", + "@algolia/requester-browser-xhr": "5.48.0", + "@algolia/requester-fetch": "5.48.0", + "@algolia/requester-node-http": "5.48.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "0.18.2", + "@types/node": "25.1.0", + "publint": "0.3.17", + "rollup": "4.57.1", + "tsup": "8.5.1", + "typescript": "5.9.3" + }, + "engines": { + "node": ">= 14.0.0" + }, + "gitHead": "b39976bd859ef66e65d2db182d69853a91a71139" } diff --git a/node_modules/@algolia/client-common/dist/client-common.cjs.js b/node_modules/@algolia/client-common/dist/client-common.cjs.js deleted file mode 100644 index ee51e4e..0000000 --- a/node_modules/@algolia/client-common/dist/client-common.cjs.js +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -function createAuth(authMode, appId, apiKey) { - const credentials = { - 'x-algolia-api-key': apiKey, - 'x-algolia-application-id': appId, - }; - return { - headers() { - return authMode === AuthMode.WithinHeaders ? credentials : {}; - }, - queryParameters() { - return authMode === AuthMode.WithinQueryParameters ? credentials : {}; - }, - }; -} - -function createRetryablePromise(callback) { - let retriesCount = 0; // eslint-disable-line functional/no-let - const retry = () => { - retriesCount++; - return new Promise((resolve) => { - setTimeout(() => { - resolve(callback(retry)); - }, Math.min(100 * retriesCount, 1000)); - }); - }; - return callback(retry); -} - -function createWaitablePromise(promise, wait = (_response, _requestOptions) => { - return Promise.resolve(); -}) { - // eslint-disable-next-line functional/immutable-data - return Object.assign(promise, { - wait(requestOptions) { - return createWaitablePromise(promise - .then(response => Promise.all([wait(response, requestOptions), response])) - .then(promiseResults => promiseResults[1])); - }, - }); -} - -// eslint-disable-next-line functional/prefer-readonly-type -function shuffle(array) { - let c = array.length - 1; // eslint-disable-line functional/no-let - // eslint-disable-next-line functional/no-loop-statement - for (c; c > 0; c--) { - const b = Math.floor(Math.random() * (c + 1)); - const a = array[c]; - array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign - array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign - } - return array; -} -function addMethods(base, methods) { - if (!methods) { - return base; - } - Object.keys(methods).forEach(key => { - // eslint-disable-next-line functional/immutable-data, no-param-reassign - base[key] = methods[key](base); - }); - return base; -} -function encode(format, ...args) { - // eslint-disable-next-line functional/no-let - let i = 0; - return format.replace(/%s/g, () => encodeURIComponent(args[i++])); -} - -const version = '4.22.0'; - -const destroy = (base) => { - return () => { - return base.transporter.requester.destroy(); - }; -}; - -const AuthMode = { - /** - * If auth credentials should be in query parameters. - */ - WithinQueryParameters: 0, - /** - * If auth credentials should be in headers. - */ - WithinHeaders: 1, -}; - -exports.AuthMode = AuthMode; -exports.addMethods = addMethods; -exports.createAuth = createAuth; -exports.createRetryablePromise = createRetryablePromise; -exports.createWaitablePromise = createWaitablePromise; -exports.destroy = destroy; -exports.encode = encode; -exports.shuffle = shuffle; -exports.version = version; diff --git a/node_modules/@algolia/client-common/dist/client-common.d.ts b/node_modules/@algolia/client-common/dist/client-common.d.ts deleted file mode 100644 index 8e97f47..0000000 --- a/node_modules/@algolia/client-common/dist/client-common.d.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Headers } from '@algolia/transporter'; -import { HostOptions } from '@algolia/transporter'; -import { QueryParameters } from '@algolia/transporter'; -import { RequestOptions } from '@algolia/transporter'; -import { Transporter } from '@algolia/transporter'; -import { TransporterOptions } from '@algolia/transporter'; - -declare type AddedMethods> = TBase & { - [TKey in keyof TMethods extends string ? keyof TMethods : never]: ReturnType; -}; - -export declare function addMethods>(base: TBase, methods?: TMethods): AddedMethods; - -export declare type Auth = { - /** - * Returns the headers related to auth. Should be - * merged to the transporter headers. - */ - readonly headers: () => Readonly>; - /** - * Returns the query parameters related to auth. Should be - * merged to the query parameters headers. - */ - readonly queryParameters: () => Readonly>; -}; - -export declare const AuthMode: Readonly>; - -export declare type AuthModeType = 0 | 1; - -export declare type ClientTransporterOptions = Pick & Exclude & Exclude> & { - /** - * The hosts used by the requester. - */ - readonly hosts?: readonly HostOptions[]; - /** - * The headers used by the requester. The transporter - * layer may add some extra headers during the request - * for the user agent, and others. - */ - readonly headers?: Headers; - /** - * The query parameters used by the requester. The transporter - * layer may add some extra headers during the request - * for the user agent, and others. - */ - readonly queryParameters?: QueryParameters; -}; - -export declare function createAuth(authMode: AuthModeType, appId: string, apiKey: string): Auth; - -export declare type CreateClient = (...args: any) => any; -}>(options: TOptions & { - readonly methods?: TMethods; -}) => TClient & { - [key in keyof TMethods extends string ? keyof TMethods : never]: ReturnType; -}; - -export declare function createRetryablePromise(callback: (retry: () => Promise) => Promise): Promise; - -export declare function createWaitablePromise(promise: Readonly>, wait?: Wait): Readonly>; - -export declare const destroy: (base: { - readonly transporter: Transporter; -}) => () => Readonly>; - -export declare function encode(format: string, ...args: readonly any[]): string; - -declare type Methods = { - readonly [key: string]: (base: TBase) => (...args: any[]) => any; -}; - -export declare function shuffle(array: TData[]): TData[]; - -export declare const version = "4.22.0"; - -export declare type Wait = ( -/** - * The original response. - */ -response: TResponse, -/** - * The custom request options. - */ -requestOptions?: RequestOptions) => Readonly>; - -export declare type WaitablePromise = Readonly> & { - /** - * Wait for a task to complete before executing the next line of code, to synchronize index updates. - * - * All write operations in Algolia are asynchronous by design. It means that when you add or - * update an object to your index, our servers will reply to your request with a taskID as - * soon as they understood the write operation. The actual insert and indexing will be - * done after replying to your code. - * - * You can wait for a task to complete by using this method. - */ - readonly wait: (requestOptions?: RequestOptions) => Readonly>; -}; - -export { } diff --git a/node_modules/@algolia/client-common/dist/client-common.esm.js b/node_modules/@algolia/client-common/dist/client-common.esm.js deleted file mode 100644 index 11f3554..0000000 --- a/node_modules/@algolia/client-common/dist/client-common.esm.js +++ /dev/null @@ -1,89 +0,0 @@ -function createAuth(authMode, appId, apiKey) { - const credentials = { - 'x-algolia-api-key': apiKey, - 'x-algolia-application-id': appId, - }; - return { - headers() { - return authMode === AuthMode.WithinHeaders ? credentials : {}; - }, - queryParameters() { - return authMode === AuthMode.WithinQueryParameters ? credentials : {}; - }, - }; -} - -function createRetryablePromise(callback) { - let retriesCount = 0; // eslint-disable-line functional/no-let - const retry = () => { - retriesCount++; - return new Promise((resolve) => { - setTimeout(() => { - resolve(callback(retry)); - }, Math.min(100 * retriesCount, 1000)); - }); - }; - return callback(retry); -} - -function createWaitablePromise(promise, wait = (_response, _requestOptions) => { - return Promise.resolve(); -}) { - // eslint-disable-next-line functional/immutable-data - return Object.assign(promise, { - wait(requestOptions) { - return createWaitablePromise(promise - .then(response => Promise.all([wait(response, requestOptions), response])) - .then(promiseResults => promiseResults[1])); - }, - }); -} - -// eslint-disable-next-line functional/prefer-readonly-type -function shuffle(array) { - let c = array.length - 1; // eslint-disable-line functional/no-let - // eslint-disable-next-line functional/no-loop-statement - for (c; c > 0; c--) { - const b = Math.floor(Math.random() * (c + 1)); - const a = array[c]; - array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign - array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign - } - return array; -} -function addMethods(base, methods) { - if (!methods) { - return base; - } - Object.keys(methods).forEach(key => { - // eslint-disable-next-line functional/immutable-data, no-param-reassign - base[key] = methods[key](base); - }); - return base; -} -function encode(format, ...args) { - // eslint-disable-next-line functional/no-let - let i = 0; - return format.replace(/%s/g, () => encodeURIComponent(args[i++])); -} - -const version = '4.22.0'; - -const destroy = (base) => { - return () => { - return base.transporter.requester.destroy(); - }; -}; - -const AuthMode = { - /** - * If auth credentials should be in query parameters. - */ - WithinQueryParameters: 0, - /** - * If auth credentials should be in headers. - */ - WithinHeaders: 1, -}; - -export { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version }; diff --git a/node_modules/@algolia/client-common/index.js b/node_modules/@algolia/client-common/index.js index ddbe0e4..4c570e1 100644 --- a/node_modules/@algolia/client-common/index.js +++ b/node_modules/@algolia/client-common/index.js @@ -1,2 +1 @@ -// eslint-disable-next-line functional/immutable-data, import/no-commonjs -module.exports = require('./dist/client-common.cjs.js'); +module.exports = require('./dist/common.cjs'); diff --git a/node_modules/@algolia/client-common/package.json b/node_modules/@algolia/client-common/package.json index 4d1cf55..e601c0a 100644 --- a/node_modules/@algolia/client-common/package.json +++ b/node_modules/@algolia/client-common/package.json @@ -1,22 +1,51 @@ { "name": "@algolia/client-common", - "version": "4.22.0", - "private": false, + "version": "5.48.0", + "description": "Common package for the Algolia JavaScript API client.", "repository": { "type": "git", - "url": "git://github.com/algolia/algoliasearch-client-javascript.git" + "url": "git+https://github.com/algolia/algoliasearch-client-javascript.git" }, + "homepage": "https://github.com/algolia/algoliasearch-client-javascript#readme", "license": "MIT", - "sideEffects": false, - "main": "index.js", - "module": "dist/client-common.esm.js", - "types": "dist/client-common.d.ts", + "author": "Algolia", + "type": "module", "files": [ + "dist", "index.js", - "dist" + "index.d.ts" ], - "dependencies": { - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" - } + "exports": { + ".": { + "types": { + "import": "./dist/common.d.ts", + "module": "./dist/common.d.ts", + "require": "./dist/common.d.cts" + }, + "import": "./dist/common.js", + "module": "./dist/common.js", + "require": "./dist/common.cjs" + }, + "./src/*": "./src/*.ts" + }, + "scripts": { + "build": "yarn clean && yarn tsup", + "clean": "rm -rf ./dist || true", + "test": "tsc --noEmit && vitest --run", + "test:bundle": "publint . && attw --pack ." + }, + "devDependencies": { + "@arethetypeswrong/cli": "0.18.2", + "@types/node": "24.10.9", + "jsdom": "27.4.0", + "publint": "0.3.17", + "ts-node": "10.9.2", + "tsup": "8.5.1", + "typescript": "5.9.3", + "vitest": "4.0.18" + }, + "engines": { + "node": ">= 14.0.0" + }, + "gitHead": "b39976bd859ef66e65d2db182d69853a91a71139" } diff --git a/node_modules/@algolia/client-personalization/dist/client-personalization.cjs.js b/node_modules/@algolia/client-personalization/dist/client-personalization.cjs.js deleted file mode 100644 index ee8dc17..0000000 --- a/node_modules/@algolia/client-personalization/dist/client-personalization.cjs.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var clientCommon = require('@algolia/client-common'); -var transporter = require('@algolia/transporter'); -var requesterCommon = require('@algolia/requester-common'); - -const createPersonalizationClient = options => { - const region = options.region || 'us'; - const auth = clientCommon.createAuth(clientCommon.AuthMode.WithinHeaders, options.appId, options.apiKey); - const transporter$1 = transporter.createTransporter({ - hosts: [{ url: `personalization.${region}.algolia.com` }], - ...options, - headers: { - ...auth.headers(), - ...{ 'content-type': 'application/json' }, - ...options.headers, - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters, - }, - }); - return clientCommon.addMethods({ appId: options.appId, transporter: transporter$1 }, options.methods); -}; - -const getPersonalizationStrategy = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/strategies/personalization', - }, requestOptions); - }; -}; - -const setPersonalizationStrategy = (base) => { - return (personalizationStrategy, requestOptions) => { - return base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: '1/strategies/personalization', - data: personalizationStrategy, - }, requestOptions); - }; -}; - -exports.createPersonalizationClient = createPersonalizationClient; -exports.getPersonalizationStrategy = getPersonalizationStrategy; -exports.setPersonalizationStrategy = setPersonalizationStrategy; diff --git a/node_modules/@algolia/client-personalization/dist/client-personalization.d.ts b/node_modules/@algolia/client-personalization/dist/client-personalization.d.ts deleted file mode 100644 index 817906b..0000000 --- a/node_modules/@algolia/client-personalization/dist/client-personalization.d.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { ClientTransporterOptions } from '@algolia/client-common'; -import { CreateClient } from '@algolia/client-common'; -import { RequestOptions } from '@algolia/transporter'; -import { Transporter } from '@algolia/transporter'; - -export declare const createPersonalizationClient: CreateClient; - -export declare const getPersonalizationStrategy: (base: PersonalizationClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type GetPersonalizationStrategyResponse = { - /** - * Events scoring - */ - eventsScoring: Array<{ - eventName: string; - eventType: string; - score: number; - }>; - /** - * Facets scoring - */ - facetsScoring: Array<{ - facetName: string; - score: number; - }>; - /** - * Personalization impact - */ - personalizationImpact: number; -}; - -export declare type PersonalizationClient = { - /** - * The application id. - */ - readonly appId: string; - /** - * The underlying transporter. - */ - readonly transporter: Transporter; -}; - -export declare type PersonalizationClientOptions = { - /** - * The application id. - */ - readonly appId: string; - /** - * The api key. - */ - readonly apiKey: string; - /** - * The prefered region. - */ - readonly region?: string; -}; - -export declare type PersonalizationStrategy = { - /** - * Events scoring - */ - readonly eventsScoring: ReadonlyArray<{ - readonly eventName: string; - readonly eventType: string; - readonly score: number; - }>; - /** - * Facets scoring - */ - readonly facetsScoring: ReadonlyArray<{ - readonly facetName: string; - readonly score: number; - }>; - /** - * Personalization impact - */ - readonly personalizationImpact: number; -}; - -export declare const setPersonalizationStrategy: (base: PersonalizationClient) => (personalizationStrategy: PersonalizationStrategy, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type SetPersonalizationStrategyResponse = { - /** - * The status code. - */ - status?: number; - /** - * The message. - */ - message: string; -}; - -export { } diff --git a/node_modules/@algolia/client-personalization/dist/client-personalization.esm.js b/node_modules/@algolia/client-personalization/dist/client-personalization.esm.js deleted file mode 100644 index a5000d0..0000000 --- a/node_modules/@algolia/client-personalization/dist/client-personalization.esm.js +++ /dev/null @@ -1,43 +0,0 @@ -import { createAuth, AuthMode, addMethods } from '@algolia/client-common'; -import { createTransporter } from '@algolia/transporter'; -import { MethodEnum } from '@algolia/requester-common'; - -const createPersonalizationClient = options => { - const region = options.region || 'us'; - const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey); - const transporter = createTransporter({ - hosts: [{ url: `personalization.${region}.algolia.com` }], - ...options, - headers: { - ...auth.headers(), - ...{ 'content-type': 'application/json' }, - ...options.headers, - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters, - }, - }); - return addMethods({ appId: options.appId, transporter }, options.methods); -}; - -const getPersonalizationStrategy = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/strategies/personalization', - }, requestOptions); - }; -}; - -const setPersonalizationStrategy = (base) => { - return (personalizationStrategy, requestOptions) => { - return base.transporter.write({ - method: MethodEnum.Post, - path: '1/strategies/personalization', - data: personalizationStrategy, - }, requestOptions); - }; -}; - -export { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy }; diff --git a/node_modules/@algolia/client-personalization/index.js b/node_modules/@algolia/client-personalization/index.js index df07d60..21e26aa 100644 --- a/node_modules/@algolia/client-personalization/index.js +++ b/node_modules/@algolia/client-personalization/index.js @@ -1,2 +1 @@ -// eslint-disable-next-line functional/immutable-data, import/no-commonjs -module.exports = require('./dist/client-personalization.cjs.js'); +module.exports = require('./dist/builds/node.cjs'); diff --git a/node_modules/@algolia/client-personalization/package.json b/node_modules/@algolia/client-personalization/package.json index e1111fb..a99067e 100644 --- a/node_modules/@algolia/client-personalization/package.json +++ b/node_modules/@algolia/client-personalization/package.json @@ -1,23 +1,69 @@ { - "name": "@algolia/client-personalization", - "version": "4.22.0", - "private": false, + "version": "5.48.0", "repository": { "type": "git", - "url": "git://github.com/algolia/algoliasearch-client-javascript.git" + "url": "git+https://github.com/algolia/algoliasearch-client-javascript.git" }, + "homepage": "https://github.com/algolia/algoliasearch-client-javascript/tree/main/packages/client-personalization#readme", + "type": "module", "license": "MIT", - "sideEffects": false, - "main": "index.js", - "module": "dist/client-personalization.esm.js", - "types": "dist/client-personalization.d.ts", + "author": "Algolia", + "scripts": { + "build": "yarn clean && yarn tsup && yarn rollup -c rollup.config.js", + "clean": "rm -rf ./dist || true", + "test:bundle": "publint . && attw --pack ." + }, + "name": "@algolia/client-personalization", + "description": "JavaScript client for client-personalization", + "exports": { + ".": { + "node": { + "types": { + "import": "./dist/node.d.ts", + "module": "./dist/node.d.ts", + "require": "./dist/node.d.cts" + }, + "import": "./dist/builds/node.js", + "module": "./dist/builds/node.js", + "require": "./dist/builds/node.cjs" + }, + "worker": { + "types": "./dist/worker.d.ts", + "default": "./dist/builds/worker.js" + }, + "default": { + "types": "./dist/browser.d.ts", + "module": "./dist/builds/browser.js", + "import": "./dist/builds/browser.js", + "default": "./dist/builds/browser.umd.js" + } + }, + "./dist/builds/*": "./dist/builds/*.js" + }, + "jsdelivr": "./dist/builds/browser.umd.js", + "unpkg": "./dist/builds/browser.umd.js", + "react-native": "./dist/builds/browser.js", "files": [ + "dist", "index.js", - "dist" + "index.d.ts" ], "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" - } + "@algolia/client-common": "5.48.0", + "@algolia/requester-browser-xhr": "5.48.0", + "@algolia/requester-fetch": "5.48.0", + "@algolia/requester-node-http": "5.48.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "0.18.2", + "@types/node": "25.1.0", + "publint": "0.3.17", + "rollup": "4.57.1", + "tsup": "8.5.1", + "typescript": "5.9.3" + }, + "engines": { + "node": ">= 14.0.0" + }, + "gitHead": "b39976bd859ef66e65d2db182d69853a91a71139" } diff --git a/node_modules/@algolia/client-search/dist/client-search.cjs.js b/node_modules/@algolia/client-search/dist/client-search.cjs.js deleted file mode 100644 index 82fdc72..0000000 --- a/node_modules/@algolia/client-search/dist/client-search.cjs.js +++ /dev/null @@ -1,1380 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var clientCommon = require('@algolia/client-common'); -var transporter = require('@algolia/transporter'); -var requesterCommon = require('@algolia/requester-common'); -var crypto = require('crypto'); - -function createBrowsablePromise(options) { - const browse = (data) => { - return options.request(data).then(response => { - /** - * First we send to the developer the - * batch retrieved from the API. - */ - if (options.batch !== undefined) { - options.batch(response.hits); - } - /** - * Then, we ask to the browse concrete implementation - * if we should stop browsing. As example, the `browseObjects` - * method will stop if the cursor is not present on the response. - */ - if (options.shouldStop(response)) { - return undefined; - } - /** - * Finally, if the response contains a cursor, we browse to the next - * batch using that same cursor. Otherwise, we just use the traditional - * browsing using the page element. - */ - if (response.cursor) { - return browse({ - cursor: response.cursor, - }); - } - return browse({ - page: (data.page || 0) + 1, - }); - }); - }; - return browse({}); -} - -const createSearchClient = options => { - const appId = options.appId; - const auth = clientCommon.createAuth(options.authMode !== undefined ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey); - const transporter$1 = transporter.createTransporter({ - hosts: [ - { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read }, - { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write }, - ].concat(clientCommon.shuffle([ - { url: `${appId}-1.algolianet.com` }, - { url: `${appId}-2.algolianet.com` }, - { url: `${appId}-3.algolianet.com` }, - ])), - ...options, - headers: { - ...auth.headers(), - ...{ 'content-type': 'application/x-www-form-urlencoded' }, - ...options.headers, - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters, - }, - }); - const base = { - transporter: transporter$1, - appId, - addAlgoliaAgent(segment, version) { - transporter$1.userAgent.add({ segment, version }); - }, - clearCache() { - return Promise.all([ - transporter$1.requestsCache.clear(), - transporter$1.responsesCache.clear(), - ]).then(() => undefined); - }, - }; - return clientCommon.addMethods(base, options.methods); -}; - -function createMissingObjectIDError() { - return { - name: 'MissingObjectIDError', - message: 'All objects must have an unique objectID ' + - '(like a primary key) to be valid. ' + - 'Algolia is also able to generate objectIDs ' + - "automatically but *it's not recommended*. " + - "To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.", - }; -} - -function createObjectNotFoundError() { - return { - name: 'ObjectNotFoundError', - message: 'Object not found.', - }; -} - -function createValidUntilNotFoundError() { - return { - name: 'ValidUntilNotFoundError', - message: 'ValidUntil not found in given secured api key.', - }; -} - -const addApiKey = (base) => { - return (acl, requestOptions) => { - const { queryParameters, ...options } = requestOptions || {}; - const data = { - acl, - ...(queryParameters !== undefined ? { queryParameters } : {}), - }; - const wait = (response, waitRequestOptions) => { - return clientCommon.createRetryablePromise(retry => { - return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => { - if (apiError.status !== 404) { - throw apiError; - } - return retry(); - }); - }); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: '1/keys', - data, - }, options), wait); - }; -}; - -const assignUserID = (base) => { - return (userID, clusterName, requestOptions) => { - const mappedRequestOptions = transporter.createMappedRequestOptions(requestOptions); - // eslint-disable-next-line functional/immutable-data - mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID; - return base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: '1/clusters/mapping', - data: { cluster: clusterName }, - }, mappedRequestOptions); - }; -}; - -const assignUserIDs = (base) => { - return (userIDs, clusterName, requestOptions) => { - return base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: '1/clusters/mapping/batch', - data: { - users: userIDs, - cluster: clusterName, - }, - }, requestOptions); - }; -}; - -const clearDictionaryEntries = (base) => { - return (dictionary, requestOptions) => { - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('/1/dictionaries/%s/batch', dictionary), - data: { - clearExistingDictionaryEntries: true, - requests: { action: 'addEntry', body: [] }, - }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const copyIndex = (base) => { - return (from, to, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return initIndex(base)(from, { - methods: { waitTask }, - }).waitTask(response.taskID, waitRequestOptions); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/operation', from), - data: { - operation: 'copy', - destination: to, - }, - }, requestOptions), wait); - }; -}; - -const copyRules = (base) => { - return (from, to, requestOptions) => { - return copyIndex(base)(from, to, { - ...requestOptions, - scope: [ScopeEnum.Rules], - }); - }; -}; - -const copySettings = (base) => { - return (from, to, requestOptions) => { - return copyIndex(base)(from, to, { - ...requestOptions, - scope: [ScopeEnum.Settings], - }); - }; -}; - -const copySynonyms = (base) => { - return (from, to, requestOptions) => { - return copyIndex(base)(from, to, { - ...requestOptions, - scope: [ScopeEnum.Synonyms], - }); - }; -}; - -const customRequest = (base) => { - return (request, requestOptions) => { - if (request.method === requesterCommon.MethodEnum.Get) { - return base.transporter.read(request, requestOptions); - } - return base.transporter.write(request, requestOptions); - }; -}; - -const deleteApiKey = (base) => { - return (apiKey, requestOptions) => { - const wait = (_, waitRequestOptions) => { - return clientCommon.createRetryablePromise(retry => { - return getApiKey(base)(apiKey, waitRequestOptions) - .then(retry) - .catch((apiError) => { - if (apiError.status !== 404) { - throw apiError; - } - }); - }); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Delete, - path: clientCommon.encode('1/keys/%s', apiKey), - }, requestOptions), wait); - }; -}; - -const deleteDictionaryEntries = (base) => { - return (dictionary, objectIDs, requestOptions) => { - const requests = objectIDs.map(objectID => ({ - action: 'deleteEntry', - body: { objectID }, - })); - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('/1/dictionaries/%s/batch', dictionary), - data: { clearExistingDictionaryEntries: false, requests }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const generateSecuredApiKey = () => { - return (parentApiKey, restrictions) => { - const queryParameters = transporter.serializeQueryParameters(restrictions); - const securedKey = crypto.createHmac('sha256', parentApiKey) - .update(queryParameters) - .digest('hex'); - return Buffer.from(securedKey + queryParameters).toString('base64'); - }; -}; - -const getApiKey = (base) => { - return (apiKey, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/keys/%s', apiKey), - }, requestOptions); - }; -}; - -const getAppTask = (base) => { - return (taskID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/task/%s', taskID.toString()), - }, requestOptions); - }; -}; - -const getDictionarySettings = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '/1/dictionaries/*/settings', - }, requestOptions); - }; -}; - -const getLogs = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/logs', - }, requestOptions); - }; -}; - -const getSecuredApiKeyRemainingValidity = () => { - return (securedApiKey) => { - const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii'); - const regex = /validUntil=(\d+)/; - const match = decodedString.match(regex); - if (match === null) { - throw createValidUntilNotFoundError(); - } - return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000); - }; -}; - -const getTopUserIDs = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/clusters/mapping/top', - }, requestOptions); - }; -}; - -const getUserID = (base) => { - return (userID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/clusters/mapping/%s', userID), - }, requestOptions); - }; -}; - -const hasPendingMappings = (base) => { - return (requestOptions) => { - const { retrieveMappings, ...options } = requestOptions || {}; - if (retrieveMappings === true) { - // eslint-disable-next-line functional/immutable-data - options.getClusters = true; - } - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/clusters/mapping/pending', - }, options); - }; -}; - -const initIndex = (base) => { - return (indexName, options = {}) => { - const searchIndex = { - transporter: base.transporter, - appId: base.appId, - indexName, - }; - return clientCommon.addMethods(searchIndex, options.methods); - }; -}; - -const listApiKeys = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/keys', - }, requestOptions); - }; -}; - -const listClusters = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/clusters', - }, requestOptions); - }; -}; - -const listIndices = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/indexes', - }, requestOptions); - }; -}; - -const listUserIDs = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: '1/clusters/mapping', - }, requestOptions); - }; -}; - -const moveIndex = (base) => { - return (from, to, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return initIndex(base)(from, { - methods: { waitTask }, - }).waitTask(response.taskID, waitRequestOptions); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/operation', from), - data: { - operation: 'move', - destination: to, - }, - }, requestOptions), wait); - }; -}; - -const multipleBatch = (base) => { - return (requests, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return Promise.all(Object.keys(response.taskID).map(indexName => { - return initIndex(base)(indexName, { - methods: { waitTask }, - }).waitTask(response.taskID[indexName], waitRequestOptions); - })); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: '1/indexes/*/batch', - data: { - requests, - }, - }, requestOptions), wait); - }; -}; - -const multipleGetObjects = (base) => { - return (requests, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: '1/indexes/*/objects', - data: { - requests, - }, - }, requestOptions); - }; -}; - -const multipleQueries = (base) => { - return (queries, requestOptions) => { - const requests = queries.map(query => { - return { - ...query, - params: transporter.serializeQueryParameters(query.params || {}), - }; - }); - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: '1/indexes/*/queries', - data: { - requests, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const multipleSearchForFacetValues = (base) => { - return (queries, requestOptions) => { - return Promise.all(queries.map(query => { - const { facetName, facetQuery, ...params } = query.params; - return initIndex(base)(query.indexName, { - methods: { searchForFacetValues }, - }).searchForFacetValues(facetName, facetQuery, { - ...requestOptions, - ...params, - }); - })); - }; -}; - -const removeUserID = (base) => { - return (userID, requestOptions) => { - const mappedRequestOptions = transporter.createMappedRequestOptions(requestOptions); - // eslint-disable-next-line functional/immutable-data - mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID; - return base.transporter.write({ - method: requesterCommon.MethodEnum.Delete, - path: '1/clusters/mapping', - }, mappedRequestOptions); - }; -}; - -const replaceDictionaryEntries = (base) => { - return (dictionary, entries, requestOptions) => { - const requests = entries.map(entry => ({ - action: 'addEntry', - body: entry, - })); - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('/1/dictionaries/%s/batch', dictionary), - data: { clearExistingDictionaryEntries: true, requests }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const restoreApiKey = (base) => { - return (apiKey, requestOptions) => { - const wait = (_, waitRequestOptions) => { - return clientCommon.createRetryablePromise(retry => { - return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => { - if (apiError.status !== 404) { - throw apiError; - } - return retry(); - }); - }); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/keys/%s/restore', apiKey), - }, requestOptions), wait); - }; -}; - -const saveDictionaryEntries = (base) => { - return (dictionary, entries, requestOptions) => { - const requests = entries.map(entry => ({ - action: 'addEntry', - body: entry, - })); - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('/1/dictionaries/%s/batch', dictionary), - data: { clearExistingDictionaryEntries: false, requests }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const searchDictionaryEntries = (base) => { - return (dictionary, query, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('/1/dictionaries/%s/search', dictionary), - data: { - query, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const searchUserIDs = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: '1/clusters/mapping/search', - data: { - query, - }, - }, requestOptions); - }; -}; - -const setDictionarySettings = (base) => { - return (settings, requestOptions) => { - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Put, - path: '/1/dictionaries/*/settings', - data: settings, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const updateApiKey = (base) => { - return (apiKey, requestOptions) => { - const updatedFields = Object.assign({}, requestOptions); - const { queryParameters, ...options } = requestOptions || {}; - const data = queryParameters ? { queryParameters } : {}; - const apiKeyFields = [ - 'acl', - 'indexes', - 'referers', - 'restrictSources', - 'queryParameters', - 'description', - 'maxQueriesPerIPPerHour', - 'maxHitsPerQuery', - ]; - // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update - const hasChanged = (getApiKeyResponse) => { - return Object.keys(updatedFields) - .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1) - .every(updatedField => { - // If the field is an array, we need to check that they are the same length and that all the values are the same - if (Array.isArray(getApiKeyResponse[updatedField]) && - Array.isArray(updatedFields[updatedField])) { - const getApiKeyResponseArray = getApiKeyResponse[updatedField]; - return (getApiKeyResponseArray.length === updatedFields[updatedField].length && - getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index])); - } - else { - return getApiKeyResponse[updatedField] === updatedFields[updatedField]; - } - }); - }; - const wait = (_, waitRequestOptions) => clientCommon.createRetryablePromise(retry => { - return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => { - return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry(); - }); - }); - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Put, - path: clientCommon.encode('1/keys/%s', apiKey), - data, - }, options), wait); - }; -}; - -const waitAppTask = (base) => { - return (taskID, requestOptions) => { - return clientCommon.createRetryablePromise(retry => { - return getAppTask(base)(taskID, requestOptions).then(response => { - return response.status !== 'published' ? retry() : undefined; - }); - }); - }; -}; - -const batch = (base) => { - return (requests, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return waitTask(base)(response.taskID, waitRequestOptions); - }; - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/batch', base.indexName), - data: { - requests, - }, - }, requestOptions), wait); - }; -}; - -const browseObjects = (base) => { - return (requestOptions) => { - return createBrowsablePromise({ - shouldStop: response => response.cursor === undefined, - ...requestOptions, - request: (data) => base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/browse', base.indexName), - data, - }, requestOptions), - }); - }; -}; - -const browseRules = (base) => { - return (requestOptions) => { - const options = { - hitsPerPage: 1000, - ...requestOptions, - }; - return createBrowsablePromise({ - shouldStop: response => response.hits.length < options.hitsPerPage, - ...options, - request(data) { - return searchRules(base)('', { ...options, ...data }).then((response) => { - return { - ...response, - hits: response.hits.map(rule => { - // eslint-disable-next-line functional/immutable-data,no-param-reassign - delete rule._highlightResult; - return rule; - }), - }; - }); - }, - }); - }; -}; - -const browseSynonyms = (base) => { - return (requestOptions) => { - const options = { - hitsPerPage: 1000, - ...requestOptions, - }; - return createBrowsablePromise({ - shouldStop: response => response.hits.length < options.hitsPerPage, - ...options, - request(data) { - return searchSynonyms(base)('', { ...options, ...data }).then((response) => { - return { - ...response, - hits: response.hits.map(synonym => { - // eslint-disable-next-line functional/immutable-data,no-param-reassign - delete synonym._highlightResult; - return synonym; - }), - }; - }); - }, - }); - }; -}; - -const chunkedBatch = (base) => { - return (bodies, action, requestOptions) => { - const { batchSize, ...options } = requestOptions || {}; - const response = { - taskIDs: [], - objectIDs: [], - }; - const forEachBatch = (lastIndex = 0) => { - // eslint-disable-next-line functional/prefer-readonly-type - const bodiesChunk = []; - // eslint-disable-next-line functional/no-let - let index; - /* eslint-disable-next-line functional/no-loop-statement */ - for (index = lastIndex; index < bodies.length; index++) { - // eslint-disable-next-line functional/immutable-data - bodiesChunk.push(bodies[index]); - if (bodiesChunk.length === (batchSize || 1000)) { - break; - } - } - if (bodiesChunk.length === 0) { - return Promise.resolve(response); - } - return batch(base)(bodiesChunk.map(body => { - return { - action, - body, - }; - }), options).then(res => { - response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data - response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data - index++; - return forEachBatch(index); - }); - }; - return clientCommon.createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => { - return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => { - return waitTask(base)(taskID, waitRequestOptions); - })); - }); - }; -}; - -const clearObjects = (base) => { - return (requestOptions) => { - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/clear', base.indexName), - }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const clearRules = (base) => { - return (requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/rules/clear', base.indexName), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const clearSynonyms = (base) => { - return (requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/synonyms/clear', base.indexName), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteBy = (base) => { - return (filters, requestOptions) => { - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/deleteByQuery', base.indexName), - data: filters, - }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteIndex = (base) => { - return (requestOptions) => { - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Delete, - path: clientCommon.encode('1/indexes/%s', base.indexName), - }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteObject = (base) => { - return (objectID, requestOptions) => { - return clientCommon.createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => { - return { taskID: response.taskIDs[0] }; - }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteObjects = (base) => { - return (objectIDs, requestOptions) => { - const objects = objectIDs.map(objectID => { - return { objectID }; - }); - return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions); - }; -}; - -const deleteRule = (base) => { - return (objectID, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Delete, - path: clientCommon.encode('1/indexes/%s/rules/%s', base.indexName, objectID), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteSynonym = (base) => { - return (objectID, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Delete, - path: clientCommon.encode('1/indexes/%s/synonyms/%s', base.indexName, objectID), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const exists = (base) => { - return (requestOptions) => { - return getSettings(base)(requestOptions) - .then(() => true) - .catch(error => { - if (error.status !== 404) { - throw error; - } - return false; - }); - }; -}; - -const findAnswers = (base) => { - return (query, queryLanguages, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/answers/%s/prediction', base.indexName), - data: { - query, - queryLanguages, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const findObject = (base) => { - return (callback, requestOptions) => { - const { query, paginate, ...options } = requestOptions || {}; - // eslint-disable-next-line functional/no-let - let page = 0; - const forEachPage = () => { - return search(base)(query || '', { ...options, page }).then(result => { - // eslint-disable-next-line functional/no-loop-statement - for (const [position, hit] of Object.entries(result.hits)) { - // eslint-disable-next-line promise/no-callback-in-promise - if (callback(hit)) { - return { - object: hit, - position: parseInt(position, 10), - page, - }; - } - } - page++; - // paginate if option was set and has next page - if (paginate === false || page >= result.nbPages) { - throw createObjectNotFoundError(); - } - return forEachPage(); - }); - }; - return forEachPage(); - }; -}; - -const getObject = (base) => { - return (objectID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/indexes/%s/%s', base.indexName, objectID), - }, requestOptions); - }; -}; - -const getObjectPosition = () => { - return (searchResponse, objectID) => { - // eslint-disable-next-line functional/no-loop-statement - for (const [position, hit] of Object.entries(searchResponse.hits)) { - if (hit.objectID === objectID) { - return parseInt(position, 10); - } - } - return -1; - }; -}; - -const getObjects = (base) => { - return (objectIDs, requestOptions) => { - const { attributesToRetrieve, ...options } = requestOptions || {}; - const requests = objectIDs.map(objectID => { - return { - indexName: base.indexName, - objectID, - ...(attributesToRetrieve ? { attributesToRetrieve } : {}), - }; - }); - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: '1/indexes/*/objects', - data: { - requests, - }, - }, options); - }; -}; - -const getRule = (base) => { - return (objectID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/indexes/%s/rules/%s', base.indexName, objectID), - }, requestOptions); - }; -}; - -const getSettings = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/indexes/%s/settings', base.indexName), - data: { - getVersion: 2, - }, - }, requestOptions); - }; -}; - -const getSynonym = (base) => { - return (objectID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID), - }, requestOptions); - }; -}; - -const getTask = (base) => { - return (taskID, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Get, - path: clientCommon.encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()), - }, requestOptions); - }; -}; - -const partialUpdateObject = (base) => { - return (object, requestOptions) => { - return clientCommon.createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => { - return { - objectID: response.objectIDs[0], - taskID: response.taskIDs[0], - }; - }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const partialUpdateObjects = (base) => { - return (objects, requestOptions) => { - const { createIfNotExists, ...options } = requestOptions || {}; - const action = createIfNotExists - ? BatchActionEnum.PartialUpdateObject - : BatchActionEnum.PartialUpdateObjectNoCreate; - return chunkedBatch(base)(objects, action, options); - }; -}; - -const replaceAllObjects = (base) => { - return (objects, requestOptions) => { - const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {}; - const operation = (from, to, type, operationRequestOptions) => { - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/operation', from), - data: { - operation: type, - destination: to, - }, - }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; - const randomSuffix = Math.random() - .toString(36) - .substring(7); - const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`; - const saveObjectsInTemporary = saveObjects({ - appId: base.appId, - transporter: base.transporter, - indexName: temporaryIndexName, - }); - // @ts-ignore - // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type - let responses = []; - const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', { - ...options, - scope: ['settings', 'synonyms', 'rules'], - }); - // eslint-disable-next-line functional/immutable-data - responses.push(copyWaitablePromise); - const result = (safe - ? copyWaitablePromise.wait(options) - : copyWaitablePromise) - .then(() => { - const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, { - ...options, - autoGenerateObjectIDIfNotExist, - batchSize, - }); - // eslint-disable-next-line functional/immutable-data - responses.push(saveObjectsWaitablePromise); - return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise; - }) - .then(() => { - const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options); - // eslint-disable-next-line functional/immutable-data - responses.push(moveWaitablePromise); - return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise; - }) - .then(() => Promise.all(responses)) - .then(([copyResponse, saveObjectsResponse, moveResponse]) => { - return { - objectIDs: saveObjectsResponse.objectIDs, - taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID], - }; - }); - return clientCommon.createWaitablePromise(result, (_, waitRequestOptions) => { - return Promise.all(responses.map(response => response.wait(waitRequestOptions))); - }); - }; -}; - -const replaceAllRules = (base) => { - return (rules, requestOptions) => { - return saveRules(base)(rules, { - ...requestOptions, - clearExistingRules: true, - }); - }; -}; - -const replaceAllSynonyms = (base) => { - return (synonyms, requestOptions) => { - return saveSynonyms(base)(synonyms, { - ...requestOptions, - clearExistingSynonyms: true, - }); - }; -}; - -const saveObject = (base) => { - return (object, requestOptions) => { - return clientCommon.createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => { - return { - objectID: response.objectIDs[0], - taskID: response.taskIDs[0], - }; - }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const saveObjects = (base) => { - return (objects, requestOptions) => { - const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {}; - const action = autoGenerateObjectIDIfNotExist - ? BatchActionEnum.AddObject - : BatchActionEnum.UpdateObject; - if (action === BatchActionEnum.UpdateObject) { - // eslint-disable-next-line functional/no-loop-statement - for (const object of objects) { - if (object.objectID === undefined) { - return clientCommon.createWaitablePromise(Promise.reject(createMissingObjectIDError())); - } - } - } - return chunkedBatch(base)(objects, action, options); - }; -}; - -const saveRule = (base) => { - return (rule, requestOptions) => { - return saveRules(base)([rule], requestOptions); - }; -}; - -const saveRules = (base) => { - return (rules, requestOptions) => { - const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - if (clearExistingRules) { - mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/rules/batch', base.indexName), - data: rules, - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const saveSynonym = (base) => { - return (synonym, requestOptions) => { - return saveSynonyms(base)([synonym], requestOptions); - }; -}; - -const saveSynonyms = (base) => { - return (synonyms, requestOptions) => { - const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - if (replaceExistingSynonyms || clearExistingSynonyms) { - mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/synonyms/batch', base.indexName), - data: synonyms, - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const search = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/query', base.indexName), - data: { - query, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const searchForFacetValues = (base) => { - return (facetName, facetQuery, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/facets/%s/query', base.indexName, facetName), - data: { - facetQuery, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const searchRules = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/rules/search', base.indexName), - data: { - query, - }, - }, requestOptions); - }; -}; - -const searchSynonyms = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: requesterCommon.MethodEnum.Post, - path: clientCommon.encode('1/indexes/%s/synonyms/search', base.indexName), - data: { - query, - }, - }, requestOptions); - }; -}; - -const setSettings = (base) => { - return (settings, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = transporter.createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return clientCommon.createWaitablePromise(base.transporter.write({ - method: requesterCommon.MethodEnum.Put, - path: clientCommon.encode('1/indexes/%s/settings', base.indexName), - data: settings, - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const waitTask = (base) => { - return (taskID, requestOptions) => { - return clientCommon.createRetryablePromise(retry => { - return getTask(base)(taskID, requestOptions).then(response => { - return response.status !== 'published' ? retry() : undefined; - }); - }); - }; -}; - -const ApiKeyACLEnum = { - AddObject: 'addObject', - Analytics: 'analytics', - Browser: 'browse', - DeleteIndex: 'deleteIndex', - DeleteObject: 'deleteObject', - EditSettings: 'editSettings', - Inference: 'inference', - ListIndexes: 'listIndexes', - Logs: 'logs', - Personalization: 'personalization', - Recommendation: 'recommendation', - Search: 'search', - SeeUnretrievableAttributes: 'seeUnretrievableAttributes', - Settings: 'settings', - Usage: 'usage', -}; - -const BatchActionEnum = { - AddObject: 'addObject', - UpdateObject: 'updateObject', - PartialUpdateObject: 'partialUpdateObject', - PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate', - DeleteObject: 'deleteObject', - DeleteIndex: 'delete', - ClearIndex: 'clear', -}; - -const ScopeEnum = { - Settings: 'settings', - Synonyms: 'synonyms', - Rules: 'rules', -}; - -const StrategyEnum = { - None: 'none', - StopIfEnoughMatches: 'stopIfEnoughMatches', -}; - -const SynonymEnum = { - Synonym: 'synonym', - OneWaySynonym: 'oneWaySynonym', - AltCorrection1: 'altCorrection1', - AltCorrection2: 'altCorrection2', - Placeholder: 'placeholder', -}; - -exports.ApiKeyACLEnum = ApiKeyACLEnum; -exports.BatchActionEnum = BatchActionEnum; -exports.ScopeEnum = ScopeEnum; -exports.StrategyEnum = StrategyEnum; -exports.SynonymEnum = SynonymEnum; -exports.addApiKey = addApiKey; -exports.assignUserID = assignUserID; -exports.assignUserIDs = assignUserIDs; -exports.batch = batch; -exports.browseObjects = browseObjects; -exports.browseRules = browseRules; -exports.browseSynonyms = browseSynonyms; -exports.chunkedBatch = chunkedBatch; -exports.clearDictionaryEntries = clearDictionaryEntries; -exports.clearObjects = clearObjects; -exports.clearRules = clearRules; -exports.clearSynonyms = clearSynonyms; -exports.copyIndex = copyIndex; -exports.copyRules = copyRules; -exports.copySettings = copySettings; -exports.copySynonyms = copySynonyms; -exports.createBrowsablePromise = createBrowsablePromise; -exports.createMissingObjectIDError = createMissingObjectIDError; -exports.createObjectNotFoundError = createObjectNotFoundError; -exports.createSearchClient = createSearchClient; -exports.createValidUntilNotFoundError = createValidUntilNotFoundError; -exports.customRequest = customRequest; -exports.deleteApiKey = deleteApiKey; -exports.deleteBy = deleteBy; -exports.deleteDictionaryEntries = deleteDictionaryEntries; -exports.deleteIndex = deleteIndex; -exports.deleteObject = deleteObject; -exports.deleteObjects = deleteObjects; -exports.deleteRule = deleteRule; -exports.deleteSynonym = deleteSynonym; -exports.exists = exists; -exports.findAnswers = findAnswers; -exports.findObject = findObject; -exports.generateSecuredApiKey = generateSecuredApiKey; -exports.getApiKey = getApiKey; -exports.getAppTask = getAppTask; -exports.getDictionarySettings = getDictionarySettings; -exports.getLogs = getLogs; -exports.getObject = getObject; -exports.getObjectPosition = getObjectPosition; -exports.getObjects = getObjects; -exports.getRule = getRule; -exports.getSecuredApiKeyRemainingValidity = getSecuredApiKeyRemainingValidity; -exports.getSettings = getSettings; -exports.getSynonym = getSynonym; -exports.getTask = getTask; -exports.getTopUserIDs = getTopUserIDs; -exports.getUserID = getUserID; -exports.hasPendingMappings = hasPendingMappings; -exports.initIndex = initIndex; -exports.listApiKeys = listApiKeys; -exports.listClusters = listClusters; -exports.listIndices = listIndices; -exports.listUserIDs = listUserIDs; -exports.moveIndex = moveIndex; -exports.multipleBatch = multipleBatch; -exports.multipleGetObjects = multipleGetObjects; -exports.multipleQueries = multipleQueries; -exports.multipleSearchForFacetValues = multipleSearchForFacetValues; -exports.partialUpdateObject = partialUpdateObject; -exports.partialUpdateObjects = partialUpdateObjects; -exports.removeUserID = removeUserID; -exports.replaceAllObjects = replaceAllObjects; -exports.replaceAllRules = replaceAllRules; -exports.replaceAllSynonyms = replaceAllSynonyms; -exports.replaceDictionaryEntries = replaceDictionaryEntries; -exports.restoreApiKey = restoreApiKey; -exports.saveDictionaryEntries = saveDictionaryEntries; -exports.saveObject = saveObject; -exports.saveObjects = saveObjects; -exports.saveRule = saveRule; -exports.saveRules = saveRules; -exports.saveSynonym = saveSynonym; -exports.saveSynonyms = saveSynonyms; -exports.search = search; -exports.searchDictionaryEntries = searchDictionaryEntries; -exports.searchForFacetValues = searchForFacetValues; -exports.searchRules = searchRules; -exports.searchSynonyms = searchSynonyms; -exports.searchUserIDs = searchUserIDs; -exports.setDictionarySettings = setDictionarySettings; -exports.setSettings = setSettings; -exports.updateApiKey = updateApiKey; -exports.waitAppTask = waitAppTask; -exports.waitTask = waitTask; diff --git a/node_modules/@algolia/client-search/dist/client-search.d.ts b/node_modules/@algolia/client-search/dist/client-search.d.ts deleted file mode 100644 index 2da59b5..0000000 --- a/node_modules/@algolia/client-search/dist/client-search.d.ts +++ /dev/null @@ -1,2542 +0,0 @@ -import { AuthModeType } from '@algolia/client-common'; -import { ClientTransporterOptions } from '@algolia/client-common'; -import { CreateClient } from '@algolia/client-common'; -import { Request } from '@algolia/transporter'; -import { RequestOptions } from '@algolia/transporter'; -import { Transporter } from '@algolia/transporter'; -import { WaitablePromise } from '@algolia/client-common'; - -export declare const addApiKey: (base: SearchClient) => (acl: readonly ApiKeyACLType[], requestOptions?: (AddApiKeyOptions & Pick) | undefined) => Readonly>; - -export declare type AddApiKeyOptions = { - /** - * A Unix timestamp used to define the expiration date of the API key. - */ - readonly validity?: number; - /** - * Specify the maximum number of hits this API key can retrieve in one call. - * This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. - */ - readonly maxHitsPerQuery?: number; - /** - * Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. - */ - readonly maxQueriesPerIPPerHour?: number; - /** - * Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. - */ - readonly indexes?: readonly string[]; - /** - * Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. - */ - readonly referers?: readonly string[]; - /** - * Specify the list of query parameters. You can force the query parameters for a query using the url string format. - */ - readonly queryParameters?: string; - /** - * Specify a description of the API key. Used for informative purposes only. It has impact on the functionality of the API key. - */ - readonly description?: string; -}; - -export declare type AddApiKeyResponse = { - /** - * The returned api key. - */ - key: string; - /** - * Date of creation of the api key. - */ - createdAt: string; -}; - -export declare const ApiKeyACLEnum: Readonly>; - -export declare type ApiKeyACLType = 'addObject' | 'analytics' | 'browse' | 'deleteIndex' | 'deleteObject' | 'editSettings' | 'inference' | 'listIndexes' | 'logs' | 'personalization' | 'recommendation' | 'search' | 'seeUnretrievableAttributes' | 'settings' | 'usage'; - -export declare const assignUserID: (base: SearchClient) => (userID: string, clusterName: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type AssignUserIDResponse = { - /** - * Date of creation of the userId. - */ - createdAt: string; -}; - -export declare const assignUserIDs: (base: SearchClient) => (userIDs: readonly string[], clusterName: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type AssignUserIDsResponse = { - /** - * Date of creation of the userId - */ - createdAt: string; -}; - -export declare type AutomaticFacetFilter = { - /** - * Attribute to filter on. This must match a facet placeholder in the rule’s pattern. - */ - readonly facet: string; - /** - * Whether the filter is disjunctive (true) or conjunctive (false). - */ - readonly disjunctive?: boolean; - /** - * Score for the filter. Typically used for optional or disjunctive filters. - */ - readonly score?: number; -}; - -export declare const batch: (base: SearchIndex) => (requests: readonly BatchRequest[], requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const BatchActionEnum: Readonly>; - -export declare type BatchActionType = 'addObject' | 'updateObject' | 'partialUpdateObject' | 'partialUpdateObjectNoCreate' | 'deleteObject' | 'delete' | 'clear'; - -export declare type BatchRequest = { - /** - * The batch action. - */ - readonly action: BatchActionType; - /** - * The body of the given `action`. Note that, bodies difer - * depending of the action. - */ - readonly body: Record; -}; - -export declare type BatchResponse = { - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * The object ids created/updated by the batch request. - */ - objectIDs: string[]; -}; - -export declare const browseObjects: (base: SearchIndex) => (requestOptions?: (SearchOptions & BrowseOptions & RequestOptions) | undefined) => Readonly>; - -export declare type BrowseOptions = { - /** - * The callback called for each batch of objects. - */ - readonly batch?: (batch: ReadonlyArray) => any; - /** - * The callback called to determine if the browse should stop. By - * default this checks whether there's any more content to get. - */ - readonly shouldStop?: (response: BrowseResponse) => boolean; -}; - -export declare type BrowseRequestData = { - /** - * If available, should be used for browsing to the next page. - */ - readonly cursor?: string; - /** - * If cursor is not available, should be used for browsing to the next page. - */ - readonly page?: number; -}; - -export declare type BrowseResponse = { - /** - * The hits per page. - */ - hits: Array; - /** - * The cursor used for iterate on the next page. - */ - cursor?: string; -}; - -export declare const browseRules: (base: SearchIndex) => (requestOptions?: (SearchRulesOptions & BrowseOptions & RequestOptions) | undefined) => Readonly>; - -export declare const browseSynonyms: (base: SearchIndex) => (requestOptions?: (SearchSynonymsOptions & BrowseOptions & RequestOptions) | undefined) => Readonly>; - -export declare const chunkedBatch: (base: SearchIndex) => (bodies: readonly object[], action: BatchActionType, requestOptions?: (RequestOptions & ChunkOptions) | undefined) => Readonly>; - -export declare type ChunkedBatchResponse = { - /** - * The operations task ids. May be used to perform a wait task. - */ - taskIDs: number[]; - /** - * The object ids created/updated/deleted by the multiple requests. - */ - objectIDs: string[]; -}; - -export declare type ChunkOptions = { - /** - * The number of objects per batch. - */ - readonly batchSize?: number; -}; - -export declare const clearDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; - -export declare const clearObjects: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const clearRules: (base: SearchIndex) => (requestOptions?: (RequestOptions & ClearRulesOptions) | undefined) => Readonly>; - -export declare type ClearRulesOptions = { - /** - * If the clear rules request should be forward to replicas. - */ - readonly forwardToReplicas?: boolean; -}; - -export declare const clearSynonyms: (base: SearchIndex) => (requestOptions?: (ClearSynonymsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type ClearSynonymsOptions = { - /** - * If the clear synonyms request should be forward to replicas. - */ - readonly forwardToReplicas?: boolean; -}; - -export declare type Cluster = { - /** - * The cluster name - */ - readonly clusterName: string; - /** - * Number of records in the cluster. - */ - readonly nbRecords: number; - /** - * Number of users assign to the cluster. - */ - readonly nbUserIDs: number; - /** - * Data size taken by all the users assigned to the cluster. - */ - readonly dataSize: number; -}; - -export declare type Condition = { - /** - * Query patterns are expressed as a string with a specific syntax. A pattern is a sequence of tokens. - */ - readonly pattern?: string; - /** - * Apply this rule only when the filter matches. - */ - readonly filters?: string; - /** - * is | startsWith | endsWith | contains: Whether the pattern must match the beginning or the end of the query string, or both, or none. - */ - readonly anchoring?: 'is' | 'startsWith' | 'endsWith' | 'contains'; - /** - * Rule context (format: [A-Za-z0-9_-]+). When specified, the rule is contextual and applies only when the same context is specified at query time (using the ruleContexts parameter). - * When absent, the rule is generic and always applies (provided that its other conditions are met, of course). - */ - readonly context?: string; - /** - * If set to true, alternatives make the rule to trigger on synonyms, typos and plurals. - * Note that setting ignorePlurals to false overrides this parameter. - */ - readonly alternatives?: boolean; -}; - -export declare type Consequence = { - /** - * Additional search parameters. Any valid search parameter is allowed. - */ - readonly params?: ConsequenceParams & Pick>; - /** - * Objects to promote as hits. - */ - readonly promote?: readonly ConsequencePromote[]; - /** - * Objects to hide from hits. - */ - readonly hide?: ReadonlyArray<{ - readonly objectID: string; - }>; - /** - * Whether the Query Rule should promote or not promoted items. - */ - readonly filterPromotes?: boolean; - /** - * Custom JSON object that will be appended to the userData array in the response. - * This object is not interpreted by the API. It is limited to 1kB of minified JSON. - */ - readonly userData?: any; -}; - -export declare type ConsequenceParams = { - /** - * When providing a string, it replaces the entire query string. - * When providing an object, it describes incremental edits to be made to the query string (but you can’t do both). - */ - readonly query?: ConsequenceQuery | string; - /** - * Names of facets to which automatic filtering must be applied; they must match the facet name of a facet value placeholder in the query pattern. - */ - readonly automaticFacetFilters?: readonly AutomaticFacetFilter[] | readonly string[]; - /** - * Same syntax as automaticFacetFilters, but the engine treats the filters as optional. - * Behaves like optionalFilters. - */ - readonly automaticOptionalFacetFilters?: readonly AutomaticFacetFilter[] | readonly string[]; - /** - * Content defining how the search interface should be rendered. - * A default value for this can be set via settings - */ - readonly renderingContent?: Settings['renderingContent']; -}; - -export declare type ConsequencePromote = { - /** - * Unique identifier of the object to promote. - */ - readonly objectID: string; - /** - * Promoted rank for the object (zero-based). - */ - readonly position: number; -} | { - /** - * List of unique identifiers for the objects to promote. - */ - readonly objectIDs: readonly string[]; - /** - * Promoted start rank for the objects (zero-based). - */ - readonly position: number; -}; - -export declare type ConsequenceQuery = { - /** - * List of removes. - */ - readonly remove?: readonly string[]; - /** - * List of edits. - */ - readonly edits?: ReadonlyArray<{ - /** - * Type of edit. - */ - readonly type?: 'remove' | 'replace'; - /** - * Text or patterns to remove from the query string. - */ - readonly delete?: string; - /** - * Text that should be inserted in place of the removed text inside the query string. - */ - readonly insert?: string; - }>; -}; - -export declare const copyIndex: (base: SearchClient) => (from: string, to: string, requestOptions?: (CopyIndexOptions & RequestOptions) | undefined) => Readonly>; - -export declare type CopyIndexOptions = { - readonly scope?: readonly ScopeType[]; -}; - -export declare const copyRules: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const copySettings: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const copySynonyms: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare function createBrowsablePromise(options: { - readonly shouldStop: (response: BrowseResponse) => boolean; - readonly request: (data: BrowseRequestData) => Readonly>>; -} & BrowseOptions): Readonly>; - -export declare type CreateIndex = (...args: any) => any; -}>(indexName: string, options?: { - readonly methods?: TMethods; -}) => SearchIndex & { - [key in keyof TMethods extends string ? keyof TMethods : never]: ReturnType; -}; - -export declare function createMissingObjectIDError(): Error; - -export declare function createObjectNotFoundError(): Error; - -export declare const createSearchClient: CreateClient; - -export declare function createValidUntilNotFoundError(): Error; - -export declare const customRequest: (base: SearchClient) => (request: Request, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const deleteApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type DeleteApiKeyResponse = { - /** - * The date when the api key was deleted. - */ - deletedAt: string; -}; - -export declare const deleteBy: (base: SearchIndex) => (filters: DeleteByFiltersOptions, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type DeleteByFiltersOptions = { - /** - * Filter the query with numeric, facet and/or tag filters. - */ - readonly filters?: string; - /** - * Filter hits by facet value. - */ - readonly facetFilters?: string | readonly string[] | ReadonlyArray; - /** - * Filter on numeric attributes. - */ - readonly numericFilters?: string | readonly string[] | ReadonlyArray; - /** - * Filter hits by tags. tagFilters is a different way of filtering, which relies on the _tags - * attribute. It uses a simpler syntax than filters. You can use it when you want to do - * simple filtering based on tags. - */ - readonly tagFilters?: string | readonly string[] | ReadonlyArray; - /** - * Search for entries around a central geolocation, enabling a geo search within a circular area. - */ - readonly aroundLatLng?: string; - /** - * Search for entries around a given location automatically computed from the requester’s IP address. - */ - readonly aroundLatLngViaIP?: boolean; - /** - * Search inside a rectangular area (in geo coordinates). - */ - readonly insideBoundingBox?: ReadonlyArray | string; - /** - * Search inside a polygon (in geo coordinates). - */ - readonly insidePolygon?: ReadonlyArray; -}; - -export declare const deleteDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, objectIDs: readonly string[], requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; - -export declare const deleteIndex: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const deleteObject: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const deleteObjects: (base: SearchIndex) => (objectIDs: readonly string[], requestOptions?: (RequestOptions & ChunkOptions) | undefined) => Readonly>; - -export declare type DeleteResponse = { - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -export declare const deleteRule: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const deleteSynonym: (base: SearchIndex) => (objectID: string, requestOptions?: (RequestOptions & DeleteSynonymOptions) | undefined) => Readonly>; - -export declare type DeleteSynonymOptions = { - /** - * If the delete synonym request should be forward to replicas. - */ - readonly forwardToReplicas?: boolean; -}; - -export declare type DictionaryEntriesOptions = { - /** - * Array of dictionary entries - */ - readonly dictionaryEntries: readonly DictionaryEntry[]; -}; - -export declare type DictionaryEntriesResponse = { - /** - * When the given rules got saved. - */ - updatedAt: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -export declare type DictionaryEntry = { - /** - * Unique identifier for the rule (format: [A-Za-z0-9_-]+). - */ - readonly objectID: string; - readonly language: string; - readonly word?: string; - readonly words?: readonly string[]; - readonly decomposition?: readonly string[]; - readonly state?: 'enabled' | 'disabled'; -}; - -export declare type DictionaryName = 'plurals' | 'stopwords' | 'compounds'; - -export declare type DictionarySettings = { - /** - * Disable the builtin Algolia entries for a type of dictionary per language. - */ - readonly disableStandardEntries: RequireAtLeastOne>>; -}; - -export declare const exists: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type FacetHit = { - /** - * The value of the facet. - */ - readonly value: string; - /** - * The highlighted value. - */ - readonly highlighted: string; - /** - * The count. - */ - readonly count: number; -}; - -export declare const findAnswers: (base: SearchIndex) => (query: string, queryLanguages: readonly string[], requestOptions?: (RequestOptions & FindAnswersOptions) | undefined) => Readonly>>; - -export declare type FindAnswersOptions = { - /** - * Attributes to use for predictions. - * If using the default (["*"]), all attributes are used to find answers. - */ - readonly attributesForPrediction?: readonly string[]; - /** - * Maximum number of answers to retrieve from the Answers Engine. - * Cannot be greater than 1000. - */ - readonly nbHits?: number; - /** - * Threshold for the answers’ confidence score: - * only answers with extracts that score above this threshold are returned. - */ - readonly threshold?: number; - /** - * Whether the attribute name in which the answer was found should be returned. - * This option is expensive in processing time. - */ - readonly returnExtractAttribute?: boolean; - /** - * Algolia search parameters to use to fetch the hits. - * Can be any search parameter, except: - * - attributesToSnippet - * - hitsPerPage - * - queryType - * - naturalLanguages and associated parameters - * (removeStopWords, ignorePlurals, and removeWordsIfNoResults) - */ - readonly searchParameters?: Omit; -}; - -export declare type FindAnswersResponse = Omit, 'hits'> & { - /** - * The hits returned by the search. - * - * Hits are ordered according to the ranking or sorting of the index being queried. - */ - hits: Array>; -}; - -export declare const findObject: (base: SearchIndex) => (callback: (object: TObject & ObjectWithObjectID) => boolean, requestOptions?: (FindObjectOptions & RequestOptions) | undefined) => Readonly>>; - -export declare type FindObjectOptions = { - /** - * If the underlying find object options should paginate - * over a search method. - */ - readonly paginate?: boolean; - /** - * The query used by the underlying find object to - * find the object. - */ - readonly query?: string; -}; - -export declare type FindObjectResponse = { - /** - * The found object. - */ - object: TObject & ObjectWithObjectID; - /** - * The position where the object was found. - */ - position: number; - /** - * The page where the object was found. - */ - page: number; -}; - -export declare const generateSecuredApiKey: () => (parentApiKey: string, restrictions: SecuredApiKeyRestrictions) => string; - -export declare const getApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type GetApiKeyResponse = { - /** - * The api key value - */ - value: string; - /** - * Date of creation (Unix timestamp). - */ - createdAt: number; - /** - * List of permissions the key contains. - */ - acl: ApiKeyACLType[]; - /** - * A Unix timestamp used to define the expiration date of the API key. - */ - validity: number; - /** - * Specify the maximum number of hits this API key can retrieve in one call. - * This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. - */ - maxHitsPerQuery?: number; - /** - * Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. - */ - maxQueriesPerIPPerHour?: number; - /** - * Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. - */ - indexes?: string[]; - /** - * Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. - */ - referers?: string[]; - /** - * IPv4 network allowed to use the generated key. - * This is used for more protection against API key leaking and reuse. - * Note that you can only provide a single source, but you can specify a range of IPs (e.g., 192.168.1.0/24). - */ - restrictSources?: string; - /** - * Specify the list of query parameters. You can force the query parameters for a query using the url string format. - */ - queryParameters?: string; - /** - * Specify a description of the API key. Used for informative purposes only. It has impact on the functionality of the API key. - */ - description?: string; -}; - -export declare const getAppTask: (base: SearchClient) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const getDictionarySettings: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type GetDictionarySettingsResponse = { - /** - * Disable the builtin Algolia entries for a type of dictionary per language. - */ - readonly disableStandardEntries: RequireAtLeastOne>>; -}; - -export declare const getLogs: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type GetLogsOptions = { - /** - * The offset. - */ - readonly offset: number; - /** - * The length size. - */ - readonly length: number; -}; - -export declare type GetLogsResponse = { - /** - * The list of logs. - */ - logs: Log[]; -}; - -export declare const getObject: (base: SearchIndex) => (objectID: string, requestOptions?: (RequestOptions & GetObjectOptions) | undefined) => Readonly>; - -export declare type GetObjectOptions = { - /** - * The attributes that should come with witch object. - */ - readonly attributesToRetrieve?: readonly string[]; -}; - -export declare const getObjectPosition: () => (searchResponse: SearchResponse, objectID: string) => number; - -export declare const getObjects: (base: SearchIndex) => (objectIDs: readonly string[], requestOptions?: (RequestOptions & GetObjectsOptions) | undefined) => Readonly>>; - -export declare type GetObjectsOptions = { - /** - * The attributes that should come with witch object. - */ - readonly attributesToRetrieve?: readonly string[]; -}; - -export declare type GetObjectsResponse = { - /** - * The list of results. - */ - results: Array<(TObject & ObjectWithObjectID) | null>; -}; - -export declare const getRule: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const getSecuredApiKeyRemainingValidity: () => (securedApiKey: string) => number; - -export declare const getSettings: (base: SearchIndex) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const getSynonym: (base: SearchIndex) => (objectID: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const getTask: (base: SearchIndex) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const getTopUserIDs: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type GetTopUserIDsResponse = { - /** - * Mapping of cluster names to top users. - */ - topUsers: Record; -}; - -export declare const getUserID: (base: SearchClient) => (userID: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const hasPendingMappings: (base: SearchClient) => (requestOptions?: (HasPendingMappingsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type HasPendingMappingsOptions = { - /** - * If the clusters pending mapping state should be on the response. - * - * @defaultValue false - */ - readonly retrieveMappings?: boolean; - /** - * If the clusters pending mapping state should be on the response. - * - * @defaultValue false - * - * @internal - */ - readonly getClusters?: boolean; -}; - -export declare type HasPendingMappingsResponse = { - /** - * If there is any clusters with pending mapping state. - */ - pending: boolean; - /** - * Describe cluster pending (migrating, creating, deleting) mapping state. - */ - clusters?: { - [key: string]: string[]; - }; -}; - -declare type HighlightMatch = { - readonly value: string; - readonly matchLevel: 'none' | 'partial' | 'full'; - readonly matchedWords: readonly string[]; - readonly fullyHighlighted?: boolean; -}; - -export declare type HighlightResult = THit extends string | number ? HighlightMatch : { - [KAttribute in keyof THit]?: HighlightResult; -}; - -export declare type Hit = THit & { - readonly objectID: string; - readonly _highlightResult?: HighlightResult; - readonly _snippetResult?: SnippetResult; - readonly _rankingInfo?: RankingInfo; - readonly _distinctSeqID?: number; -}; - -export declare type Index = { - /** - * Index name. - */ - readonly name: string; - /** - * Index creation date. (ISO-8601 format) - */ - readonly createdAt: string; - /** - * Date of last update. (ISO-8601 format) - */ - readonly updatedAt: string; - /** - * Number of records contained in the index - */ - readonly entries: number; - /** - * Number of bytes of the index in minified format. - */ - readonly dataSize: number; - /** - * Number of bytes of the index binary file. - */ - readonly fileSize: number; - /** - * Last build time in seconds. - */ - readonly lastBuildTimeS: number; - /** - * Number of pending indexing operations. - */ - readonly numberOfPendingTasks: number; - /** - * A boolean which says whether the index has pending tasks. - */ - readonly pendingTask: boolean; - /** - * Only present if the index is a replica. - * Contains the name of the related primary index. - */ - readonly primary?: string; - /** - * Only present if the index is a primary index with replicas. - * Contains the names of all linked replicas. - */ - readonly replicas?: readonly string[]; -}; - -export declare type IndexOperationResponse = { - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -/** - * @deprecated please use `Index` instead of `Indice` - */ -export declare type Indice = Index; - -export declare const initIndex: (base: SearchClient) => CreateIndex; - -export declare const listApiKeys: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type ListApiKeysResponse = { - /** - * List of keys - */ - keys: GetApiKeyResponse[]; -}; - -export declare const listClusters: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type ListClustersResponse = { - /** - * List of clusters. - */ - clusters: Cluster[]; -}; - -export declare const listIndices: (base: SearchClient) => (requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type ListIndicesResponse = { - /** - * Number of pages - */ - nbPages: number; - /** - * List of index response - */ - items: Index[]; -}; - -export declare const listUserIDs: (base: SearchClient) => (requestOptions?: (ListUserIDsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type ListUserIDsOptions = { - /** - * Page to fetch. - */ - readonly page?: number; - /** - * Number of users to retrieve per page. - */ - readonly hitsPerPage?: number; -}; - -export declare type ListUserIDsResponse = { - /** - * List of users id. - */ - userIDs: UserIDResponse[]; -}; - -export declare type Log = { - /** - * Timestamp in ISO-8601 format. - */ - readonly timestamp: string; - /** - * Rest type of the method. - */ - readonly method: string; - /** - * Http response code. - */ - readonly answer_code: string; - /** - * Request body. It’s truncated after 1000 characters. - */ - readonly query_body: string; - /** - * Answer body. It’s truncated after 1000 characters. - */ - readonly answer: string; - /** - * Request URL. - */ - readonly url: string; - /** - * Client ip of the call. - */ - readonly ip: string; - /** - * SHA1 ID of entry. - */ - readonly sha1: string; - /** - * Request Headers (API Key is obfuscated). - */ - readonly query_headers: string; - /** - * Number Of Api Calls - */ - readonly nb_api_calls?: string; - /** - * Processing time for the query. This does not include network time. - */ - readonly processing_time_ms: string; - /** - * Number of hits returned for the query. - */ - readonly query_nb_hits?: string; - /** - * Exhaustive flags used during the query. - */ - readonly exhaustive?: boolean; - /** - * Index name of the log - */ - readonly index?: string; - /** - * Internal queries performed for this query. - */ - readonly inner_queries: ReadonlyArray<{ - /** - * Index name of the query. - */ - readonly index_name: string; - /** - * Query ID of the query. - */ - readonly query_id?: string; - /** - * The offset of the query. - */ - readonly offset?: number; - /** - * The user token of the query. - */ - readonly user_token?: string; - }>; -}; - -export declare const moveIndex: (base: SearchClient) => (from: string, to: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const multipleBatch: (base: SearchClient) => (requests: readonly MultipleBatchRequest[], requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type MultipleBatchRequest = { - /** - * The index name where the multiple batch are going to be applied. - */ - readonly indexName: string; - /** - * The action used. - */ - readonly action: BatchActionType; - /** - * The body associated with the request. - */ - readonly body: Record; -}; - -export declare type MultipleBatchResponse = { - /** - * The list of object ids. - */ - objectIDs: string[]; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: Record; -}; - -export declare type MultipleGetObject = { - /** - * The index name. - */ - readonly indexName: string; - /** - * The object id. - */ - readonly objectID: string; - /** - * The attributes that should be returned with the object. - */ - readonly attributesToRetrieve?: readonly string[]; -}; - -export declare const multipleGetObjects: (base: SearchClient) => (requests: readonly MultipleGetObject[], requestOptions?: RequestOptions | undefined) => Readonly>>; - -export declare type MultipleGetObjectsResponse = { - /** - * The list of objects. - */ - results: Array; -}; - -export declare const multipleQueries: (base: SearchClient) => (queries: readonly MultipleQueriesQuery[], requestOptions?: (RequestOptions & MultipleQueriesOptions) | undefined) => Readonly>>; - -export declare type MultipleQueriesOptions = { - readonly strategy?: StrategyType; -}; - -export declare type MultipleQueriesQuery = SharedMultipleQueriesQuery & ({ - readonly type?: 'default'; -} | { - readonly type: 'facet'; - /** - * The facet name. - */ - readonly facet: string; - /** - * The search options. - */ - readonly params?: SharedMultipleQueriesQuery['params'] & { - /** - * The search query used to search the facet attribute. Follows the same rules for an index query: a single character, a partial word, a word, or a phrase. - */ - readonly facetQuery?: string; - }; -}); - -export declare type MultipleQueriesResponse = { - /** - * The list of results. - */ - results: Array | SearchForFacetValuesResponse>; -}; - -export declare const multipleSearchForFacetValues: (base: SearchClient) => (queries: readonly { - readonly indexName: string; - readonly params: SearchForFacetValuesQueryParams & SearchOptions; -}[], requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type ObjectWithObjectID = { - /** - * The object id of the object. - */ - readonly objectID: string; -}; - -export declare const partialUpdateObject: (base: SearchIndex) => (object: Record, requestOptions?: (RequestOptions & ChunkOptions & PartialUpdateObjectsOptions) | undefined) => Readonly>; - -export declare type PartialUpdateObjectResponse = { - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * The object id updated. - */ - objectID: string; -}; - -export declare const partialUpdateObjects: (base: SearchIndex) => (objects: readonly Record[], requestOptions?: (RequestOptions & ChunkOptions & PartialUpdateObjectsOptions) | undefined) => Readonly>; - -export declare type PartialUpdateObjectsOptions = { - /** - * If the object should be created when does not exist. - */ - readonly createIfNotExists?: boolean; -}; - -export declare type RankingInfo = { - readonly promoted: boolean; - readonly nbTypos: number; - readonly firstMatchedWord: number; - readonly proximityDistance?: number; - readonly geoDistance: number; - readonly geoPrecision?: number; - readonly nbExactWords: number; - readonly words: number; - readonly filters: number; - readonly userScore: number; - readonly matchedGeoLocation?: { - readonly lat: number; - readonly lng: number; - readonly distance: number; - }; - readonly personalization?: { - readonly filtersScore: number; - readonly rankingScore: number; - readonly score: number; - }; - readonly promotedByReRanking?: boolean; -}; - -export declare type RedirectRuleIndexMetadata = { - /** - * Source index for the redirect rule - */ - readonly source: string; - /** - * Destination index for the redirect rule - */ - readonly dest: string; - /** - * Reason for the redirect rule - */ - readonly reason: string; - /** - * Status for the redirect rule - */ - readonly succeed: boolean; - /** - * Data for the redirect rule - */ - readonly data: { - /** - * Rule objectId - */ - readonly ruleObjectID: string; - }; -}; - -export declare const removeUserID: (base: SearchClient) => (userID: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type RemoveUserIDResponse = { - /** - * When the given `userID` got removed. - */ - deletedAt: string; -}; - -export declare const replaceAllObjects: (base: SearchIndex) => (objects: readonly Readonly>[], requestOptions?: (ReplaceAllObjectsOptions & ChunkOptions & SaveObjectsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type ReplaceAllObjectsOptions = { - /** - * If the all objects should be replaced using wait operations. Keep - * in mind that, when the `safe` option is used, the operation may - * take a little more than expected. - */ - readonly safe?: boolean; -}; - -export declare const replaceAllRules: (base: SearchIndex) => (rules: readonly Rule[], requestOptions?: (RequestOptions & SaveRulesOptions) | undefined) => Readonly>; - -export declare const replaceAllSynonyms: (base: SearchIndex) => (synonyms: readonly Synonym[], requestOptions?: (RequestOptions & Pick) | undefined) => Readonly>; - -export declare const replaceDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, entries: readonly DictionaryEntry[], requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; - -export declare type RequireAtLeastOne = { - [TKey in keyof TType]-?: Required> & Partial>>; -}[keyof TType]; - -export declare const restoreApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type RestoreApiKeyResponse = { - /** - * Restoration date of the API key. - */ - createdAt: string; -}; - -export declare type Rule = { - /** - * Unique identifier for the rule (format: [A-Za-z0-9_-]+). - */ - readonly objectID: string; - /** - * Condition of the rule, expressed using the following variables: pattern, anchoring, context. - * - * @deprecated This parameter is deprecated in favor of `conditions`. - */ - readonly condition?: Condition; - /** - * Conditions of the rule, expressed using the following variables: pattern, anchoring, context. - */ - readonly conditions?: readonly Condition[]; - /** - * Consequence of the rule. At least one of the following object must be used: params, promote, hide, userData. - */ - readonly consequence?: Consequence; - /** - * This field is intended for rule management purposes, in particular to ease searching for rules and presenting them to human readers. It is not interpreted by the API. - */ - readonly description?: string; - /** - * Whether the rule is enabled. Disabled rules remain in the index, but are not applied at query time. - */ - readonly enabled?: boolean; - /** - * By default, rules are permanently valid. When validity periods are specified, the rule applies only during those periods; it is ignored the rest of the time. - * The list must not be empty. - */ - readonly validity?: readonly TimeRange[]; -}; - -export declare const saveDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, entries: readonly DictionaryEntry[], requestOptions?: (RequestOptions & DictionaryEntriesOptions) | undefined) => Readonly>; - -export declare const saveObject: (base: SearchIndex) => (object: Readonly>, requestOptions?: (RequestOptions & ChunkOptions & SaveObjectsOptions) | undefined) => Readonly>; - -export declare type SaveObjectResponse = { - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * The object id saved. - */ - objectID: string; -}; - -export declare const saveObjects: (base: SearchIndex) => (objects: readonly Readonly>[], requestOptions?: (RequestOptions & ChunkOptions & SaveObjectsOptions) | undefined) => Readonly>; - -export declare type SaveObjectsOptions = { - /** - * If the object id should be generated when does not exists. - */ - readonly autoGenerateObjectIDIfNotExist?: boolean; -}; - -export declare const saveRule: (base: SearchIndex) => (rule: Rule, requestOptions?: (RequestOptions & SaveRulesOptions) | undefined) => Readonly>; - -export declare type SaveRuleResponse = { - /** - * When the given rules got saved. - */ - updatedAt: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -export declare const saveRules: (base: SearchIndex) => (rules: readonly Rule[], requestOptions?: (RequestOptions & SaveRulesOptions) | undefined) => Readonly>; - -export declare type SaveRulesOptions = { - /** - * If the saved rules should be forward to replicas. - */ - readonly forwardToReplicas?: boolean; - /** - * If the existing rules should be removed. - */ - readonly clearExistingRules?: boolean; -}; - -export declare type SaveRulesResponse = { - /** - * When the given rules got saved. - */ - updatedAt: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -export declare const saveSynonym: (base: SearchIndex) => (synonym: Synonym, requestOptions?: (RequestOptions & SaveSynonymsOptions) | undefined) => Readonly>; - -export declare type SaveSynonymResponse = { - /** - * When the given synonyms got saved. - */ - updatedAt: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -export declare const saveSynonyms: (base: SearchIndex) => (synonyms: readonly Synonym[], requestOptions?: (SaveSynonymsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type SaveSynonymsOptions = { - /** - * If the saved synonyms should be forward to replicas. - */ - readonly forwardToReplicas?: boolean; - /** - * If the existing synonyms should be removed. - * @deprecated use clearExistingSynonyms - */ - readonly replaceExistingSynonyms?: boolean; - /** - * If the existing synonyms should be removed. - */ - readonly clearExistingSynonyms?: boolean; -}; - -export declare type SaveSynonymsResponse = { - /** - * When the given synonyms got saved. - */ - updatedAt: number; - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; -}; - -export declare const ScopeEnum: Readonly>; - -export declare type ScopeType = 'settings' | 'synonyms' | 'rules'; - -export declare const search: (base: SearchIndex) => (query: string, requestOptions?: (RequestOptions & SearchOptions) | undefined) => Readonly>>; - -export declare type SearchClient = { - /** - * The application id. - */ - readonly appId: string; - /** - * The underlying transporter. - */ - readonly transporter: Transporter; - /** - * Mutates the transporter, adding the given user agent. - */ - readonly addAlgoliaAgent: (segment: string, version?: string) => void; - /** - * Clears both requests and responses caches. - */ - readonly clearCache: () => Readonly>; -}; - -export declare type SearchClientOptions = { - /** - * The application id. - */ - readonly appId: string; - /** - * The api key. - */ - readonly apiKey: string; - /** - * The auth mode type. In browser environments credentials may - * be passed within the headers. - */ - readonly authMode?: AuthModeType; -}; - -export declare const searchDictionaryEntries: (base: SearchClient) => (dictionary: DictionaryName, query: string, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare type SearchDictionaryEntriesResponse = { - /** - * The dictionary entries returned by the search. - */ - hits: DictionaryEntry[]; - /** - * Index of the current page (zero-based). - */ - page: number; - /** - * Number of dictionary entries matched by the query. - */ - nbHits: number; - /** - * Number of pages returned. - * - * Calculation is based on the total number of hits (nbHits) divided by the - * number of hits per page (hitsPerPage), rounded up to the nearest integer. - */ - nbPages: number; -}; - -export declare const searchForFacetValues: (base: SearchIndex) => (facetName: string, facetQuery: string, requestOptions?: (RequestOptions & SearchOptions) | undefined) => Readonly>; - -export declare type SearchForFacetValuesQueryParams = { - /** - * The facet name. - */ - readonly facetName: string; - /** - * The facet query. - */ - readonly facetQuery: string; -}; - -export declare type SearchForFacetValuesResponse = { - /** - * The list of facet hits. - */ - facetHits: FacetHit[]; - /** - * The exhaustive facets count. - */ - exhaustiveFacetsCount: boolean; - /** - * The time that the API toke the process the request. - */ - processingTimeMS?: number; -}; - -export declare type SearchIndex = { - /** - * The application id. - */ - readonly appId: string; - /** - * The index name. - */ - readonly indexName: string; - /** - * The underlying transporter. - */ - readonly transporter: Transporter; -}; - -export declare type SearchOptions = { - /** - * Create a new query with an empty search query. - */ - readonly query?: string; - /** - * Allows a search for similar objects, but the query has to be constructed on your end and included alongside an empty query. - * - * The similarQuery should be made from the tags and keywords of the relevant object. - */ - readonly similarQuery?: string; - /** - * Filter hits by facet value. - */ - readonly facetFilters?: string | readonly string[] | ReadonlyArray; - /** - * Create filters for ranking purposes, where records that match the filter are ranked highest. - */ - readonly optionalFilters?: string | readonly string[] | ReadonlyArray; - /** - * Filter on numeric attributes. - */ - readonly numericFilters?: string | readonly string[] | ReadonlyArray; - /** - * Filter hits by tags. tagFilters is a different way of filtering, which relies on the _tags - * attribute. It uses a simpler syntax than filters. You can use it when you want to do - * simple filtering based on tags. - */ - readonly tagFilters?: string | readonly string[] | ReadonlyArray; - /** - * Determines how to calculate the total score for filtering. - */ - readonly sumOrFiltersScores?: boolean; - /** - * Filter the query with numeric, facet and/or tag filters. - */ - readonly filters?: string; - /** - * Specify the page to retrieve. - */ - readonly page?: number; - /** - * Set the number of hits per page. - */ - readonly hitsPerPage?: number; - /** - * Specify the offset of the first hit to return. - */ - readonly offset?: number; - /** - * Set the number of hits to retrieve (used only with offset). - */ - readonly length?: number; - /** - * List of attributes to highlight. - */ - readonly attributesToHighlight?: readonly string[]; - /** - * List of attributes to snippet, with an optional maximum number of words to snippet. - */ - readonly attributesToSnippet?: readonly string[]; - /** - * Gives control over which attributes to retrieve and which not to retrieve. - */ - readonly attributesToRetrieve?: readonly string[]; - /** - * The HTML string to insert before the highlighted parts in all highlight and snippet results. - */ - readonly highlightPreTag?: string; - /** - * The HTML string to insert after the highlighted parts in all highlight and snippet results - */ - readonly highlightPostTag?: string; - /** - * String used as an ellipsis indicator when a snippet is truncated. - */ - readonly snippetEllipsisText?: string; - /** - * Restrict highlighting and snippeting to items that matched the query. - */ - readonly restrictHighlightAndSnippetArrays?: boolean; - /** - * Facets to retrieve. - */ - readonly facets?: readonly string[]; - /** - * Maximum number of facet values to return for each facet during a regular search. - */ - readonly maxValuesPerFacet?: number; - /** - * Force faceting to be applied after de-duplication (via the Distinct setting). - */ - readonly facetingAfterDistinct?: boolean; - /** - * Minimum number of characters a word in the query string must contain to accept matches with 1 typo - */ - readonly minWordSizefor1Typo?: number; - /** - * Minimum number of characters a word in the query string must contain to accept matches with 2 typos. - */ - readonly minWordSizefor2Typos?: number; - /** - * Whether to allow typos on numbers (“numeric tokens”) in the query string. - */ - readonly allowTyposOnNumericTokens?: boolean; - /** - * List of attributes on which you want to disable typo tolerance. - */ - readonly disableTypoToleranceOnAttributes?: readonly string[]; - /** - * Controls if and how query words are interpreted as prefixes. - */ - readonly queryType?: 'prefixLast' | 'prefixAll' | 'prefixNone'; - /** - * Selects a strategy to remove words from the query when it doesn’t match any hits. - */ - readonly removeWordsIfNoResults?: 'none' | 'lastWords' | 'firstWords' | 'allOptional'; - /** - * Enables the advanced query syntax. - */ - readonly advancedSyntax?: boolean; - /** - * AdvancedSyntaxFeatures can be exactPhrase or excludeWords - */ - readonly advancedSyntaxFeatures?: ReadonlyArray<'exactPhrase' | 'excludeWords'>; - /** - * A list of words that should be considered as optional when found in the query. - */ - readonly optionalWords?: string | readonly string[]; - /** - * List of attributes on which you want to disable the exact ranking criterion. - */ - readonly disableExactOnAttributes?: readonly string[]; - /** - * Controls how the exact ranking criterion is computed when the query contains only one word. - */ - readonly exactOnSingleWordQuery?: 'attribute' | 'none' | 'word'; - /** - * List of alternatives that should be considered an exact match by the exact ranking criterion. - */ - readonly alternativesAsExact?: ReadonlyArray<'ignorePlurals' | 'singleWordSynonym' | 'multiWordsSynonym'>; - /** - * Whether rules should be globally enabled. - */ - readonly enableRules?: boolean; - /** - * Enables contextual rules. - */ - readonly ruleContexts?: readonly string[]; - /** - * Enables de-duplication or grouping of results. - */ - readonly distinct?: boolean | number; - /** - * Whether the current query will be taken into account in the Analytics - */ - readonly analytics?: boolean; - /** - * List of tags to apply to the query in the analytics. - */ - readonly analyticsTags?: readonly string[]; - /** - * Whether to take into account an index’s synonyms for a particular search. - */ - readonly synonyms?: boolean; - /** - * Whether to highlight and snippet the original word that matches the synonym or the synonym itself. - */ - readonly replaceSynonymsInHighlight?: boolean; - /** - * Precision of the proximity ranking criterion. - */ - readonly minProximity?: number; - /** - * Choose which fields the response will contain. Applies to search and browse queries. - */ - readonly responseFields?: readonly string[]; - /** - * Maximum number of facet hits to return during a search for facet values. - */ - readonly maxFacetHits?: number; - /** - * Whether to include or exclude a query from the processing-time percentile computation. - */ - readonly percentileComputation?: boolean; - /** - * Enable the Click Analytics feature. - */ - readonly clickAnalytics?: boolean; - /** - * The `personalizationImpact` parameter sets the percentage of the impact that personalization has on ranking records. The - * value must be between 0 and 100 (inclusive). This parameter will not be taken into account if `enablePersonalization` - * is **false**. - */ - readonly personalizationImpact?: number; - /** - * Enable personalization for the query - */ - readonly enablePersonalization?: boolean; - /** - * Restricts a given query to look in only a subset of your searchable attributes. - */ - readonly restrictSearchableAttributes?: readonly string[]; - /** - * Controls how facet values are sorted. - */ - readonly sortFacetValuesBy?: 'count' | 'alpha'; - /** - * Controls whether typo tolerance is enabled and how it is applied. - */ - readonly typoTolerance?: boolean | 'min' | 'strict'; - /** - * Search for entries around a central geolocation, enabling a geo search within a circular area. - */ - readonly aroundLatLng?: string; - /** - * Search for entries around a given location automatically computed from the requester’s IP address. - */ - readonly aroundLatLngViaIP?: boolean; - /** - * Define the maximum radius for a geo search (in meters). - */ - readonly aroundRadius?: number | 'all'; - /** - * Precision of geo search (in meters), to add grouping by geo location to the ranking formula. - */ - readonly aroundPrecision?: number | ReadonlyArray<{ - readonly from: number; - readonly value: number; - }>; - /** - * Minimum radius (in meters) used for a geo search when aroundRadius is not set. - */ - readonly minimumAroundRadius?: number; - /** - * Search inside a rectangular area (in geo coordinates). - */ - readonly insideBoundingBox?: ReadonlyArray | string; - /** - * Search inside a polygon (in geo coordinates). - */ - readonly insidePolygon?: ReadonlyArray; - /** - * Treats singular, plurals, and other forms of declensions as matching terms. - */ - readonly ignorePlurals?: boolean | readonly string[]; - /** - * Removes stop (common) words from the query before executing it. - */ - readonly removeStopWords?: boolean | readonly string[]; - /** - * List of supported languages with their associated language ISO code. - * - * Apply a set of natural language best practices such as ignorePlurals, - * removeStopWords, removeWordsIfNoResults, analyticsTags and ruleContexts. - */ - readonly naturalLanguages?: readonly string[]; - /** - * When true, each hit in the response contains an additional _rankingInfo object. - */ - readonly getRankingInfo?: boolean; - /** - * A user identifier. - * Format: alpha numeric string [a-zA-Z0-9_-] - * Length: between 1 and 64 characters. - */ - readonly userToken?: string; - /** - * Can be to enable or disable A/B tests at query time. - * Engine's default: true - */ - readonly enableABTest?: boolean; - /** - * Enable word segmentation (also called decompounding) at query time for - * compatible languages. For example, this turns the Dutch query - * "spaanplaatbehang" into "spaan plaat behang" to retrieve more relevant - * results. - */ - readonly decompoundQuery?: boolean; - /** - * The relevancy threshold to apply to search in a virtual index [0-100]. A Bigger - * value means fewer, but more relevant results, smaller value means more, but - * less relevant results. - */ - readonly relevancyStrictness?: number; - /** - * Whether this search should use Dynamic Re-Ranking. - * @link https://www.algolia.com/doc/guides/algolia-ai/re-ranking/ - * - * Note: You need to turn on Dynamic Re-Ranking on your index for it to have an effect on - * your search results. You can do this through the Re-Ranking page on the dashboard. - * This parameter is only used to turn off Dynamic Re-Ranking (with false) at search time. - */ - readonly enableReRanking?: boolean; - /** - * When Dynamic Re-Ranking is enabled, only records that match these filters will be impacted by Dynamic Re-Ranking. - */ - readonly reRankingApplyFilter?: string | readonly string[] | ReadonlyArray | null; - /** - * Sets the languages to be used by language-specific settings and functionalities such as ignorePlurals, removeStopWords, and CJK word-detection. - */ - readonly queryLanguages?: readonly string[]; - /** - * Enriches the API’s response with meta-information as to how the query was processed. - */ - readonly explain?: readonly string[]; -}; - -export declare type SearchResponse = { - /** - * The hits returned by the search. - * - * Hits are ordered according to the ranking or sorting of the index being queried. - */ - hits: Array>; - /** - * Index of the current page (zero-based). - */ - page: number; - /** - * Number of hits returned (used only with offset) - */ - length?: number; - /** - * The offset of the first hit to returned. - */ - offset?: number; - /** - * Number of hits matched by the query. - */ - nbHits: number; - /** - * Subset of hits selected when relevancyStrictness is applied. - */ - nbSortedHits?: number; - /** - * Number of pages returned. - * - * Calculation is based on the total number of hits (nbHits) divided by the - * number of hits per page (hitsPerPage), rounded up to the nearest integer. - */ - nbPages: number; - /** - * Maximum number of hits returned per page. - */ - hitsPerPage: number; - /** - * Time the server took to process the request, in milliseconds. This does not include network time. - */ - processingTimeMS: number; - /** - * Whether the nbHits is exhaustive (true) or approximate (false). - * - * An approximation is done when the query takes more than 50ms to be - * processed (this can happen when using complex filters on millions on records). - */ - exhaustiveNbHits: boolean; - /** - * Whether the facet count is exhaustive (true) or approximate (false). - */ - exhaustiveFacetsCount?: boolean; - /** - * A mapping of each facet name to the corresponding facet counts. - */ - facets?: Record>; - /** - * Statistics for numerical facets. - */ - facets_stats?: Record; - /** - * The query used to search. Accepts every character, and every character entered will be used in the search. - * - * An empty query can be used to fetch all records. - */ - query: string; - /** - * A markup text indicating which parts of the original query have been removed in order to retrieve a non-empty result set. - */ - queryAfterRemoval?: string; - /** - * A url-encoded string of all search parameters. - */ - params: string; - /** - * Unique identifier of the search query, to be sent in Insights methods. This identifier links events back to the search query it represents. - * - * Returned only if clickAnalytics is true. - */ - queryID?: string; - /** - * Used to return warnings about the query. - */ - message?: string; - /** - * The computed geo location. - * - * Format: "lat,lng", where the latitude and longitude are expressed as decimal floating point number. - */ - aroundLatLng?: string; - /** - * The automatically computed radius. - */ - automaticRadius?: string; - /** - * Actual host name of the server that processed the request. - * - * Our DNS supports automatic failover and load balancing, so this may differ from the host name used in the request. - */ - serverUsed?: string; - /** - * Index name used for the query. - */ - index?: string; - /** - * Index name used for the query. In case of AB test, the index targetted isn’t always the index used by the query. - */ - indexUsed?: string; - /** - * If a search encounters an index that is being A/B tested, abTestID reports the ongoing A/B test ID. - */ - abTestID?: number; - /** - * In case of AB test, reports the variant ID used. The variant ID is the position in the array of variants (starting at 1). - */ - abTestVariantID?: number; - /** - * The query string that will be searched, after normalization. - */ - parsedQuery?: string; - /** - * Custom user data. - */ - userData?: any; - /** - * Rules applied to the query. - */ - appliedRules?: Array>; - /** - * The explanation of the decompounding at query time. - */ - explain?: { - /** - * The explain query match. - */ - match: { - /** - * The explain query match alternatives. - */ - alternatives: Array<{ - /** - * The alternative type. - */ - types: string[]; - /** - * The list of alternative words. - */ - words: string[]; - /** - * The number of typos. - */ - typos: number; - /** - * The offset. - */ - offset: number; - /** - * The length. - */ - length: number; - }>; - }; - /** - * Query parameter reporting. Parameters are reported - * as a JSON object with one field per parameter. - */ - params?: Record; - /** - * This parameter is for internal use only. - */ - redirect?: { - index?: RedirectRuleIndexMetadata[]; - }; - }; - /** - * The relevancy threshold applied to search in a virtual index. - */ - appliedRelevancyStrictness?: number; - renderingContent?: Settings['renderingContent']; -}; - -export declare const searchRules: (base: SearchIndex) => (query: string, requestOptions?: (RequestOptions & SearchRulesOptions) | undefined) => Readonly>>; - -export declare type SearchRulesOptions = { - /** - * Full text query. - */ - readonly query?: string; - /** - * When specified, restricts matches to rules with a specific anchoring type. When omitted, all anchoring types may match. - */ - readonly anchoring?: string; - /** - * Restricts matches to contextual rules with a specific context (exact match). - */ - readonly context?: string; - /** - * Requested page (zero-based). - */ - readonly page?: number; - /** - * Maximum number of hits in a page. Minimum is 1, maximum is 1000. - */ - readonly hitsPerPage?: number; - /** - * When specified, restricts matches to rules with a specific enabled status. - * When absent (default), all rules are retrieved, regardless of their enabled status. - */ - readonly enabled?: boolean; -}; - -export declare const searchSynonyms: (base: SearchIndex) => (query: string, requestOptions?: (SearchSynonymsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type SearchSynonymsOptions = { - /** - * The synonym type. - */ - readonly type?: string; - /** - * Page to retrieve. - */ - readonly page?: number; - /** - * Number of hits per page. - */ - readonly hitsPerPage?: number; -}; - -export declare type SearchSynonymsResponse = { - /** - * The list of synonyms. - */ - hits: Synonym[]; - /** - * The number of synonyms on the list. - */ - nbHits: number; -}; - -export declare const searchUserIDs: (base: SearchClient) => (query: string, requestOptions?: (SearchUserIDsOptions & RequestOptions) | undefined) => Readonly>; - -export declare type SearchUserIDsOptions = { - /** - * If specified, only clusters assigned to this cluster can be returned. - * */ - readonly cluster?: string; - /** - * Page to fetch. - */ - readonly page?: number; - /** - * Number of users to return by page. - */ - readonly hitsPerPage?: number; -}; - -export declare type SearchUserIDsResponse = { - /** - * List of userID matching the query. - */ - hits: UserIDResponse[]; - /** - * Current page. - */ - page: number; - /** - * Number of userIDs matching the query. - */ - nbHits: number; - /** - * Number of hits retrieved per page. - */ - hitsPerPage: number; - /** - * Timestamp of the last update of the index. - */ - updatedAt: number; -}; - -export declare type SecuredApiKeyRestrictions = SearchOptions & { - /** - * A Unix timestamp used to define the expiration date of the API key. - */ - readonly validUntil?: number; - /** - * List of index names that can be queried. - */ - readonly restrictIndices?: readonly string[] | string; - /** - * IPv4 network allowed to use the generated key. This is used for more protection against API key leaking and reuse. - */ - readonly restrictSources?: string; - /** - * Specify a user identifier. This is often used with rate limits. - */ - readonly userToken?: string; -}; - -export declare const setDictionarySettings: (base: SearchClient) => (settings: DictionarySettings, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const setSettings: (base: SearchIndex) => (settings: Settings, requestOptions?: (RequestOptions & SetSettingsOptions) | undefined) => Readonly>; - -export declare type SetSettingsOptions = { - /** - * If the saved settings should be forward to replicas. - */ - readonly forwardToReplicas?: boolean; -}; - -export declare type SetSettingsResponse = { - /** - * The operation task id. May be used to perform a wait task. - */ - taskID: number; - /** - * When the settings got updated. - */ - updatedAt: number; -}; - -export declare type Settings = { - /** - * The complete list of attributes that will be used for searching. - */ - readonly searchableAttributes?: readonly string[]; - /** - * @deprecated Use `searchableAttributes` instead. - */ - readonly attributesToIndex?: readonly string[]; - /** - * The complete list of attributes that will be used for faceting. - */ - readonly attributesForFaceting?: readonly string[]; - /** - * List of attributes that cannot be retrieved at query time. - */ - readonly unretrievableAttributes?: readonly string[]; - /** - * Gives control over which attributes to retrieve and which not to retrieve. - */ - readonly attributesToRetrieve?: readonly string[]; - /** - * Controls the way results are sorted. - */ - readonly ranking?: readonly string[]; - /** - * Specifies the custom ranking criterion. - */ - readonly customRanking?: readonly string[]; - /** - * Creates replicas, exact copies of an index. - */ - readonly replicas?: readonly string[]; - /** - * @deprecated Use `replicas` instead. - */ - readonly slaves?: readonly string[]; - /** - * The primary parameter is automatically added to a replica's settings when the replica is created and cannot be modified. - * - * Can not be setted. - */ - readonly primary?: string; - /** - * Maximum number of facet values to return for each facet during a regular search. - */ - readonly maxValuesPerFacet?: number; - /** - * Controls how facet values are sorted. - */ - readonly sortFacetValuesBy?: 'count' | 'alpha'; - /** - * List of attributes to highlight. - */ - readonly attributesToHighlight?: readonly string[]; - /** - * List of attributes to snippet, with an optional maximum number of words to snippet. - */ - readonly attributesToSnippet?: readonly string[]; - /** - * The HTML string to insert before the highlighted parts in all highlight and snippet results. - */ - readonly highlightPreTag?: string; - /** - * The HTML string to insert after the highlighted parts in all highlight and snippet results. - */ - readonly highlightPostTag?: string; - /** - * String used as an ellipsis indicator when a snippet is truncated. - */ - readonly snippetEllipsisText?: string; - /** - * Restrict highlighting and snippeting to items that matched the query. - */ - readonly restrictHighlightAndSnippetArrays?: boolean; - /** - * Set the number of hits per page. - */ - readonly hitsPerPage?: number; - /** - * Set the maximum number of hits accessible via pagination. - */ - readonly paginationLimitedTo?: number; - /** - * Minimum number of characters a word in the query string must contain to accept matches with 1 typo. - */ - readonly minWordSizefor1Typo?: number; - /** - * Minimum number of characters a word in the query string must contain to accept matches with 2 typos. - */ - readonly minWordSizefor2Typos?: number; - /** - * Controls whether typo tolerance is enabled and how it is applied. - */ - readonly typoTolerance?: string | boolean; - /** - * hether to allow typos on numbers (“numeric tokens”) in the query string. - */ - readonly allowTyposOnNumericTokens?: boolean; - /** - * List of attributes on which you want to disable typo tolerance. - */ - readonly disableTypoToleranceOnAttributes?: readonly string[]; - /** - * List of words on which you want to disable typo tolerance. - */ - readonly disableTypoToleranceOnWords?: readonly string[]; - /** - * Control which separators are indexed. - */ - readonly separatorsToIndex?: string; - /** - * Treats singular, plurals, and other forms of declensions as matching terms. - */ - readonly ignorePlurals?: readonly string[] | boolean; - /** - * Sets the languages to be used by language-specific settings and functionalities such as ignorePlurals, removeStopWords, and CJK word-detection. - */ - readonly queryLanguages?: readonly string[]; - /** - * A list of language ISO code. - */ - readonly indexLanguages?: readonly string[]; - /** - * Whether rules should be globally enabled. - */ - readonly enableRules?: boolean; - /** - * Controls if and how query words are interpreted as prefixes. - */ - readonly queryType?: 'prefixLast' | 'prefixAll' | 'prefixNone'; - /** - * Selects a strategy to remove words from the query when it doesn’t match any hits. - */ - readonly removeWordsIfNoResults?: 'none' | 'lastWords' | 'firstWords' | 'allOptional'; - /** - * Enables the advanced query syntax. - */ - readonly advancedSyntax?: boolean; - /** - * AdvancedSyntaxFeatures can be exactPhrase or excludeWords - */ - readonly advancedSyntaxFeatures?: ReadonlyArray<'exactPhrase' | 'excludeWords'>; - /** - * A list of words that should be considered as optional when found in the query. - */ - readonly optionalWords?: readonly string[]; - /** - * List of attributes on which you want to disable prefix matching. - */ - readonly disablePrefixOnAttributes?: readonly string[]; - /** - * List of attributes on which you want to disable the exact ranking criterion. - */ - readonly disableExactOnAttributes?: readonly string[]; - /** - * Controls how the exact ranking criterion is computed when the query contains only one word. - */ - readonly exactOnSingleWordQuery?: 'attribute' | 'none' | 'word'; - /** - * List of alternatives that should be considered an exact match by the exact ranking criterion. - */ - readonly alternativesAsExact?: ReadonlyArray<'ignorePlurals' | 'singleWordSynonym' | 'multiWordsSynonym'>; - /** - * Removes stop (common) words from the query before executing it. - */ - readonly removeStopWords?: boolean | readonly string[]; - /** - * List of numeric attributes that can be used as numerical filters. - */ - readonly numericAttributesForFiltering?: readonly string[]; - /** - * Enables compression of large integer arrays. - */ - readonly allowCompressionOfIntegerArray?: boolean; - /** - * Name of the de-duplication attribute to be used with the distinct feature. - */ - readonly attributeForDistinct?: string; - /** - * Enables de-duplication or grouping of results. - */ - readonly distinct?: boolean | number; - /** - * Whether to highlight and snippet the original word that matches the synonym or the synonym itself. - */ - readonly replaceSynonymsInHighlight?: boolean; - /** - * Allows proximity to impact which searchable attribute is matched in the attribute ranking stage. - */ - readonly attributeCriteriaComputedByMinProximity?: boolean; - /** - * Precision of the proximity ranking criterion. - */ - readonly minProximity?: number; - /** - * Choose which fields the response will contain. Applies to search and browse queries. - */ - readonly responseFields?: readonly string[]; - /** - * Maximum number of facet hits to return during a search for facet values. - */ - readonly maxFacetHits?: number; - /** - * List of attributes on which to do a decomposition of camel case words. - */ - readonly camelCaseAttributes?: readonly string[]; - /** - * Specify on which attributes in your index Algolia should apply word-splitting (“decompounding”) - */ - readonly decompoundedAttributes?: Readonly>; - /** - * Characters that should not be automatically normalized by the search engine. - */ - readonly keepDiacriticsOnCharacters?: string; - /** - * Overrides Algolia's default normalization. - */ - readonly customNormalization?: Readonly>>>; - /** - * Enable personalization for queries by default - */ - readonly enablePersonalization?: boolean; - /** - * Custom userData that could be added to the Settings. - */ - readonly userData?: any; - /** - * Enable word segmentation (also called decompounding) at query time for - * compatible languages. For example, this turns the Dutch query - * "spaanplaatbehang" into "spaan plaat behang" to retrieve more relevant - * results. - */ - readonly decompoundQuery?: boolean; - /** - * Specify on which attributes in your index Algolia should apply Japanese - * transliteration to make words indexed in Katakana or Kanji searchable in Hiragana. - */ - readonly attributesToTransliterate?: readonly string[]; - /** - * The relevancy threshold to apply to search in a virtual index [0-100]. A Bigger - * value means fewer, but more relevant results, smaller value means more, but - * less relevant results. - */ - readonly relevancyStrictness?: number; - /** - * The search mode that the index will use to query for results. - */ - readonly mode?: 'neuralSearch' | 'keywordSearch'; - /** - * The settings relevant for configuration of the semantic search engine. - * These settings are only used when the mode is set to 'neuralSearch'. - */ - readonly semanticSearch?: { - /** - * When null, the current index / replica group will be used as the event source. - */ - readonly eventSources?: readonly string[] | null; - }; - /** - * Content defining how the search interface should be rendered. - * This is set via the settings for a default value and can be overridden via rules - */ - readonly renderingContent?: { - /** - * defining how facets should be ordered - */ - readonly facetOrdering?: { - /** - * the ordering of facets (widgets) - */ - readonly facets?: { - /** - * pinned order of facet lists - */ - readonly order?: readonly string[]; - }; - /** - * the ordering of facet values, within an individual list - */ - readonly values?: { - readonly [facet: string]: { - /** - * pinned order of facet values - */ - readonly order?: readonly string[]; - /** - * How to display the remaining items. - * - facet count (descending) - * - alphabetical (ascending) - * - hidden (show only pinned values) - */ - readonly sortRemainingBy?: 'count' | 'alpha' | 'hidden'; - }; - }; - }; - }; - /** - * Whether this index should use Dynamic Re-Ranking. - * @link https://www.algolia.com/doc/guides/algolia-ai/re-ranking/ - * - * Note: You need to turn on Dynamic Re-Ranking on your index for it to have an effect on - * your search results. You can do this through the Re-Ranking page on the dashboard. - */ - readonly enableReRanking?: boolean; - /** - * When Dynamic Re-Ranking is enabled, only records that match these filters will be impacted by Dynamic Re-Ranking. - */ - readonly reRankingApplyFilter?: string | readonly string[] | ReadonlyArray | null; -}; - -declare type SharedMultipleQueriesQuery = { - /** - * The type of query to perform. - * - * @defaultValue "default" - */ - readonly type?: 'default' | 'facet'; - /** - * The index name. - */ - readonly indexName: string; - /** - * The search options. - */ - readonly params?: SearchOptions; - /** - * The query associated with the request. - */ - readonly query?: string; -}; - -declare type SnippetMatch = { - readonly value: string; - readonly matchLevel: 'none' | 'partial' | 'full'; -}; - -export declare type SnippetResult = THit extends string | number ? SnippetMatch : { - [KAttribute in keyof THit]: SnippetResult; -}; - -export declare const StrategyEnum: Readonly>; - -export declare type StrategyType = 'none' | 'stopIfEnoughMatches'; - -export declare type Synonym = { - /** - * Synonym object ID. - */ - readonly objectID: string; - /** - * There are 4 synonym types. The parameter can be one of the following value. - */ - readonly type: SynonymType; - /** - * A list of synonyms. - */ - readonly synonyms?: readonly string[]; - /** - * Defines the synonym. A word or expression, used as the basis for the array of synonyms. - */ - readonly input?: string; - /** - * A single word, used as the basis for the below array of corrections. - */ - readonly word?: string; - /** - * An list of corrections of the word. - */ - readonly corrections?: readonly string[]; - /** - * A single word, used as the basis for the below list of replacements. - */ - readonly placeholder?: string; - /** - * An list of replacements of the placeholder. - */ - readonly replacements?: readonly string[]; -}; - -export declare const SynonymEnum: Readonly>; - -export declare type SynonymType = 'synonym' | 'oneWaySynonym' | 'altCorrection1' | 'altCorrection2' | 'placeholder'; - -export declare type TaskStatusResponse = { - /** - * The operation status. When the value is `published` the - * operation is completed. - */ - status: string; - /** - * If the operation is pending. - */ - pendingTask: boolean; -}; - -export declare type TimeRange = { - /** - * DateTime with UTC offset for Serialization/Deserialization in unix timespan. - */ - readonly from: number; - /** - * DateTime with UTC offset for Serialization/Deserialization in unix timespan. - */ - readonly until: number; -}; - -export declare const updateApiKey: (base: SearchClient) => (apiKey: string, requestOptions?: (UpdateApiKeyOptions & Pick) | undefined) => Readonly>; - -export declare type UpdateApiKeyOptions = { - /** - * List of permissions the key contains. - */ - readonly acl?: readonly ApiKeyACLType[]; - /** - * A Unix timestamp used to define the expiration date of the API key. - */ - readonly validity?: number; - /** - * Specify the maximum number of hits this API key can retrieve in one call. - * This parameter can be used to protect you from attempts at retrieving your entire index contents by massively querying the index. - */ - readonly maxHitsPerQuery?: number; - /** - * Specify the maximum number of API calls allowed from an IP address per hour. Each time an API call is performed with this key, a check is performed. - */ - readonly maxQueriesPerIPPerHour?: number; - /** - * Specify the list of targeted indices. You can target all indices starting with a prefix or ending with a suffix using the ‘*’ character. - */ - readonly indexes?: readonly string[]; - /** - * Specify the list of referers. You can target all referers starting with a prefix, ending with a suffix using the ‘*’ character. - */ - readonly referers?: readonly string[]; - /** - * Specify the list of query parameters. You can force the query parameters for a query using the url string format. - */ - readonly queryParameters?: string; - /** - * Specify a description of the API key. Used for informative purposes only. It has impact on the functionality of the API key. - */ - readonly description?: string; -}; - -export declare type UpdateApiKeyResponse = { - /** - * The api key. - */ - key: string; - /** - * Date of update - */ - updatedAt: string; -}; - -export declare type UserIDResponse = { - /** - * userID of the user. - */ - userID: string; - /** - * Cluster on which the user is assigned - */ - clusterName: string; - /** - * Number of records belonging to the user. - */ - nbRecords: number; - /** - * Data size used by the user. - */ - dataSize: number; -}; - -export declare const waitAppTask: (base: SearchClient) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export declare const waitTask: (base: SearchIndex) => (taskID: number, requestOptions?: RequestOptions | undefined) => Readonly>; - -export { } diff --git a/node_modules/@algolia/client-search/dist/client-search.esm.js b/node_modules/@algolia/client-search/dist/client-search.esm.js deleted file mode 100644 index e238ea0..0000000 --- a/node_modules/@algolia/client-search/dist/client-search.esm.js +++ /dev/null @@ -1,1287 +0,0 @@ -import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common'; -import { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter'; -import { MethodEnum } from '@algolia/requester-common'; -import { createHmac } from 'crypto'; - -function createBrowsablePromise(options) { - const browse = (data) => { - return options.request(data).then(response => { - /** - * First we send to the developer the - * batch retrieved from the API. - */ - if (options.batch !== undefined) { - options.batch(response.hits); - } - /** - * Then, we ask to the browse concrete implementation - * if we should stop browsing. As example, the `browseObjects` - * method will stop if the cursor is not present on the response. - */ - if (options.shouldStop(response)) { - return undefined; - } - /** - * Finally, if the response contains a cursor, we browse to the next - * batch using that same cursor. Otherwise, we just use the traditional - * browsing using the page element. - */ - if (response.cursor) { - return browse({ - cursor: response.cursor, - }); - } - return browse({ - page: (data.page || 0) + 1, - }); - }); - }; - return browse({}); -} - -const createSearchClient = options => { - const appId = options.appId; - const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey); - const transporter = createTransporter({ - hosts: [ - { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read }, - { url: `${appId}.algolia.net`, accept: CallEnum.Write }, - ].concat(shuffle([ - { url: `${appId}-1.algolianet.com` }, - { url: `${appId}-2.algolianet.com` }, - { url: `${appId}-3.algolianet.com` }, - ])), - ...options, - headers: { - ...auth.headers(), - ...{ 'content-type': 'application/x-www-form-urlencoded' }, - ...options.headers, - }, - queryParameters: { - ...auth.queryParameters(), - ...options.queryParameters, - }, - }); - const base = { - transporter, - appId, - addAlgoliaAgent(segment, version) { - transporter.userAgent.add({ segment, version }); - }, - clearCache() { - return Promise.all([ - transporter.requestsCache.clear(), - transporter.responsesCache.clear(), - ]).then(() => undefined); - }, - }; - return addMethods(base, options.methods); -}; - -function createMissingObjectIDError() { - return { - name: 'MissingObjectIDError', - message: 'All objects must have an unique objectID ' + - '(like a primary key) to be valid. ' + - 'Algolia is also able to generate objectIDs ' + - "automatically but *it's not recommended*. " + - "To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.", - }; -} - -function createObjectNotFoundError() { - return { - name: 'ObjectNotFoundError', - message: 'Object not found.', - }; -} - -function createValidUntilNotFoundError() { - return { - name: 'ValidUntilNotFoundError', - message: 'ValidUntil not found in given secured api key.', - }; -} - -const addApiKey = (base) => { - return (acl, requestOptions) => { - const { queryParameters, ...options } = requestOptions || {}; - const data = { - acl, - ...(queryParameters !== undefined ? { queryParameters } : {}), - }; - const wait = (response, waitRequestOptions) => { - return createRetryablePromise(retry => { - return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => { - if (apiError.status !== 404) { - throw apiError; - } - return retry(); - }); - }); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: '1/keys', - data, - }, options), wait); - }; -}; - -const assignUserID = (base) => { - return (userID, clusterName, requestOptions) => { - const mappedRequestOptions = createMappedRequestOptions(requestOptions); - // eslint-disable-next-line functional/immutable-data - mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID; - return base.transporter.write({ - method: MethodEnum.Post, - path: '1/clusters/mapping', - data: { cluster: clusterName }, - }, mappedRequestOptions); - }; -}; - -const assignUserIDs = (base) => { - return (userIDs, clusterName, requestOptions) => { - return base.transporter.write({ - method: MethodEnum.Post, - path: '1/clusters/mapping/batch', - data: { - users: userIDs, - cluster: clusterName, - }, - }, requestOptions); - }; -}; - -const clearDictionaryEntries = (base) => { - return (dictionary, requestOptions) => { - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('/1/dictionaries/%s/batch', dictionary), - data: { - clearExistingDictionaryEntries: true, - requests: { action: 'addEntry', body: [] }, - }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const copyIndex = (base) => { - return (from, to, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return initIndex(base)(from, { - methods: { waitTask }, - }).waitTask(response.taskID, waitRequestOptions); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/operation', from), - data: { - operation: 'copy', - destination: to, - }, - }, requestOptions), wait); - }; -}; - -const copyRules = (base) => { - return (from, to, requestOptions) => { - return copyIndex(base)(from, to, { - ...requestOptions, - scope: [ScopeEnum.Rules], - }); - }; -}; - -const copySettings = (base) => { - return (from, to, requestOptions) => { - return copyIndex(base)(from, to, { - ...requestOptions, - scope: [ScopeEnum.Settings], - }); - }; -}; - -const copySynonyms = (base) => { - return (from, to, requestOptions) => { - return copyIndex(base)(from, to, { - ...requestOptions, - scope: [ScopeEnum.Synonyms], - }); - }; -}; - -const customRequest = (base) => { - return (request, requestOptions) => { - if (request.method === MethodEnum.Get) { - return base.transporter.read(request, requestOptions); - } - return base.transporter.write(request, requestOptions); - }; -}; - -const deleteApiKey = (base) => { - return (apiKey, requestOptions) => { - const wait = (_, waitRequestOptions) => { - return createRetryablePromise(retry => { - return getApiKey(base)(apiKey, waitRequestOptions) - .then(retry) - .catch((apiError) => { - if (apiError.status !== 404) { - throw apiError; - } - }); - }); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Delete, - path: encode('1/keys/%s', apiKey), - }, requestOptions), wait); - }; -}; - -const deleteDictionaryEntries = (base) => { - return (dictionary, objectIDs, requestOptions) => { - const requests = objectIDs.map(objectID => ({ - action: 'deleteEntry', - body: { objectID }, - })); - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('/1/dictionaries/%s/batch', dictionary), - data: { clearExistingDictionaryEntries: false, requests }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const generateSecuredApiKey = () => { - return (parentApiKey, restrictions) => { - const queryParameters = serializeQueryParameters(restrictions); - const securedKey = createHmac('sha256', parentApiKey) - .update(queryParameters) - .digest('hex'); - return Buffer.from(securedKey + queryParameters).toString('base64'); - }; -}; - -const getApiKey = (base) => { - return (apiKey, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/keys/%s', apiKey), - }, requestOptions); - }; -}; - -const getAppTask = (base) => { - return (taskID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/task/%s', taskID.toString()), - }, requestOptions); - }; -}; - -const getDictionarySettings = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '/1/dictionaries/*/settings', - }, requestOptions); - }; -}; - -const getLogs = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/logs', - }, requestOptions); - }; -}; - -const getSecuredApiKeyRemainingValidity = () => { - return (securedApiKey) => { - const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii'); - const regex = /validUntil=(\d+)/; - const match = decodedString.match(regex); - if (match === null) { - throw createValidUntilNotFoundError(); - } - return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000); - }; -}; - -const getTopUserIDs = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/clusters/mapping/top', - }, requestOptions); - }; -}; - -const getUserID = (base) => { - return (userID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/clusters/mapping/%s', userID), - }, requestOptions); - }; -}; - -const hasPendingMappings = (base) => { - return (requestOptions) => { - const { retrieveMappings, ...options } = requestOptions || {}; - if (retrieveMappings === true) { - // eslint-disable-next-line functional/immutable-data - options.getClusters = true; - } - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/clusters/mapping/pending', - }, options); - }; -}; - -const initIndex = (base) => { - return (indexName, options = {}) => { - const searchIndex = { - transporter: base.transporter, - appId: base.appId, - indexName, - }; - return addMethods(searchIndex, options.methods); - }; -}; - -const listApiKeys = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/keys', - }, requestOptions); - }; -}; - -const listClusters = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/clusters', - }, requestOptions); - }; -}; - -const listIndices = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/indexes', - }, requestOptions); - }; -}; - -const listUserIDs = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: '1/clusters/mapping', - }, requestOptions); - }; -}; - -const moveIndex = (base) => { - return (from, to, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return initIndex(base)(from, { - methods: { waitTask }, - }).waitTask(response.taskID, waitRequestOptions); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/operation', from), - data: { - operation: 'move', - destination: to, - }, - }, requestOptions), wait); - }; -}; - -const multipleBatch = (base) => { - return (requests, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return Promise.all(Object.keys(response.taskID).map(indexName => { - return initIndex(base)(indexName, { - methods: { waitTask }, - }).waitTask(response.taskID[indexName], waitRequestOptions); - })); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: '1/indexes/*/batch', - data: { - requests, - }, - }, requestOptions), wait); - }; -}; - -const multipleGetObjects = (base) => { - return (requests, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: '1/indexes/*/objects', - data: { - requests, - }, - }, requestOptions); - }; -}; - -const multipleQueries = (base) => { - return (queries, requestOptions) => { - const requests = queries.map(query => { - return { - ...query, - params: serializeQueryParameters(query.params || {}), - }; - }); - return base.transporter.read({ - method: MethodEnum.Post, - path: '1/indexes/*/queries', - data: { - requests, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const multipleSearchForFacetValues = (base) => { - return (queries, requestOptions) => { - return Promise.all(queries.map(query => { - const { facetName, facetQuery, ...params } = query.params; - return initIndex(base)(query.indexName, { - methods: { searchForFacetValues }, - }).searchForFacetValues(facetName, facetQuery, { - ...requestOptions, - ...params, - }); - })); - }; -}; - -const removeUserID = (base) => { - return (userID, requestOptions) => { - const mappedRequestOptions = createMappedRequestOptions(requestOptions); - // eslint-disable-next-line functional/immutable-data - mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID; - return base.transporter.write({ - method: MethodEnum.Delete, - path: '1/clusters/mapping', - }, mappedRequestOptions); - }; -}; - -const replaceDictionaryEntries = (base) => { - return (dictionary, entries, requestOptions) => { - const requests = entries.map(entry => ({ - action: 'addEntry', - body: entry, - })); - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('/1/dictionaries/%s/batch', dictionary), - data: { clearExistingDictionaryEntries: true, requests }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const restoreApiKey = (base) => { - return (apiKey, requestOptions) => { - const wait = (_, waitRequestOptions) => { - return createRetryablePromise(retry => { - return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => { - if (apiError.status !== 404) { - throw apiError; - } - return retry(); - }); - }); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/keys/%s/restore', apiKey), - }, requestOptions), wait); - }; -}; - -const saveDictionaryEntries = (base) => { - return (dictionary, entries, requestOptions) => { - const requests = entries.map(entry => ({ - action: 'addEntry', - body: entry, - })); - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('/1/dictionaries/%s/batch', dictionary), - data: { clearExistingDictionaryEntries: false, requests }, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const searchDictionaryEntries = (base) => { - return (dictionary, query, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode('/1/dictionaries/%s/search', dictionary), - data: { - query, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const searchUserIDs = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: '1/clusters/mapping/search', - data: { - query, - }, - }, requestOptions); - }; -}; - -const setDictionarySettings = (base) => { - return (settings, requestOptions) => { - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Put, - path: '/1/dictionaries/*/settings', - data: settings, - }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const updateApiKey = (base) => { - return (apiKey, requestOptions) => { - const updatedFields = Object.assign({}, requestOptions); - const { queryParameters, ...options } = requestOptions || {}; - const data = queryParameters ? { queryParameters } : {}; - const apiKeyFields = [ - 'acl', - 'indexes', - 'referers', - 'restrictSources', - 'queryParameters', - 'description', - 'maxQueriesPerIPPerHour', - 'maxHitsPerQuery', - ]; - // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update - const hasChanged = (getApiKeyResponse) => { - return Object.keys(updatedFields) - .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1) - .every(updatedField => { - // If the field is an array, we need to check that they are the same length and that all the values are the same - if (Array.isArray(getApiKeyResponse[updatedField]) && - Array.isArray(updatedFields[updatedField])) { - const getApiKeyResponseArray = getApiKeyResponse[updatedField]; - return (getApiKeyResponseArray.length === updatedFields[updatedField].length && - getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index])); - } - else { - return getApiKeyResponse[updatedField] === updatedFields[updatedField]; - } - }); - }; - const wait = (_, waitRequestOptions) => createRetryablePromise(retry => { - return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => { - return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry(); - }); - }); - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Put, - path: encode('1/keys/%s', apiKey), - data, - }, options), wait); - }; -}; - -const waitAppTask = (base) => { - return (taskID, requestOptions) => { - return createRetryablePromise(retry => { - return getAppTask(base)(taskID, requestOptions).then(response => { - return response.status !== 'published' ? retry() : undefined; - }); - }); - }; -}; - -const batch = (base) => { - return (requests, requestOptions) => { - const wait = (response, waitRequestOptions) => { - return waitTask(base)(response.taskID, waitRequestOptions); - }; - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/batch', base.indexName), - data: { - requests, - }, - }, requestOptions), wait); - }; -}; - -const browseObjects = (base) => { - return (requestOptions) => { - return createBrowsablePromise({ - shouldStop: response => response.cursor === undefined, - ...requestOptions, - request: (data) => base.transporter.read({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/browse', base.indexName), - data, - }, requestOptions), - }); - }; -}; - -const browseRules = (base) => { - return (requestOptions) => { - const options = { - hitsPerPage: 1000, - ...requestOptions, - }; - return createBrowsablePromise({ - shouldStop: response => response.hits.length < options.hitsPerPage, - ...options, - request(data) { - return searchRules(base)('', { ...options, ...data }).then((response) => { - return { - ...response, - hits: response.hits.map(rule => { - // eslint-disable-next-line functional/immutable-data,no-param-reassign - delete rule._highlightResult; - return rule; - }), - }; - }); - }, - }); - }; -}; - -const browseSynonyms = (base) => { - return (requestOptions) => { - const options = { - hitsPerPage: 1000, - ...requestOptions, - }; - return createBrowsablePromise({ - shouldStop: response => response.hits.length < options.hitsPerPage, - ...options, - request(data) { - return searchSynonyms(base)('', { ...options, ...data }).then((response) => { - return { - ...response, - hits: response.hits.map(synonym => { - // eslint-disable-next-line functional/immutable-data,no-param-reassign - delete synonym._highlightResult; - return synonym; - }), - }; - }); - }, - }); - }; -}; - -const chunkedBatch = (base) => { - return (bodies, action, requestOptions) => { - const { batchSize, ...options } = requestOptions || {}; - const response = { - taskIDs: [], - objectIDs: [], - }; - const forEachBatch = (lastIndex = 0) => { - // eslint-disable-next-line functional/prefer-readonly-type - const bodiesChunk = []; - // eslint-disable-next-line functional/no-let - let index; - /* eslint-disable-next-line functional/no-loop-statement */ - for (index = lastIndex; index < bodies.length; index++) { - // eslint-disable-next-line functional/immutable-data - bodiesChunk.push(bodies[index]); - if (bodiesChunk.length === (batchSize || 1000)) { - break; - } - } - if (bodiesChunk.length === 0) { - return Promise.resolve(response); - } - return batch(base)(bodiesChunk.map(body => { - return { - action, - body, - }; - }), options).then(res => { - response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data - response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data - index++; - return forEachBatch(index); - }); - }; - return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => { - return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => { - return waitTask(base)(taskID, waitRequestOptions); - })); - }); - }; -}; - -const clearObjects = (base) => { - return (requestOptions) => { - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/clear', base.indexName), - }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const clearRules = (base) => { - return (requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/rules/clear', base.indexName), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const clearSynonyms = (base) => { - return (requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/synonyms/clear', base.indexName), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteBy = (base) => { - return (filters, requestOptions) => { - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/deleteByQuery', base.indexName), - data: filters, - }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteIndex = (base) => { - return (requestOptions) => { - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Delete, - path: encode('1/indexes/%s', base.indexName), - }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteObject = (base) => { - return (objectID, requestOptions) => { - return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => { - return { taskID: response.taskIDs[0] }; - }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteObjects = (base) => { - return (objectIDs, requestOptions) => { - const objects = objectIDs.map(objectID => { - return { objectID }; - }); - return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions); - }; -}; - -const deleteRule = (base) => { - return (objectID, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Delete, - path: encode('1/indexes/%s/rules/%s', base.indexName, objectID), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const deleteSynonym = (base) => { - return (objectID, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Delete, - path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID), - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const exists = (base) => { - return (requestOptions) => { - return getSettings(base)(requestOptions) - .then(() => true) - .catch(error => { - if (error.status !== 404) { - throw error; - } - return false; - }); - }; -}; - -const findAnswers = (base) => { - return (query, queryLanguages, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode('1/answers/%s/prediction', base.indexName), - data: { - query, - queryLanguages, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const findObject = (base) => { - return (callback, requestOptions) => { - const { query, paginate, ...options } = requestOptions || {}; - // eslint-disable-next-line functional/no-let - let page = 0; - const forEachPage = () => { - return search(base)(query || '', { ...options, page }).then(result => { - // eslint-disable-next-line functional/no-loop-statement - for (const [position, hit] of Object.entries(result.hits)) { - // eslint-disable-next-line promise/no-callback-in-promise - if (callback(hit)) { - return { - object: hit, - position: parseInt(position, 10), - page, - }; - } - } - page++; - // paginate if option was set and has next page - if (paginate === false || page >= result.nbPages) { - throw createObjectNotFoundError(); - } - return forEachPage(); - }); - }; - return forEachPage(); - }; -}; - -const getObject = (base) => { - return (objectID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/indexes/%s/%s', base.indexName, objectID), - }, requestOptions); - }; -}; - -const getObjectPosition = () => { - return (searchResponse, objectID) => { - // eslint-disable-next-line functional/no-loop-statement - for (const [position, hit] of Object.entries(searchResponse.hits)) { - if (hit.objectID === objectID) { - return parseInt(position, 10); - } - } - return -1; - }; -}; - -const getObjects = (base) => { - return (objectIDs, requestOptions) => { - const { attributesToRetrieve, ...options } = requestOptions || {}; - const requests = objectIDs.map(objectID => { - return { - indexName: base.indexName, - objectID, - ...(attributesToRetrieve ? { attributesToRetrieve } : {}), - }; - }); - return base.transporter.read({ - method: MethodEnum.Post, - path: '1/indexes/*/objects', - data: { - requests, - }, - }, options); - }; -}; - -const getRule = (base) => { - return (objectID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/indexes/%s/rules/%s', base.indexName, objectID), - }, requestOptions); - }; -}; - -const getSettings = (base) => { - return (requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/indexes/%s/settings', base.indexName), - data: { - getVersion: 2, - }, - }, requestOptions); - }; -}; - -const getSynonym = (base) => { - return (objectID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID), - }, requestOptions); - }; -}; - -const getTask = (base) => { - return (taskID, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Get, - path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()), - }, requestOptions); - }; -}; - -const partialUpdateObject = (base) => { - return (object, requestOptions) => { - return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => { - return { - objectID: response.objectIDs[0], - taskID: response.taskIDs[0], - }; - }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const partialUpdateObjects = (base) => { - return (objects, requestOptions) => { - const { createIfNotExists, ...options } = requestOptions || {}; - const action = createIfNotExists - ? BatchActionEnum.PartialUpdateObject - : BatchActionEnum.PartialUpdateObjectNoCreate; - return chunkedBatch(base)(objects, action, options); - }; -}; - -const replaceAllObjects = (base) => { - return (objects, requestOptions) => { - const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {}; - const operation = (from, to, type, operationRequestOptions) => { - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/operation', from), - data: { - operation: type, - destination: to, - }, - }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; - const randomSuffix = Math.random() - .toString(36) - .substring(7); - const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`; - const saveObjectsInTemporary = saveObjects({ - appId: base.appId, - transporter: base.transporter, - indexName: temporaryIndexName, - }); - // @ts-ignore - // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type - let responses = []; - const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', { - ...options, - scope: ['settings', 'synonyms', 'rules'], - }); - // eslint-disable-next-line functional/immutable-data - responses.push(copyWaitablePromise); - const result = (safe - ? copyWaitablePromise.wait(options) - : copyWaitablePromise) - .then(() => { - const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, { - ...options, - autoGenerateObjectIDIfNotExist, - batchSize, - }); - // eslint-disable-next-line functional/immutable-data - responses.push(saveObjectsWaitablePromise); - return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise; - }) - .then(() => { - const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options); - // eslint-disable-next-line functional/immutable-data - responses.push(moveWaitablePromise); - return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise; - }) - .then(() => Promise.all(responses)) - .then(([copyResponse, saveObjectsResponse, moveResponse]) => { - return { - objectIDs: saveObjectsResponse.objectIDs, - taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID], - }; - }); - return createWaitablePromise(result, (_, waitRequestOptions) => { - return Promise.all(responses.map(response => response.wait(waitRequestOptions))); - }); - }; -}; - -const replaceAllRules = (base) => { - return (rules, requestOptions) => { - return saveRules(base)(rules, { - ...requestOptions, - clearExistingRules: true, - }); - }; -}; - -const replaceAllSynonyms = (base) => { - return (synonyms, requestOptions) => { - return saveSynonyms(base)(synonyms, { - ...requestOptions, - clearExistingSynonyms: true, - }); - }; -}; - -const saveObject = (base) => { - return (object, requestOptions) => { - return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => { - return { - objectID: response.objectIDs[0], - taskID: response.taskIDs[0], - }; - }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const saveObjects = (base) => { - return (objects, requestOptions) => { - const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {}; - const action = autoGenerateObjectIDIfNotExist - ? BatchActionEnum.AddObject - : BatchActionEnum.UpdateObject; - if (action === BatchActionEnum.UpdateObject) { - // eslint-disable-next-line functional/no-loop-statement - for (const object of objects) { - if (object.objectID === undefined) { - return createWaitablePromise(Promise.reject(createMissingObjectIDError())); - } - } - } - return chunkedBatch(base)(objects, action, options); - }; -}; - -const saveRule = (base) => { - return (rule, requestOptions) => { - return saveRules(base)([rule], requestOptions); - }; -}; - -const saveRules = (base) => { - return (rules, requestOptions) => { - const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - if (clearExistingRules) { - mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/rules/batch', base.indexName), - data: rules, - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const saveSynonym = (base) => { - return (synonym, requestOptions) => { - return saveSynonyms(base)([synonym], requestOptions); - }; -}; - -const saveSynonyms = (base) => { - return (synonyms, requestOptions) => { - const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - if (replaceExistingSynonyms || clearExistingSynonyms) { - mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/synonyms/batch', base.indexName), - data: synonyms, - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const search = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/query', base.indexName), - data: { - query, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const searchForFacetValues = (base) => { - return (facetName, facetQuery, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName), - data: { - facetQuery, - }, - cacheable: true, - }, requestOptions); - }; -}; - -const searchRules = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/rules/search', base.indexName), - data: { - query, - }, - }, requestOptions); - }; -}; - -const searchSynonyms = (base) => { - return (query, requestOptions) => { - return base.transporter.read({ - method: MethodEnum.Post, - path: encode('1/indexes/%s/synonyms/search', base.indexName), - data: { - query, - }, - }, requestOptions); - }; -}; - -const setSettings = (base) => { - return (settings, requestOptions) => { - const { forwardToReplicas, ...options } = requestOptions || {}; - const mappedRequestOptions = createMappedRequestOptions(options); - if (forwardToReplicas) { - mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data - } - return createWaitablePromise(base.transporter.write({ - method: MethodEnum.Put, - path: encode('1/indexes/%s/settings', base.indexName), - data: settings, - }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions)); - }; -}; - -const waitTask = (base) => { - return (taskID, requestOptions) => { - return createRetryablePromise(retry => { - return getTask(base)(taskID, requestOptions).then(response => { - return response.status !== 'published' ? retry() : undefined; - }); - }); - }; -}; - -const ApiKeyACLEnum = { - AddObject: 'addObject', - Analytics: 'analytics', - Browser: 'browse', - DeleteIndex: 'deleteIndex', - DeleteObject: 'deleteObject', - EditSettings: 'editSettings', - Inference: 'inference', - ListIndexes: 'listIndexes', - Logs: 'logs', - Personalization: 'personalization', - Recommendation: 'recommendation', - Search: 'search', - SeeUnretrievableAttributes: 'seeUnretrievableAttributes', - Settings: 'settings', - Usage: 'usage', -}; - -const BatchActionEnum = { - AddObject: 'addObject', - UpdateObject: 'updateObject', - PartialUpdateObject: 'partialUpdateObject', - PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate', - DeleteObject: 'deleteObject', - DeleteIndex: 'delete', - ClearIndex: 'clear', -}; - -const ScopeEnum = { - Settings: 'settings', - Synonyms: 'synonyms', - Rules: 'rules', -}; - -const StrategyEnum = { - None: 'none', - StopIfEnoughMatches: 'stopIfEnoughMatches', -}; - -const SynonymEnum = { - Synonym: 'synonym', - OneWaySynonym: 'oneWaySynonym', - AltCorrection1: 'altCorrection1', - AltCorrection2: 'altCorrection2', - Placeholder: 'placeholder', -}; - -export { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask }; diff --git a/node_modules/@algolia/client-search/index.js b/node_modules/@algolia/client-search/index.js index eebe74c..21e26aa 100644 --- a/node_modules/@algolia/client-search/index.js +++ b/node_modules/@algolia/client-search/index.js @@ -1,2 +1 @@ -// eslint-disable-next-line functional/immutable-data, import/no-commonjs -module.exports = require('./dist/client-search.cjs.js'); +module.exports = require('./dist/builds/node.cjs'); diff --git a/node_modules/@algolia/client-search/package.json b/node_modules/@algolia/client-search/package.json index 4c6b026..e9e438c 100644 --- a/node_modules/@algolia/client-search/package.json +++ b/node_modules/@algolia/client-search/package.json @@ -1,23 +1,69 @@ { - "name": "@algolia/client-search", - "version": "4.22.0", - "private": false, + "version": "5.48.0", "repository": { "type": "git", - "url": "git://github.com/algolia/algoliasearch-client-javascript.git" + "url": "git+https://github.com/algolia/algoliasearch-client-javascript.git" }, + "homepage": "https://github.com/algolia/algoliasearch-client-javascript/tree/main/packages/client-search#readme", + "type": "module", "license": "MIT", - "sideEffects": false, - "main": "index.js", - "module": "dist/client-search.esm.js", - "types": "dist/client-search.d.ts", + "author": "Algolia", + "scripts": { + "build": "yarn clean && yarn tsup && yarn rollup -c rollup.config.js", + "clean": "rm -rf ./dist || true", + "test:bundle": "publint . && attw --pack ." + }, + "name": "@algolia/client-search", + "description": "JavaScript client for client-search", + "exports": { + ".": { + "node": { + "types": { + "import": "./dist/node.d.ts", + "module": "./dist/node.d.ts", + "require": "./dist/node.d.cts" + }, + "import": "./dist/builds/node.js", + "module": "./dist/builds/node.js", + "require": "./dist/builds/node.cjs" + }, + "worker": { + "types": "./dist/worker.d.ts", + "default": "./dist/builds/worker.js" + }, + "default": { + "types": "./dist/browser.d.ts", + "module": "./dist/builds/browser.js", + "import": "./dist/builds/browser.js", + "default": "./dist/builds/browser.umd.js" + } + }, + "./dist/builds/*": "./dist/builds/*.js" + }, + "jsdelivr": "./dist/builds/browser.umd.js", + "unpkg": "./dist/builds/browser.umd.js", + "react-native": "./dist/builds/browser.js", "files": [ + "dist", "index.js", - "dist" + "index.d.ts" ], "dependencies": { - "@algolia/client-common": "4.22.0", - "@algolia/requester-common": "4.22.0", - "@algolia/transporter": "4.22.0" - } + "@algolia/client-common": "5.48.0", + "@algolia/requester-browser-xhr": "5.48.0", + "@algolia/requester-fetch": "5.48.0", + "@algolia/requester-node-http": "5.48.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "0.18.2", + "@types/node": "25.1.0", + "publint": "0.3.17", + "rollup": "4.57.1", + "tsup": "8.5.1", + "typescript": "5.9.3" + }, + "engines": { + "node": ">= 14.0.0" + }, + "gitHead": "b39976bd859ef66e65d2db182d69853a91a71139" } diff --git a/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.cjs.js b/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.cjs.js deleted file mode 100644 index 680fb19..0000000 --- a/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.cjs.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -function createBrowserXhrRequester() { - return { - send(request) { - return new Promise((resolve) => { - const baseRequester = new XMLHttpRequest(); - baseRequester.open(request.method, request.url, true); - Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key])); - const createTimeout = (timeout, content) => { - return setTimeout(() => { - baseRequester.abort(); - resolve({ - status: 0, - content, - isTimedOut: true, - }); - }, timeout * 1000); - }; - const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout'); - // eslint-disable-next-line functional/no-let - let responseTimeout; - // eslint-disable-next-line functional/immutable-data - baseRequester.onreadystatechange = () => { - if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) { - clearTimeout(connectTimeout); - responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout'); - } - }; - // eslint-disable-next-line functional/immutable-data - baseRequester.onerror = () => { - // istanbul ignore next - if (baseRequester.status === 0) { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - resolve({ - content: baseRequester.responseText || 'Network request failed', - status: baseRequester.status, - isTimedOut: false, - }); - } - }; - // eslint-disable-next-line functional/immutable-data - baseRequester.onload = () => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - resolve({ - content: baseRequester.responseText, - status: baseRequester.status, - isTimedOut: false, - }); - }; - baseRequester.send(request.data); - }); - }, - }; -} - -exports.createBrowserXhrRequester = createBrowserXhrRequester; diff --git a/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.d.ts b/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.d.ts deleted file mode 100644 index 5871edf..0000000 --- a/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Requester } from '@algolia/requester-common'; - -export declare function createBrowserXhrRequester(): Requester; - -export { } diff --git a/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.esm.js b/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.esm.js deleted file mode 100644 index 869dd22..0000000 --- a/node_modules/@algolia/requester-browser-xhr/dist/requester-browser-xhr.esm.js +++ /dev/null @@ -1,57 +0,0 @@ -function createBrowserXhrRequester() { - return { - send(request) { - return new Promise((resolve) => { - const baseRequester = new XMLHttpRequest(); - baseRequester.open(request.method, request.url, true); - Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key])); - const createTimeout = (timeout, content) => { - return setTimeout(() => { - baseRequester.abort(); - resolve({ - status: 0, - content, - isTimedOut: true, - }); - }, timeout * 1000); - }; - const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout'); - // eslint-disable-next-line functional/no-let - let responseTimeout; - // eslint-disable-next-line functional/immutable-data - baseRequester.onreadystatechange = () => { - if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) { - clearTimeout(connectTimeout); - responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout'); - } - }; - // eslint-disable-next-line functional/immutable-data - baseRequester.onerror = () => { - // istanbul ignore next - if (baseRequester.status === 0) { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - resolve({ - content: baseRequester.responseText || 'Network request failed', - status: baseRequester.status, - isTimedOut: false, - }); - } - }; - // eslint-disable-next-line functional/immutable-data - baseRequester.onload = () => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - resolve({ - content: baseRequester.responseText, - status: baseRequester.status, - isTimedOut: false, - }); - }; - baseRequester.send(request.data); - }); - }, - }; -} - -export { createBrowserXhrRequester }; diff --git a/node_modules/@algolia/requester-browser-xhr/index.js b/node_modules/@algolia/requester-browser-xhr/index.js index bc56b32..c92f673 100644 --- a/node_modules/@algolia/requester-browser-xhr/index.js +++ b/node_modules/@algolia/requester-browser-xhr/index.js @@ -1,2 +1 @@ -// eslint-disable-next-line functional/immutable-data, import/no-commonjs -module.exports = require('./dist/requester-browser-xhr.cjs.js'); +module.exports = require('./dist/requester.xhr.js'); diff --git a/node_modules/@algolia/requester-browser-xhr/package.json b/node_modules/@algolia/requester-browser-xhr/package.json index 24798b1..a3b91af 100644 --- a/node_modules/@algolia/requester-browser-xhr/package.json +++ b/node_modules/@algolia/requester-browser-xhr/package.json @@ -1,22 +1,51 @@ { "name": "@algolia/requester-browser-xhr", - "version": "4.22.0", - "private": false, + "version": "5.48.0", "description": "Promise-based request library for browser using xhr.", "repository": { "type": "git", - "url": "git://github.com/algolia/algoliasearch-client-javascript.git" + "url": "git+https://github.com/algolia/algoliasearch-client-javascript.git" }, + "homepage": "https://github.com/algolia/algoliasearch-client-javascript#readme", "license": "MIT", - "sideEffects": false, - "main": "index.js", - "module": "dist/requester-browser-xhr.esm.js", - "types": "dist/requester-browser-xhr.d.ts", + "author": "Algolia", + "type": "module", + "exports": { + ".": { + "types": "./dist/requester.xhr.d.ts", + "import": "./dist/requester.xhr.js", + "module": "./dist/requester.xhr.js", + "default": "./dist/requester.xhr.js" + }, + "./src/*": "./src/*.ts" + }, + "react-native": "./dist/requester.xhr.js", "files": [ - "index.js", - "dist" + "dist", + "index.d.ts", + "index.js" ], + "scripts": { + "build": "yarn clean && yarn tsup", + "clean": "rm -rf ./dist || true", + "test": "tsc --noEmit && vitest --run", + "test:bundle": "publint . && attw --pack . --ignore-rules cjs-resolves-to-esm" + }, "dependencies": { - "@algolia/requester-common": "4.22.0" - } + "@algolia/client-common": "5.48.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "0.18.2", + "@types/node": "24.10.9", + "jsdom": "27.4.0", + "publint": "0.3.17", + "tsup": "8.5.1", + "typescript": "5.9.3", + "vitest": "4.0.18", + "xhr-mock": "2.5.1" + }, + "engines": { + "node": ">= 14.0.0" + }, + "gitHead": "b39976bd859ef66e65d2db182d69853a91a71139" } diff --git a/node_modules/@algolia/requester-node-http/dist/requester-node-http.cjs.js b/node_modules/@algolia/requester-node-http/dist/requester-node-http.cjs.js deleted file mode 100644 index fa2d4e6..0000000 --- a/node_modules/@algolia/requester-node-http/dist/requester-node-http.cjs.js +++ /dev/null @@ -1,87 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var http = require('http'); -var https = require('https'); -var URL = require('url'); - -/* eslint functional/prefer-readonly-type: 0 */ -const agentOptions = { keepAlive: true }; -const defaultHttpAgent = new http.Agent(agentOptions); -const defaultHttpsAgent = new https.Agent(agentOptions); -function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) { - const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent; - const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent; - return { - send(request) { - return new Promise(resolve => { - const url = URL.parse(request.url); - const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; - const options = { - ...requesterOptions, - agent: url.protocol === 'https:' ? httpsAgent : httpAgent, - hostname: url.hostname, - path, - method: request.method, - headers: { - ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}), - ...request.headers, - }, - ...(url.port !== undefined ? { port: url.port || '' } : {}), - }; - const req = (url.protocol === 'https:' ? https : http).request(options, response => { - // eslint-disable-next-line functional/no-let - let contentBuffers = []; - response.on('data', chunk => { - contentBuffers = contentBuffers.concat(chunk); - }); - response.on('end', () => { - // eslint-disable-next-line @typescript-eslint/no-use-before-define - clearTimeout(connectTimeout); - // eslint-disable-next-line @typescript-eslint/no-use-before-define - clearTimeout(responseTimeout); - resolve({ - status: response.statusCode || 0, - content: Buffer.concat(contentBuffers).toString(), - isTimedOut: false, - }); - }); - }); - const createTimeout = (timeout, content) => { - return setTimeout(() => { - req.abort(); - resolve({ - status: 0, - content, - isTimedOut: true, - }); - }, timeout * 1000); - }; - const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout'); - // eslint-disable-next-line functional/no-let - let responseTimeout; - req.on('error', error => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - resolve({ status: 0, content: error.message, isTimedOut: false }); - }); - req.once('response', () => { - clearTimeout(connectTimeout); - responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout'); - }); - if (request.data !== undefined) { - req.write(request.data); - } - req.end(); - }); - }, - destroy() { - httpAgent.destroy(); - httpsAgent.destroy(); - return Promise.resolve(); - }, - }; -} - -exports.createNodeHttpRequester = createNodeHttpRequester; diff --git a/node_modules/@algolia/requester-node-http/dist/requester-node-http.d.ts b/node_modules/@algolia/requester-node-http/dist/requester-node-http.d.ts deleted file mode 100644 index 97f7534..0000000 --- a/node_modules/@algolia/requester-node-http/dist/requester-node-http.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/// -import { Destroyable } from '@algolia/requester-common'; -import * as http from 'http'; -import * as https from 'https'; -import { Requester } from '@algolia/requester-common'; - -export declare function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions, }?: NodeHttpRequesterOptions): Requester & Destroyable; - -export declare type NodeHttpRequesterOptions = { - agent?: https.Agent | http.Agent; - httpAgent?: http.Agent; - httpsAgent?: https.Agent; - requesterOptions?: https.RequestOptions; -}; - -export { } diff --git a/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js b/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js deleted file mode 100644 index 6d3e3c3..0000000 --- a/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js +++ /dev/null @@ -1,85 +0,0 @@ -import * as http from 'http'; -import { Agent } from 'http'; -import * as https from 'https'; -import { Agent as Agent$1 } from 'https'; -import { parse } from 'url'; - -/* eslint functional/prefer-readonly-type: 0 */ -const agentOptions = { keepAlive: true }; -const defaultHttpAgent = new Agent(agentOptions); -const defaultHttpsAgent = new Agent$1(agentOptions); -function createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) { - const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent; - const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent; - return { - send(request) { - return new Promise(resolve => { - const url = parse(request.url); - const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`; - const options = { - ...requesterOptions, - agent: url.protocol === 'https:' ? httpsAgent : httpAgent, - hostname: url.hostname, - path, - method: request.method, - headers: { - ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}), - ...request.headers, - }, - ...(url.port !== undefined ? { port: url.port || '' } : {}), - }; - const req = (url.protocol === 'https:' ? https : http).request(options, response => { - // eslint-disable-next-line functional/no-let - let contentBuffers = []; - response.on('data', chunk => { - contentBuffers = contentBuffers.concat(chunk); - }); - response.on('end', () => { - // eslint-disable-next-line @typescript-eslint/no-use-before-define - clearTimeout(connectTimeout); - // eslint-disable-next-line @typescript-eslint/no-use-before-define - clearTimeout(responseTimeout); - resolve({ - status: response.statusCode || 0, - content: Buffer.concat(contentBuffers).toString(), - isTimedOut: false, - }); - }); - }); - const createTimeout = (timeout, content) => { - return setTimeout(() => { - req.abort(); - resolve({ - status: 0, - content, - isTimedOut: true, - }); - }, timeout * 1000); - }; - const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout'); - // eslint-disable-next-line functional/no-let - let responseTimeout; - req.on('error', error => { - clearTimeout(connectTimeout); - clearTimeout(responseTimeout); - resolve({ status: 0, content: error.message, isTimedOut: false }); - }); - req.once('response', () => { - clearTimeout(connectTimeout); - responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout'); - }); - if (request.data !== undefined) { - req.write(request.data); - } - req.end(); - }); - }, - destroy() { - httpAgent.destroy(); - httpsAgent.destroy(); - return Promise.resolve(); - }, - }; -} - -export { createNodeHttpRequester }; diff --git a/node_modules/@algolia/requester-node-http/index.js b/node_modules/@algolia/requester-node-http/index.js index fb86451..2f27540 100644 --- a/node_modules/@algolia/requester-node-http/index.js +++ b/node_modules/@algolia/requester-node-http/index.js @@ -1,2 +1 @@ -// eslint-disable-next-line functional/immutable-data, import/no-commonjs -module.exports = require('./dist/requester-node-http.cjs.js'); +module.exports = require('./dist/requester.http.cjs'); diff --git a/node_modules/@algolia/requester-node-http/package.json b/node_modules/@algolia/requester-node-http/package.json index 6fab5a3..7b734fa 100644 --- a/node_modules/@algolia/requester-node-http/package.json +++ b/node_modules/@algolia/requester-node-http/package.json @@ -1,22 +1,53 @@ { "name": "@algolia/requester-node-http", - "version": "4.22.0", - "private": false, + "version": "5.48.0", "description": "Promise-based request library for node using the native http module.", "repository": { "type": "git", - "url": "git://github.com/algolia/algoliasearch-client-javascript.git" + "url": "git+https://github.com/algolia/algoliasearch-client-javascript.git" }, + "homepage": "https://github.com/algolia/algoliasearch-client-javascript#readme", "license": "MIT", - "sideEffects": false, - "main": "index.js", - "module": "dist/requester-node-http.esm.js", - "types": "dist/requester-node-http.d.ts", + "author": "Algolia", + "type": "module", "files": [ - "index.js", - "dist" + "dist", + "index.d.ts", + "index.js" ], + "exports": { + ".": { + "types": { + "import": "./dist/requester.http.d.ts", + "module": "./dist/requester.http.d.ts", + "require": "./dist/requester.http.d.cts" + }, + "import": "./dist/requester.http.js", + "module": "./dist/requester.http.js", + "require": "./dist/requester.http.cjs" + }, + "./src/*": "./src/*.ts" + }, + "scripts": { + "build": "yarn clean && yarn tsup", + "clean": "rm -rf ./dist || true", + "test": "tsc --noEmit && vitest --run", + "test:bundle": "publint . && attw --pack ." + }, "dependencies": { - "@algolia/requester-common": "4.22.0" - } + "@algolia/client-common": "5.48.0" + }, + "devDependencies": { + "@arethetypeswrong/cli": "0.18.2", + "@types/node": "24.10.9", + "nock": "14.0.10", + "publint": "0.3.17", + "tsup": "8.5.1", + "typescript": "5.9.3", + "vitest": "4.0.18" + }, + "engines": { + "node": ">= 14.0.0" + }, + "gitHead": "b39976bd859ef66e65d2db182d69853a91a71139" } diff --git a/node_modules/@babel/parser/bin/babel-parser.js b/node_modules/@babel/parser/bin/babel-parser.js old mode 100644 new mode 100755 index 3aca314..4808c5e --- a/node_modules/@babel/parser/bin/babel-parser.js +++ b/node_modules/@babel/parser/bin/babel-parser.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -/* eslint no-var: 0 */ +/* eslint-disable no-var, unicorn/prefer-node-protocol */ var parser = require(".."); var fs = require("fs"); diff --git a/node_modules/@babel/parser/index.cjs b/node_modules/@babel/parser/index.cjs deleted file mode 100644 index 89863a9..0000000 --- a/node_modules/@babel/parser/index.cjs +++ /dev/null @@ -1,5 +0,0 @@ -try { - module.exports = require("./lib/index.cjs"); -} catch { - module.exports = require("./lib/index.js"); -} diff --git a/node_modules/@babel/parser/lib/index.js b/node_modules/@babel/parser/lib/index.js index 58a13f9..fa6628c 100644 --- a/node_modules/@babel/parser/lib/index.js +++ b/node_modules/@babel/parser/lib/index.js @@ -3,17 +3,14 @@ Object.defineProperty(exports, '__esModule', { value: true }); -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; +function _objectWithoutPropertiesLoose(r, e) { + if (null == r) return {}; + var t = {}; + for (var n in r) if ({}.hasOwnProperty.call(r, n)) { + if (-1 !== e.indexOf(n)) continue; + t[n] = r[n]; } - return target; + return t; } class Position { constructor(line, col, index) { @@ -79,10 +76,7 @@ const NodeDescriptions = { VariableDeclarator: "variable declaration", YieldExpression: "yield expression" }; -const toNodeDescription = ({ - type, - prefix -}) => type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[String(prefix)] : NodeDescriptions[type]; +const toNodeDescription = node => node.type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[`${node.prefix}`] : NodeDescriptions[node.type]; var StandardErrors = { AccessorIsGenerator: ({ kind @@ -94,7 +88,6 @@ var StandardErrors = { AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.", AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", - AwaitNotInAsyncFunction: "'await' is only allowed within async functions.", BadGetterArity: "A 'get' accessor must not have any formal parameters.", BadSetterArity: "A 'set' accessor must have exactly one formal parameter.", BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.", @@ -123,9 +116,6 @@ var StandardErrors = { }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`, DuplicateProto: "Redefinition of __proto__ property.", DuplicateRegExpFlags: "Duplicate regular expression flag.", - DynamicImportPhaseRequiresImportExpressions: ({ - phase - }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`, ElementAfterRest: "Rest element must be last element.", EscapedCharNotAnIdentifier: "Invalid Unicode escape.", ExportBindingIsString: ({ @@ -145,14 +135,11 @@ var StandardErrors = { }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`, IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", IllegalReturn: "'return' outside of function.", - ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.", + ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.", ImportBindingIsString: ({ importName }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`, - ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.", - ImportCallArity: ({ - maxArgumentCount - }) => `\`import()\` requires exactly ${maxArgumentCount === 1 ? "one argument" : "one or two arguments"}.`, + ImportCallArity: `\`import()\` requires exactly one or two arguments.`, ImportCallNotNewExpression: "Cannot use new with import(...).", ImportCallSpreadArgument: "`...` is not allowed in `import()`.", ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.", @@ -161,6 +148,7 @@ var StandardErrors = { IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.", InvalidBigIntLiteral: "Invalid BigIntLiteral.", InvalidCodePoint: "Code point out of bounds.", + InvalidCoverDiscardElement: "'void' must be followed by an expression when not used in a binding position.", InvalidCoverInitializedName: "Invalid shorthand property initializer.", InvalidDecimal: "Invalid decimal.", InvalidDigit: ({ @@ -277,7 +265,8 @@ var StandardErrors = { unexpected }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`, UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", - UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.", + UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.", + UnexpectedVoidPattern: "Unexpected void binding.", UnsupportedBind: "Binding should be performed on object property.", UnsupportedDecoratorExport: "A decorated export must export a class declaration.", UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", @@ -293,12 +282,16 @@ var StandardErrors = { UnterminatedRegExp: "Unterminated regular expression.", UnterminatedString: "Unterminated string constant.", UnterminatedTemplate: "Unterminated template.", + UsingDeclarationExport: "Using declaration cannot be exported.", UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.", VarRedeclaration: ({ identifierName }) => `Identifier '${identifierName}' has already been declared.`, + VoidPatternCatchClauseParam: "A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.", + VoidPatternInitializer: "A void binding may not have an initializer.", YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", YieldInParameter: "Yield expression is not allowed in formal parameters.", + YieldNotInGeneratorFunction: "'yield' is only allowed within generator functions.", ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." }; var StrictModeErrors = { @@ -314,8 +307,14 @@ var StrictModeErrors = { StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", StrictWith: "'with' in strict mode." }; +var ParseExpressionErrors = { + ParseExpressionEmptyInput: "Unexpected parseExpression() input: The input is empty or contains only comments.", + ParseExpressionExpectsEOF: ({ + unexpected + }) => `Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character \`${String.fromCodePoint(unexpected)}\`.` +}; const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]); -var PipelineOperatorErrors = { +var PipelineOperatorErrors = Object.assign({ PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", @@ -327,16 +326,16 @@ var PipelineOperatorErrors = { type }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({ type - })}; please wrap it in parentheses.`, + })}; please wrap it in parentheses.` +}, { PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.' -}; -const _excluded = ["toMessage"], - _excluded2 = ["message"]; +}); +const _excluded = ["message"]; function defineHidden(obj, key, value) { Object.defineProperty(obj, key, { enumerable: false, @@ -344,21 +343,33 @@ function defineHidden(obj, key, value) { value }); } -function toParseErrorConstructor(_ref) { - let { - toMessage - } = _ref, - properties = _objectWithoutPropertiesLoose(_ref, _excluded); +function toParseErrorConstructor({ + toMessage, + code, + reasonCode, + syntaxPlugin +}) { + const hasMissingPlugin = reasonCode === "MissingPlugin" || reasonCode === "MissingOneOfPlugins"; + const oldReasonCodes = { + AccessorCannotDeclareThisParameter: "AccesorCannotDeclareThisParameter", + AccessorCannotHaveTypeParameters: "AccesorCannotHaveTypeParameters", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference", + SetAccessorCannotHaveOptionalParameter: "SetAccesorCannotHaveOptionalParameter", + SetAccessorCannotHaveRestParameter: "SetAccesorCannotHaveRestParameter", + SetAccessorCannotHaveReturnType: "SetAccesorCannotHaveReturnType" + }; + if (oldReasonCodes[reasonCode]) { + reasonCode = oldReasonCodes[reasonCode]; + } return function constructor(loc, details) { const error = new SyntaxError(); - Object.assign(error, properties, { - loc, - pos: loc.index - }); - if ("missingPlugin" in details) { - Object.assign(error, { - missingPlugin: details.missingPlugin - }); + error.code = code; + error.reasonCode = reasonCode; + error.loc = loc; + error.pos = loc.index; + error.syntaxPlugin = syntaxPlugin; + if (hasMissingPlugin) { + error.missingPlugin = details.missingPlugin; } defineHidden(error, "clone", function clone(overrides = {}) { var _overrides$loc; @@ -394,15 +405,15 @@ function ParseErrorEnum(argument, syntaxPlugin) { const ParseErrorConstructors = {}; for (const reasonCode of Object.keys(argument)) { const template = argument[reasonCode]; - const _ref2 = typeof template === "string" ? { + const _ref = typeof template === "string" ? { message: () => template } : typeof template === "function" ? { message: template } : template, { message - } = _ref2, - rest = _objectWithoutPropertiesLoose(_ref2, _excluded2); + } = _ref, + rest = _objectWithoutPropertiesLoose(_ref, _excluded); const toMessage = typeof message === "string" ? () => message : message; ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({ code: "BABEL_PARSER_SYNTAX_ERROR", @@ -414,23 +425,87 @@ function ParseErrorEnum(argument, syntaxPlugin) { } return ParseErrorConstructors; } -const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); +const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum(ParseExpressionErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors)); +function createDefaultOptions() { + return { + sourceType: "script", + sourceFilename: undefined, + startIndex: 0, + startColumn: 0, + startLine: 1, + allowAwaitOutsideFunction: false, + allowReturnOutsideFunction: false, + allowNewTargetOutsideFunction: false, + allowImportExportEverywhere: false, + allowSuperOutsideMethod: false, + allowUndeclaredExports: false, + allowYieldOutsideFunction: false, + plugins: [], + strictMode: undefined, + ranges: false, + tokens: false, + createImportExpressions: false, + createParenthesizedExpressions: false, + errorRecovery: false, + attachComment: true, + annexB: true + }; +} +function getOptions(opts) { + const options = createDefaultOptions(); + if (opts == null) { + return options; + } + if (opts.annexB != null && opts.annexB !== false) { + throw new Error("The `annexB` option can only be set to `false`."); + } + for (const key of Object.keys(options)) { + if (opts[key] != null) options[key] = opts[key]; + } + if (options.startLine === 1) { + if (opts.startIndex == null && options.startColumn > 0) { + options.startIndex = options.startColumn; + } else if (opts.startColumn == null && options.startIndex > 0) { + options.startColumn = options.startIndex; + } + } else if (opts.startColumn == null || opts.startIndex == null) { + if (opts.startIndex != null) { + throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`."); + } + } + if (options.sourceType === "commonjs") { + if (opts.allowAwaitOutsideFunction != null) { + throw new Error("The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`."); + } + if (opts.allowReturnOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`."); + } + if (opts.allowNewTargetOutsideFunction != null) { + throw new Error("`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`."); + } + } + return options; +} const { defineProperty } = Object; -const toUnenumerable = (object, key) => defineProperty(object, key, { - enumerable: false, - value: object[key] -}); +const toUnenumerable = (object, key) => { + if (object) { + defineProperty(object, key, { + enumerable: false, + value: object[key] + }); + } +}; function toESTreeLocation(node) { - node.loc.start && toUnenumerable(node.loc.start, "index"); - node.loc.end && toUnenumerable(node.loc.end, "index"); + toUnenumerable(node.loc.start, "index"); + toUnenumerable(node.loc.end, "index"); return node; } var estree = superClass => class ESTreeParserMixin extends superClass { parse() { const file = toESTreeLocation(super.parse()); - if (this.options.tokens) { + if (this.optionFlags & 256) { file.tokens = file.tokens.map(toESTreeLocation); } return file; @@ -442,7 +517,7 @@ var estree = superClass => class ESTreeParserMixin extends superClass { let regex = null; try { regex = new RegExp(pattern, flags); - } catch (e) {} + } catch (_) {} const node = this.estreeParseLiteral(regex); node.regex = { pattern, @@ -482,19 +557,43 @@ var estree = superClass => class ESTreeParserMixin extends superClass { parseBooleanLiteral(value) { return this.estreeParseLiteral(value); } + estreeParseChainExpression(node, endLoc) { + const chain = this.startNodeAtNode(node); + chain.expression = node; + return this.finishNodeAt(chain, "ChainExpression", endLoc); + } directiveToStmt(directive) { const expression = directive.value; delete directive.value; - expression.type = "Literal"; + this.castNodeTo(expression, "Literal"); expression.raw = expression.extra.raw; expression.value = expression.extra.expressionValue; - const stmt = directive; - stmt.type = "ExpressionStatement"; + const stmt = this.castNodeTo(directive, "ExpressionStatement"); stmt.expression = expression; stmt.directive = expression.extra.rawValue; delete expression.extra; return stmt; } + fillOptionalPropertiesForTSESLint(node) {} + cloneEstreeStringLiteral(node) { + const { + start, + end, + loc, + range, + raw, + value + } = node; + const cloned = Object.create(node.constructor.prototype); + cloned.type = "Literal"; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.raw = raw; + cloned.value = value; + return cloned; + } initFunction(node, isAsync) { super.initFunction(node, isAsync); node.expression = false; @@ -519,44 +618,28 @@ var estree = superClass => class ESTreeParserMixin extends superClass { node.body = directiveStatements.concat(node.body); delete node.directives; } - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true); - if (method.typeParameters) { - method.value.typeParameters = method.typeParameters; - delete method.typeParameters; - } - classBody.body.push(method); - } parsePrivateName() { const node = super.parsePrivateName(); - { - if (!this.getPluginOption("estree", "classFeatures")) { - return node; - } + if (!this.getPluginOption("estree", "classFeatures")) { + return node; } return this.convertPrivateNameToPrivateIdentifier(node); } convertPrivateNameToPrivateIdentifier(node) { const name = super.getPrivateNameSV(node); - node = node; delete node.id; node.name = name; - node.type = "PrivateIdentifier"; - return node; + return this.castNodeTo(node, "PrivateIdentifier"); } isPrivateName(node) { - { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.isPrivateName(node); - } + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); } return node.type === "PrivateIdentifier"; } getPrivateNameSV(node) { - { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.getPrivateNameSV(node); - } + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); } return node.name; } @@ -574,56 +657,78 @@ var estree = superClass => class ESTreeParserMixin extends superClass { let funcNode = this.startNode(); funcNode.kind = node.kind; funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); - funcNode.type = "FunctionExpression"; delete funcNode.kind; - node.value = funcNode; + const { + typeParameters + } = node; + if (typeParameters) { + delete node.typeParameters; + funcNode.typeParameters = typeParameters; + this.resetStartLocationFromNode(funcNode, typeParameters); + } + const valueNode = this.castNodeTo(funcNode, "FunctionExpression"); + node.value = valueNode; if (type === "ClassPrivateMethod") { node.computed = false; } - return this.finishNode(node, "MethodDefinition"); - } - parseClassProperty(...args) { - const propertyNode = super.parseClassProperty(...args); - { - if (!this.getPluginOption("estree", "classFeatures")) { - return propertyNode; - } - } - propertyNode.type = "PropertyDefinition"; - return propertyNode; - } - parseClassPrivateProperty(...args) { - const propertyNode = super.parseClassPrivateProperty(...args); - { - if (!this.getPluginOption("estree", "classFeatures")) { - return propertyNode; - } - } - propertyNode.type = "PropertyDefinition"; - propertyNode.computed = false; - return propertyNode; - } - parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { - const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor); - if (node) { - node.type = "Property"; + if (type === "ObjectMethod") { if (node.kind === "method") { node.kind = "init"; } node.shorthand = false; + return this.finishNode(node, "Property"); + } else { + return this.finishNode(node, "MethodDefinition"); } - return node; + } + nameIsConstructor(key) { + if (key.type === "Literal") return key.value === "constructor"; + return super.nameIsConstructor(key); + } + parseClassProperty(...args) { + const propertyNode = super.parseClassProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + return propertyNode; + } + parseClassPrivateProperty(...args) { + const propertyNode = super.parseClassPrivateProperty(...args); + if (!this.getPluginOption("estree", "classFeatures")) { + return propertyNode; + } + this.castNodeTo(propertyNode, "PropertyDefinition"); + propertyNode.computed = false; + return propertyNode; + } + parseClassAccessorProperty(node) { + const accessorPropertyNode = super.parseClassAccessorProperty(node); + if (!this.getPluginOption("estree", "classFeatures")) { + return accessorPropertyNode; + } + if (accessorPropertyNode.abstract && this.hasPlugin("typescript")) { + delete accessorPropertyNode.abstract; + this.castNodeTo(accessorPropertyNode, "TSAbstractAccessorProperty"); + } else { + this.castNodeTo(accessorPropertyNode, "AccessorProperty"); + } + return accessorPropertyNode; } parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); if (node) { node.kind = "init"; - node.type = "Property"; + this.castNodeTo(node, "Property"); } return node; } - isValidLVal(type, isUnparenthesizedInAssign, binding) { - return type === "Property" ? "value" : super.isValidLVal(type, isUnparenthesizedInAssign, binding); + finishObjectProperty(node) { + node.kind = "init"; + return this.finishNode(node, "Property"); + } + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + return type === "Property" ? "value" : super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); } isAssignable(node, isBinding) { if (node != null && this.isObjectProperty(node)) { @@ -646,9 +751,9 @@ var estree = superClass => class ESTreeParserMixin extends superClass { } } toAssignableObjectExpressionProp(prop, isLast, isLHS) { - if (prop.kind === "get" || prop.kind === "set") { + if (prop.type === "Property" && (prop.kind === "get" || prop.kind === "set")) { this.raise(Errors.PatternHasAccessor, prop.key); - } else if (prop.method) { + } else if (prop.type === "Property" && prop.method) { this.raise(Errors.PatternHasMethod, prop.key); } else { super.toAssignableObjectExpressionProp(prop, isLast, isLHS); @@ -657,15 +762,17 @@ var estree = superClass => class ESTreeParserMixin extends superClass { finishCallExpression(unfinished, optional) { const node = super.finishCallExpression(unfinished, optional); if (node.callee.type === "Import") { - node.type = "ImportExpression"; + var _ref, _ref2; + this.castNodeTo(node, "ImportExpression"); node.source = node.arguments[0]; - if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { - var _node$arguments$, _node$arguments$2; - node.options = (_node$arguments$ = node.arguments[1]) != null ? _node$arguments$ : null; - node.attributes = (_node$arguments$2 = node.arguments[1]) != null ? _node$arguments$2 : null; - } + node.options = (_ref = node.arguments[1]) != null ? _ref : null; + node.attributes = (_ref2 = node.arguments[1]) != null ? _ref2 : null; delete node.arguments; delete node.callee; + } else if (node.type === "OptionalCallExpression") { + this.castNodeTo(node, "CallExpression"); + } else { + node.optional = false; } return node; } @@ -684,7 +791,7 @@ var estree = superClass => class ESTreeParserMixin extends superClass { break; case "ExportNamedDeclaration": if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { - node.type = "ExportAllDeclaration"; + this.castNodeTo(node, "ExportAllDeclaration"); node.exported = node.specifiers[0].exported; delete node.specifiers; } @@ -702,18 +809,18 @@ var estree = superClass => class ESTreeParserMixin extends superClass { } return node; } - parseSubscript(base, startLoc, noCalls, state) { - const node = super.parseSubscript(base, startLoc, noCalls, state); + stopParseSubscript(base, state) { + const node = super.stopParseSubscript(base, state); if (state.optionalChainMember) { - if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") { - node.type = node.type.substring(8); - } - if (state.stop) { - const chain = this.startNodeAtNode(node); - chain.expression = node; - return this.finishNode(chain, "ChainExpression"); - } - } else if (node.type === "MemberExpression" || node.type === "CallExpression") { + return this.estreeParseChainExpression(node, base.loc.end); + } + return node; + } + parseMember(base, startLoc, state, computed, optional) { + const node = super.parseMember(base, startLoc, state, computed, optional); + if (node.type === "OptionalMemberExpression") { + this.castNodeTo(node, "MemberExpression"); + } else { node.optional = false; } return node; @@ -734,11 +841,32 @@ var estree = superClass => class ESTreeParserMixin extends superClass { return node.type === "Property" && node.kind === "init" && !node.method; } isObjectMethod(node) { - return node.method || node.kind === "get" || node.kind === "set"; + return node.type === "Property" && (node.method || node.kind === "get" || node.kind === "set"); + } + castNodeTo(node, type) { + const result = super.castNodeTo(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + this.fillOptionalPropertiesForTSESLint(cloned); + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Literal") { + return this.cloneEstreeStringLiteral(node); + } + return super.cloneStringLiteral(node); } finishNodeAt(node, type, endLoc) { return toESTreeLocation(super.finishNodeAt(node, type, endLoc)); } + finishNode(node, type) { + const result = super.finishNode(node, type); + this.fillOptionalPropertiesForTSESLint(result); + return result; + } resetStartLocation(node, startLoc) { super.resetStartLocation(node, startLoc); toESTreeLocation(node); @@ -762,9 +890,7 @@ const types = { j_cTag: new TokContext("...", true) }; -{ - types.template = new TokContext("`", true); -} +types.template = new TokContext("`", true); const beforeExpr = true; const startsExpr = true; const isLoop = true; @@ -793,9 +919,7 @@ class ExportedTokenType { this.prefix = !!conf.prefix; this.postfix = !!conf.postfix; this.binop = conf.binop != null ? conf.binop : null; - { - this.updateContext = null; - } + this.updateContext = null; } } const keywords$1 = new Map(); @@ -1205,6 +1329,9 @@ const tt = { name: createToken("name", { startsExpr }), + placeholder: createToken("%%", { + startsExpr + }), string: createToken("string", { startsExpr }), @@ -1226,27 +1353,24 @@ const tt = { eof: createToken("eof"), jsxName: createToken("jsxName"), jsxText: createToken("jsxText", { - beforeExpr: true + beforeExpr }), jsxTagStart: createToken("jsxTagStart", { - startsExpr: true + startsExpr }), - jsxTagEnd: createToken("jsxTagEnd"), - placeholder: createToken("%%", { - startsExpr: true - }) + jsxTagEnd: createToken("jsxTagEnd") }; function tokenIsIdentifier(token) { - return token >= 93 && token <= 132; + return token >= 93 && token <= 133; } function tokenKeywordOrIdentifierIsKeyword(token) { return token <= 92; } function tokenIsKeywordOrIdentifier(token) { - return token >= 58 && token <= 132; + return token >= 58 && token <= 133; } function tokenIsLiteralPropertyName(token) { - return token >= 58 && token <= 136; + return token >= 58 && token <= 137; } function tokenComesBeforeExpression(token) { return tokenBeforeExprs[token]; @@ -1296,31 +1420,29 @@ function tokenIsTemplate(token) { function getExportedToken(token) { return tokenTypes[token]; } -{ - tokenTypes[8].updateContext = context => { +tokenTypes[8].updateContext = context => { + context.pop(); +}; +tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { + context.push(types.brace); +}; +tokenTypes[22].updateContext = context => { + if (context[context.length - 1] === types.template) { context.pop(); - }; - tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { - context.push(types.brace); - }; - tokenTypes[22].updateContext = context => { - if (context[context.length - 1] === types.template) { - context.pop(); - } else { - context.push(types.template); - } - }; - tokenTypes[142].updateContext = context => { - context.push(types.j_expr, types.j_oTag); - }; -} -let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; + } else { + context.push(types.template); + } +}; +tokenTypes[143].updateContext = context => { + context.push(types.j_expr, types.j_oTag); +}; +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65"; const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; function isInAstralSet(code, set) { let pos = 0x10000; for (let i = 0, length = set.length; i < length; i += 2) { @@ -1412,6 +1534,9 @@ class ScopeHandler { get allowDirectSuper() { return (this.currentThisScopeFlags() & 32) > 0; } + get allowNewTarget() { + return (this.currentThisScopeFlags() & 512) > 0; + } get inClass() { return (this.currentThisScopeFlags() & 64) > 0; } @@ -1427,7 +1552,7 @@ class ScopeHandler { if (flags & 128) { return true; } - if (flags & (387 | 64)) { + if (flags & (1667 | 64)) { return false; } } @@ -1435,6 +1560,9 @@ class ScopeHandler { get inNonArrowFunction() { return (this.currentThisScopeFlags() & 2) > 0; } + get inBareCaseStatement() { + return (this.currentScope().flags & 256) > 0; + } get treatFunctionsAsVar() { return this.treatFunctionsAsVarInScope(this.currentScope()); } @@ -1474,7 +1602,7 @@ class ScopeHandler { this.checkRedeclarationInScope(scope, name, bindingType, loc); scope.names.set(name, (scope.names.get(name) || 0) | 1); this.maybeExportDefined(scope, name); - if (scope.flags & 387) break; + if (scope.flags & 1667) break; } } if (this.parser.inModule && scope.flags & 1) { @@ -1498,7 +1626,7 @@ class ScopeHandler { if (bindingType & 8) { return scope.names.has(name); } - const type = scope.names.get(name); + const type = scope.names.get(name) || 0; if (bindingType & 16) { return (type & 2) > 0 || !this.treatFunctionsAsVarInScope(scope) && (type & 1) > 0; } @@ -1521,7 +1649,7 @@ class ScopeHandler { const { flags } = this.scopeStack[i]; - if (flags & 387) { + if (flags & 1667) { return flags; } } @@ -1531,7 +1659,7 @@ class ScopeHandler { const { flags } = this.scopeStack[i]; - if (flags & (387 | 64) && !(flags & 4)) { + if (flags & (1667 | 64) && !(flags & 4)) { return flags; } } @@ -1571,11 +1699,3281 @@ class FlowScopeHandler extends ScopeHandler { } } } +const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); +const FlowErrors = ParseErrorEnum`flow`({ + AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", + AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", + AssignReservedType: ({ + reservedType + }) => `Cannot overwrite reserved type ${reservedType}.`, + DeclareClassElement: "The `declare` modifier can only appear on class fields.", + DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", + DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", + EnumBooleanMemberNotInitialized: ({ + memberName, + enumName + }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, + EnumDuplicateMemberName: ({ + memberName, + enumName + }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, + EnumInconsistentMemberValues: ({ + enumName + }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, + EnumInvalidExplicitType: ({ + invalidEnumType, + enumName + }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidExplicitTypeUnknownSupplied: ({ + enumName + }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerPrimaryType: ({ + enumName, + memberName, + explicitType + }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, + EnumInvalidMemberInitializerSymbolType: ({ + enumName, + memberName + }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, + EnumInvalidMemberInitializerUnknownType: ({ + enumName, + memberName + }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, + EnumInvalidMemberName: ({ + enumName, + memberName, + suggestion + }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, + EnumNumberMemberNotInitialized: ({ + enumName, + memberName + }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, + EnumStringMemberInconsistentlyInitialized: ({ + enumName + }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, + GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", + ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", + ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", + InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", + InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", + InexactVariance: "Explicit inexact syntax cannot have variance.", + InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", + MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", + NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", + NestedFlowComment: "Cannot have a flow comment inside another flow comment.", + PatternIsOptional: Object.assign({ + message: "A binding pattern parameter cannot be optional in an implementation signature." + }, { + reasonCode: "OptionalBindingPattern" + }), + SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", + SpreadVariance: "Spread properties cannot have variance.", + ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", + ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", + ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", + ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", + ThisParamNoDefault: "The `this` parameter may not have a default value.", + TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", + TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", + UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", + UnexpectedReservedType: ({ + reservedType + }) => `Unexpected reserved type ${reservedType}.`, + UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", + UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", + UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", + UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', + UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", + UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", + UnsupportedDeclareExportKind: ({ + unsupportedExportKind, + suggestion + }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, + UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", + UnterminatedFlowComment: "Unterminated flow-comment." +}); +function isEsModuleType(bodyElement) { + return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); +} +function hasTypeImportKind(node) { + return node.importKind === "type" || node.importKind === "typeof"; +} +const exportSuggestions = { + const: "declare export var", + let: "declare export var", + type: "export type", + interface: "export interface" +}; +function partition(list, test) { + const list1 = []; + const list2 = []; + for (let i = 0; i < list.length; i++) { + (test(list[i], i, list) ? list1 : list2).push(list[i]); + } + return [list1, list2]; +} +const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; +var flow = superClass => class FlowParserMixin extends superClass { + constructor(...args) { + super(...args); + this.flowPragma = undefined; + } + getScopeHandler() { + return FlowScopeHandler; + } + shouldParseTypes() { + return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; + } + finishToken(type, val) { + if (type !== 134 && type !== 13 && type !== 28) { + if (this.flowPragma === undefined) { + this.flowPragma = null; + } + } + super.finishToken(type, val); + } + addComment(comment) { + if (this.flowPragma === undefined) { + const matches = FLOW_PRAGMA_REGEX.exec(comment.value); + if (!matches) ;else if (matches[1] === "flow") { + this.flowPragma = "flow"; + } else if (matches[1] === "noflow") { + this.flowPragma = "noflow"; + } else { + throw new Error("Unexpected flow pragma"); + } + } + super.addComment(comment); + } + flowParseTypeInitialiser(tok) { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(tok || 14); + const type = this.flowParseType(); + this.state.inType = oldInType; + return type; + } + flowParsePredicate() { + const node = this.startNode(); + const moduloLoc = this.state.startLoc; + this.next(); + this.expectContextual(110); + if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { + this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); + } + if (this.eat(10)) { + node.value = super.parseExpression(); + this.expect(11); + return this.finishNode(node, "DeclaredPredicate"); + } else { + return this.finishNode(node, "InferredPredicate"); + } + } + flowParseTypeAndPredicateInitialiser() { + const oldInType = this.state.inType; + this.state.inType = true; + this.expect(14); + let type = null; + let predicate = null; + if (this.match(54)) { + this.state.inType = oldInType; + predicate = this.flowParsePredicate(); + } else { + type = this.flowParseType(); + this.state.inType = oldInType; + if (this.match(54)) { + predicate = this.flowParsePredicate(); + } + } + return [type, predicate]; + } + flowParseDeclareClass(node) { + this.next(); + this.flowParseInterfaceish(node, true); + return this.finishNode(node, "DeclareClass"); + } + flowParseDeclareFunction(node) { + this.next(); + const id = node.id = this.parseIdentifier(); + const typeNode = this.startNode(); + const typeContainer = this.startNode(); + if (this.match(47)) { + typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + typeNode.typeParameters = null; + } + this.expect(10); + const tmp = this.flowParseFunctionTypeParams(); + typeNode.params = tmp.params; + typeNode.rest = tmp.rest; + typeNode.this = tmp._this; + this.expect(11); + [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); + id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); + this.resetEndLocation(id); + this.semicolon(); + this.scope.declareName(node.id.name, 2048, node.id.loc.start); + return this.finishNode(node, "DeclareFunction"); + } + flowParseDeclare(node, insideModule) { + if (this.match(80)) { + return this.flowParseDeclareClass(node); + } else if (this.match(68)) { + return this.flowParseDeclareFunction(node); + } else if (this.match(74)) { + return this.flowParseDeclareVariable(node); + } else if (this.eatContextual(127)) { + if (this.match(16)) { + return this.flowParseDeclareModuleExports(node); + } else { + if (insideModule) { + this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); + } + return this.flowParseDeclareModule(node); + } + } else if (this.isContextual(130)) { + return this.flowParseDeclareTypeAlias(node); + } else if (this.isContextual(131)) { + return this.flowParseDeclareOpaqueType(node); + } else if (this.isContextual(129)) { + return this.flowParseDeclareInterface(node); + } else if (this.match(82)) { + return this.flowParseDeclareExportDeclaration(node, insideModule); + } + throw this.unexpected(); + } + flowParseDeclareVariable(node) { + this.next(); + node.id = this.flowParseTypeAnnotatableIdentifier(true); + this.scope.declareName(node.id.name, 5, node.id.loc.start); + this.semicolon(); + return this.finishNode(node, "DeclareVariable"); + } + flowParseDeclareModule(node) { + this.scope.enter(0); + if (this.match(134)) { + node.id = super.parseExprAtom(); + } else { + node.id = this.parseIdentifier(); + } + const bodyNode = node.body = this.startNode(); + const body = bodyNode.body = []; + this.expect(5); + while (!this.match(8)) { + const bodyNode = this.startNode(); + if (this.match(83)) { + this.next(); + if (!this.isContextual(130) && !this.match(87)) { + this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); + } + body.push(super.parseImport(bodyNode)); + } else { + this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); + body.push(this.flowParseDeclare(bodyNode, true)); + } + } + this.scope.exit(); + this.expect(8); + this.finishNode(bodyNode, "BlockStatement"); + let kind = null; + let hasModuleExport = false; + body.forEach(bodyElement => { + if (isEsModuleType(bodyElement)) { + if (kind === "CommonJS") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "ES"; + } else if (bodyElement.type === "DeclareModuleExports") { + if (hasModuleExport) { + this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); + } + if (kind === "ES") { + this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); + } + kind = "CommonJS"; + hasModuleExport = true; + } + }); + node.kind = kind || "CommonJS"; + return this.finishNode(node, "DeclareModule"); + } + flowParseDeclareExportDeclaration(node, insideModule) { + this.expect(82); + if (this.eat(65)) { + if (this.match(68) || this.match(80)) { + node.declaration = this.flowParseDeclare(this.startNode()); + } else { + node.declaration = this.flowParseType(); + this.semicolon(); + } + node.default = true; + return this.finishNode(node, "DeclareExportDeclaration"); + } else { + if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { + const label = this.state.value; + throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { + unsupportedExportKind: label, + suggestion: exportSuggestions[label] + }); + } + if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { + node.declaration = this.flowParseDeclare(this.startNode()); + node.default = false; + return this.finishNode(node, "DeclareExportDeclaration"); + } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { + node = this.parseExport(node, null); + if (node.type === "ExportNamedDeclaration") { + node.default = false; + delete node.exportKind; + return this.castNodeTo(node, "DeclareExportDeclaration"); + } else { + return this.castNodeTo(node, "DeclareExportAllDeclaration"); + } + } + } + throw this.unexpected(); + } + flowParseDeclareModuleExports(node) { + this.next(); + this.expectContextual(111); + node.typeAnnotation = this.flowParseTypeAnnotation(); + this.semicolon(); + return this.finishNode(node, "DeclareModuleExports"); + } + flowParseDeclareTypeAlias(node) { + this.next(); + const finished = this.flowParseTypeAlias(node); + this.castNodeTo(finished, "DeclareTypeAlias"); + return finished; + } + flowParseDeclareOpaqueType(node) { + this.next(); + const finished = this.flowParseOpaqueType(node, true); + this.castNodeTo(finished, "DeclareOpaqueType"); + return finished; + } + flowParseDeclareInterface(node) { + this.next(); + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "DeclareInterface"); + } + flowParseInterfaceish(node, isClass) { + node.id = this.flowParseRestrictedIdentifier(!isClass, true); + this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (!isClass && this.eat(12)); + } + if (isClass) { + node.implements = []; + node.mixins = []; + if (this.eatContextual(117)) { + do { + node.mixins.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + if (this.eatContextual(113)) { + do { + node.implements.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + } + node.body = this.flowParseObjectType({ + allowStatic: isClass, + allowExact: false, + allowSpread: false, + allowProto: isClass, + allowInexact: false + }); + } + flowParseInterfaceExtends() { + const node = this.startNode(); + node.id = this.flowParseQualifiedTypeIdentifier(); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + return this.finishNode(node, "InterfaceExtends"); + } + flowParseInterface(node) { + this.flowParseInterfaceish(node, false); + return this.finishNode(node, "InterfaceDeclaration"); + } + checkNotUnderscore(word) { + if (word === "_") { + this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); + } + } + checkReservedType(word, startLoc, declaration) { + if (!reservedTypes.has(word)) return; + this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { + reservedType: word + }); + } + flowParseRestrictedIdentifier(liberal, declaration) { + this.checkReservedType(this.state.value, this.state.startLoc, declaration); + return this.parseIdentifier(liberal); + } + flowParseTypeAlias(node) { + node.id = this.flowParseRestrictedIdentifier(false, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.right = this.flowParseTypeInitialiser(29); + this.semicolon(); + return this.finishNode(node, "TypeAlias"); + } + flowParseOpaqueType(node, declare) { + this.expectContextual(130); + node.id = this.flowParseRestrictedIdentifier(true, true); + this.scope.declareName(node.id.name, 8201, node.id.loc.start); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } else { + node.typeParameters = null; + } + node.supertype = null; + if (this.match(14)) { + node.supertype = this.flowParseTypeInitialiser(14); + } + node.impltype = null; + if (!declare) { + node.impltype = this.flowParseTypeInitialiser(29); + } + this.semicolon(); + return this.finishNode(node, "OpaqueType"); + } + flowParseTypeParameter(requireDefault = false) { + const nodeStartLoc = this.state.startLoc; + const node = this.startNode(); + const variance = this.flowParseVariance(); + const ident = this.flowParseTypeAnnotatableIdentifier(); + node.name = ident.name; + node.variance = variance; + node.bound = ident.typeAnnotation; + if (this.match(29)) { + this.eat(29); + node.default = this.flowParseType(); + } else { + if (requireDefault) { + this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); + } + } + return this.finishNode(node, "TypeParameter"); + } + flowParseTypeParameterDeclaration() { + const oldInType = this.state.inType; + const node = this.startNode(); + node.params = []; + this.state.inType = true; + if (this.match(47) || this.match(143)) { + this.next(); + } else { + this.unexpected(); + } + let defaultRequired = false; + do { + const typeParameter = this.flowParseTypeParameter(defaultRequired); + node.params.push(typeParameter); + if (typeParameter.default) { + defaultRequired = true; + } + if (!this.match(48)) { + this.expect(12); + } + } while (!this.match(48)); + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterDeclaration"); + } + flowInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { + return cb(); + } + } + flowParseTypeParameterInstantiationInExpression() { + if (this.reScan_lt() !== 47) return; + return this.flowParseTypeParameterInstantiation(); + } + flowParseTypeParameterInstantiation() { + const node = this.startNode(); + const oldInType = this.state.inType; + this.state.inType = true; + node.params = []; + this.flowInTopLevelContext(() => { + this.expect(47); + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = false; + while (!this.match(48)) { + node.params.push(this.flowParseType()); + if (!this.match(48)) { + this.expect(12); + } + } + this.state.noAnonFunctionType = oldNoAnonFunctionType; + }); + this.state.inType = oldInType; + if (!this.state.inType && this.curContext() === types.brace) { + this.reScan_lt_gt(); + } + this.expect(48); + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseTypeParameterInstantiationCallOrNew() { + if (this.reScan_lt() !== 47) return null; + const node = this.startNode(); + const oldInType = this.state.inType; + node.params = []; + this.state.inType = true; + this.expect(47); + while (!this.match(48)) { + node.params.push(this.flowParseTypeOrImplicitInstantiation()); + if (!this.match(48)) { + this.expect(12); + } + } + this.expect(48); + this.state.inType = oldInType; + return this.finishNode(node, "TypeParameterInstantiation"); + } + flowParseInterfaceType() { + const node = this.startNode(); + this.expectContextual(129); + node.extends = []; + if (this.eat(81)) { + do { + node.extends.push(this.flowParseInterfaceExtends()); + } while (this.eat(12)); + } + node.body = this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: false, + allowProto: false, + allowInexact: false + }); + return this.finishNode(node, "InterfaceTypeAnnotation"); + } + flowParseObjectPropertyKey() { + return this.match(135) || this.match(134) ? super.parseExprAtom() : this.parseIdentifier(true); + } + flowParseObjectTypeIndexer(node, isStatic, variance) { + node.static = isStatic; + if (this.lookahead().type === 14) { + node.id = this.flowParseObjectPropertyKey(); + node.key = this.flowParseTypeInitialiser(); + } else { + node.id = null; + node.key = this.flowParseType(); + } + this.expect(3); + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + return this.finishNode(node, "ObjectTypeIndexer"); + } + flowParseObjectTypeInternalSlot(node, isStatic) { + node.static = isStatic; + node.id = this.flowParseObjectPropertyKey(); + this.expect(3); + this.expect(3); + if (this.match(47) || this.match(10)) { + node.method = true; + node.optional = false; + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + } else { + node.method = false; + if (this.eat(17)) { + node.optional = true; + } + node.value = this.flowParseTypeInitialiser(); + } + return this.finishNode(node, "ObjectTypeInternalSlot"); + } + flowParseObjectTypeMethodish(node) { + node.params = []; + node.rest = null; + node.typeParameters = null; + node.this = null; + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + this.expect(10); + if (this.match(78)) { + node.this = this.flowParseFunctionTypeParam(true); + node.this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + node.params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + node.rest = this.flowParseFunctionTypeParam(false); + } + this.expect(11); + node.returnType = this.flowParseTypeInitialiser(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + flowParseObjectTypeCallProperty(node, isStatic) { + const valueNode = this.startNode(); + node.static = isStatic; + node.value = this.flowParseObjectTypeMethodish(valueNode); + return this.finishNode(node, "ObjectTypeCallProperty"); + } + flowParseObjectType({ + allowStatic, + allowExact, + allowSpread, + allowProto, + allowInexact + }) { + const oldInType = this.state.inType; + this.state.inType = true; + const nodeStart = this.startNode(); + nodeStart.callProperties = []; + nodeStart.properties = []; + nodeStart.indexers = []; + nodeStart.internalSlots = []; + let endDelim; + let exact; + let inexact = false; + if (allowExact && this.match(6)) { + this.expect(6); + endDelim = 9; + exact = true; + } else { + this.expect(5); + endDelim = 8; + exact = false; + } + nodeStart.exact = exact; + while (!this.match(endDelim)) { + let isStatic = false; + let protoStartLoc = null; + let inexactStartLoc = null; + const node = this.startNode(); + if (allowProto && this.isContextual(118)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + protoStartLoc = this.state.startLoc; + allowStatic = false; + } + } + if (allowStatic && this.isContextual(106)) { + const lookahead = this.lookahead(); + if (lookahead.type !== 14 && lookahead.type !== 17) { + this.next(); + isStatic = true; + } + } + const variance = this.flowParseVariance(); + if (this.eat(0)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (this.eat(0)) { + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); + } else { + nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); + } + } else if (this.match(10) || this.match(47)) { + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); + } else { + let kind = "init"; + if (this.isContextual(99) || this.isContextual(104)) { + const lookahead = this.lookahead(); + if (tokenIsLiteralPropertyName(lookahead.type)) { + kind = this.state.value; + this.next(); + } + } + const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); + if (propOrInexact === null) { + inexact = true; + inexactStartLoc = this.state.lastTokStartLoc; + } else { + nodeStart.properties.push(propOrInexact); + } + } + this.flowObjectTypeSemicolon(); + if (inexactStartLoc && !this.match(8) && !this.match(9)) { + this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); + } + } + this.expect(endDelim); + if (allowSpread) { + nodeStart.inexact = inexact; + } + const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); + this.state.inType = oldInType; + return out; + } + flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { + if (this.eat(21)) { + const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); + if (isInexactToken) { + if (!allowSpread) { + this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); + } else if (!allowInexact) { + this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); + } + if (variance) { + this.raise(FlowErrors.InexactVariance, variance); + } + return null; + } + if (!allowSpread) { + this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); + } + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.raise(FlowErrors.SpreadVariance, variance); + } + node.argument = this.flowParseType(); + return this.finishNode(node, "ObjectTypeSpreadProperty"); + } else { + node.key = this.flowParseObjectPropertyKey(); + node.static = isStatic; + node.proto = protoStartLoc != null; + node.kind = kind; + let optional = false; + if (this.match(47) || this.match(10)) { + node.method = true; + if (protoStartLoc != null) { + this.unexpected(protoStartLoc); + } + if (variance) { + this.unexpected(variance.loc.start); + } + node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); + if (kind === "get" || kind === "set") { + this.flowCheckGetterSetterParams(node); + } + if (!allowSpread && node.key.name === "constructor" && node.value.this) { + this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); + } + } else { + if (kind !== "init") this.unexpected(); + node.method = false; + if (this.eat(17)) { + optional = true; + } + node.value = this.flowParseTypeInitialiser(); + node.variance = variance; + } + node.optional = optional; + return this.finishNode(node, "ObjectTypeProperty"); + } + } + flowCheckGetterSetterParams(property) { + const paramCount = property.kind === "get" ? 0 : 1; + const length = property.value.params.length + (property.value.rest ? 1 : 0); + if (property.value.this) { + this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); + } + if (length !== paramCount) { + this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); + } + if (property.kind === "set" && property.value.rest) { + this.raise(Errors.BadSetterRestParameter, property); + } + } + flowObjectTypeSemicolon() { + if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { + this.unexpected(); + } + } + flowParseQualifiedTypeIdentifier(startLoc, id) { + startLoc != null ? startLoc : startLoc = this.state.startLoc; + let node = id || this.flowParseRestrictedIdentifier(true); + while (this.eat(16)) { + const node2 = this.startNodeAt(startLoc); + node2.qualification = node; + node2.id = this.flowParseRestrictedIdentifier(true); + node = this.finishNode(node2, "QualifiedTypeIdentifier"); + } + return node; + } + flowParseGenericType(startLoc, id) { + const node = this.startNodeAt(startLoc); + node.typeParameters = null; + node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } + return this.finishNode(node, "GenericTypeAnnotation"); + } + flowParseTypeofType() { + const node = this.startNode(); + this.expect(87); + node.argument = this.flowParsePrimaryType(); + return this.finishNode(node, "TypeofTypeAnnotation"); + } + flowParseTupleType() { + const node = this.startNode(); + node.types = []; + this.expect(0); + while (this.state.pos < this.length && !this.match(3)) { + node.types.push(this.flowParseType()); + if (this.match(3)) break; + this.expect(12); + } + this.expect(3); + return this.finishNode(node, "TupleTypeAnnotation"); + } + flowParseFunctionTypeParam(first) { + let name = null; + let optional = false; + let typeAnnotation = null; + const node = this.startNode(); + const lh = this.lookahead(); + const isThis = this.state.type === 78; + if (lh.type === 14 || lh.type === 17) { + if (isThis && !first) { + this.raise(FlowErrors.ThisParamMustBeFirst, node); + } + name = this.parseIdentifier(isThis); + if (this.eat(17)) { + optional = true; + if (isThis) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, node); + } + } + typeAnnotation = this.flowParseTypeInitialiser(); + } else { + typeAnnotation = this.flowParseType(); + } + node.name = name; + node.optional = optional; + node.typeAnnotation = typeAnnotation; + return this.finishNode(node, "FunctionTypeParam"); + } + reinterpretTypeAsFunctionTypeParam(type) { + const node = this.startNodeAt(type.loc.start); + node.name = null; + node.optional = false; + node.typeAnnotation = type; + return this.finishNode(node, "FunctionTypeParam"); + } + flowParseFunctionTypeParams(params = []) { + let rest = null; + let _this = null; + if (this.match(78)) { + _this = this.flowParseFunctionTypeParam(true); + _this.name = null; + if (!this.match(11)) { + this.expect(12); + } + } + while (!this.match(11) && !this.match(21)) { + params.push(this.flowParseFunctionTypeParam(false)); + if (!this.match(11)) { + this.expect(12); + } + } + if (this.eat(21)) { + rest = this.flowParseFunctionTypeParam(false); + } + return { + params, + rest, + _this + }; + } + flowIdentToTypeAnnotation(startLoc, node, id) { + switch (id.name) { + case "any": + return this.finishNode(node, "AnyTypeAnnotation"); + case "bool": + case "boolean": + return this.finishNode(node, "BooleanTypeAnnotation"); + case "mixed": + return this.finishNode(node, "MixedTypeAnnotation"); + case "empty": + return this.finishNode(node, "EmptyTypeAnnotation"); + case "number": + return this.finishNode(node, "NumberTypeAnnotation"); + case "string": + return this.finishNode(node, "StringTypeAnnotation"); + case "symbol": + return this.finishNode(node, "SymbolTypeAnnotation"); + default: + this.checkNotUnderscore(id.name); + return this.flowParseGenericType(startLoc, id); + } + } + flowParsePrimaryType() { + const startLoc = this.state.startLoc; + const node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + switch (this.state.type) { + case 5: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: false, + allowSpread: true, + allowProto: false, + allowInexact: true + }); + case 6: + return this.flowParseObjectType({ + allowStatic: false, + allowExact: true, + allowSpread: true, + allowProto: false, + allowInexact: false + }); + case 0: + this.state.noAnonFunctionType = false; + type = this.flowParseTupleType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + return type; + case 47: + { + const node = this.startNode(); + node.typeParameters = this.flowParseTypeParameterDeclaration(); + this.expect(10); + tmp = this.flowParseFunctionTypeParams(); + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 10: + { + const node = this.startNode(); + this.next(); + if (!this.match(11) && !this.match(21)) { + if (tokenIsIdentifier(this.state.type) || this.match(78)) { + const token = this.lookahead().type; + isGroupedType = token !== 17 && token !== 14; + } else { + isGroupedType = true; + } + } + if (isGroupedType) { + this.state.noAnonFunctionType = false; + type = this.flowParseType(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { + this.expect(11); + return type; + } else { + this.eat(12); + } + } + if (type) { + tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); + } else { + tmp = this.flowParseFunctionTypeParams(); + } + node.params = tmp.params; + node.rest = tmp.rest; + node.this = tmp._this; + this.expect(11); + this.expect(19); + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + case 134: + return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); + case 85: + case 86: + node.value = this.match(85); + this.next(); + return this.finishNode(node, "BooleanLiteralTypeAnnotation"); + case 53: + if (this.state.value === "-") { + this.next(); + if (this.match(135)) { + return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); + } + if (this.match(136)) { + return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); + } + throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); + } + throw this.unexpected(); + case 135: + return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); + case 136: + return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); + case 88: + this.next(); + return this.finishNode(node, "VoidTypeAnnotation"); + case 84: + this.next(); + return this.finishNode(node, "NullLiteralTypeAnnotation"); + case 78: + this.next(); + return this.finishNode(node, "ThisTypeAnnotation"); + case 55: + this.next(); + return this.finishNode(node, "ExistsTypeAnnotation"); + case 87: + return this.flowParseTypeofType(); + default: + if (tokenIsKeyword(this.state.type)) { + const label = tokenLabelName(this.state.type); + this.next(); + return super.createIdentifier(node, label); + } else if (tokenIsIdentifier(this.state.type)) { + if (this.isContextual(129)) { + return this.flowParseInterfaceType(); + } + return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); + } + } + throw this.unexpected(); + } + flowParsePostfixType() { + const startLoc = this.state.startLoc; + let type = this.flowParsePrimaryType(); + let seenOptionalIndexedAccess = false; + while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { + const node = this.startNodeAt(startLoc); + const optional = this.eat(18); + seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; + this.expect(0); + if (!optional && this.match(3)) { + node.elementType = type; + this.next(); + type = this.finishNode(node, "ArrayTypeAnnotation"); + } else { + node.objectType = type; + node.indexType = this.flowParseType(); + this.expect(3); + if (seenOptionalIndexedAccess) { + node.optional = optional; + type = this.finishNode(node, "OptionalIndexedAccessType"); + } else { + type = this.finishNode(node, "IndexedAccessType"); + } + } + } + return type; + } + flowParsePrefixType() { + const node = this.startNode(); + if (this.eat(17)) { + node.typeAnnotation = this.flowParsePrefixType(); + return this.finishNode(node, "NullableTypeAnnotation"); + } else { + return this.flowParsePostfixType(); + } + } + flowParseAnonFunctionWithoutParens() { + const param = this.flowParsePrefixType(); + if (!this.state.noAnonFunctionType && this.eat(19)) { + const node = this.startNodeAt(param.loc.start); + node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; + node.rest = null; + node.this = null; + node.returnType = this.flowParseType(); + node.typeParameters = null; + return this.finishNode(node, "FunctionTypeAnnotation"); + } + return param; + } + flowParseIntersectionType() { + const node = this.startNode(); + this.eat(45); + const type = this.flowParseAnonFunctionWithoutParens(); + node.types = [type]; + while (this.eat(45)) { + node.types.push(this.flowParseAnonFunctionWithoutParens()); + } + return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); + } + flowParseUnionType() { + const node = this.startNode(); + this.eat(43); + const type = this.flowParseIntersectionType(); + node.types = [type]; + while (this.eat(43)) { + node.types.push(this.flowParseIntersectionType()); + } + return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); + } + flowParseType() { + const oldInType = this.state.inType; + this.state.inType = true; + const type = this.flowParseUnionType(); + this.state.inType = oldInType; + return type; + } + flowParseTypeOrImplicitInstantiation() { + if (this.state.type === 132 && this.state.value === "_") { + const startLoc = this.state.startLoc; + const node = this.parseIdentifier(); + return this.flowParseGenericType(startLoc, node); + } else { + return this.flowParseType(); + } + } + flowParseTypeAnnotation() { + const node = this.startNode(); + node.typeAnnotation = this.flowParseTypeInitialiser(); + return this.finishNode(node, "TypeAnnotation"); + } + flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { + const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); + if (this.match(14)) { + ident.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(ident); + } + return ident; + } + typeCastToParameter(node) { + node.expression.typeAnnotation = node.typeAnnotation; + this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); + return node.expression; + } + flowParseVariance() { + let variance = null; + if (this.match(53)) { + variance = this.startNode(); + if (this.state.value === "+") { + variance.kind = "plus"; + } else { + variance.kind = "minus"; + } + this.next(); + return this.finishNode(variance, "Variance"); + } + return variance; + } + parseFunctionBody(node, allowExpressionBody, isMethod = false) { + if (allowExpressionBody) { + this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); + return; + } + super.parseFunctionBody(node, false, isMethod); + } + parseFunctionBodyAndFinish(node, type, isMethod = false) { + if (this.match(14)) { + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; + } + return super.parseFunctionBodyAndFinish(node, type, isMethod); + } + parseStatementLike(flags) { + if (this.state.strict && this.isContextual(129)) { + const lookahead = this.lookahead(); + if (tokenIsKeywordOrIdentifier(lookahead.type)) { + const node = this.startNode(); + this.next(); + return this.flowParseInterface(node); + } + } else if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + const stmt = super.parseStatementLike(flags); + if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { + this.flowPragma = null; + } + return stmt; + } + parseExpressionStatement(node, expr, decorators) { + if (expr.type === "Identifier") { + if (expr.name === "declare") { + if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { + return this.flowParseDeclare(node); + } + } else if (tokenIsIdentifier(this.state.type)) { + if (expr.name === "interface") { + return this.flowParseInterface(node); + } else if (expr.name === "type") { + return this.flowParseTypeAlias(node); + } else if (expr.name === "opaque") { + return this.flowParseOpaqueType(node, false); + } + } + } + return super.parseExpressionStatement(node, expr, decorators); + } + shouldParseExportDeclaration() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return !this.state.containsEsc; + } + return super.shouldParseExportDeclaration(); + } + isExportDefaultSpecifier() { + const { + type + } = this.state; + if (type === 126 || tokenIsFlowInterfaceOrTypeOrOpaque(type)) { + return this.state.containsEsc; + } + return super.isExportDefaultSpecifier(); + } + parseExportDefaultExpression() { + if (this.isContextual(126)) { + const node = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(node); + } + return super.parseExportDefaultExpression(); + } + parseConditional(expr, startLoc, refExpressionErrors) { + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; + } + } + this.expect(17); + const state = this.state.clone(); + const originalNoArrowAt = this.state.noArrowAt; + const node = this.startNodeAt(startLoc); + let { + consequent, + failed + } = this.tryParseConditionalConsequent(); + let [valid, invalid] = this.getArrowLikeExpressions(consequent); + if (failed || invalid.length > 0) { + const noArrowAt = [...originalNoArrowAt]; + if (invalid.length > 0) { + this.state = state; + this.state.noArrowAt = noArrowAt; + for (let i = 0; i < invalid.length; i++) { + noArrowAt.push(invalid[i].start); + } + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + [valid, invalid] = this.getArrowLikeExpressions(consequent); + } + if (failed && valid.length > 1) { + this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); + } + if (failed && valid.length === 1) { + this.state = state; + noArrowAt.push(valid[0].start); + this.state.noArrowAt = noArrowAt; + ({ + consequent, + failed + } = this.tryParseConditionalConsequent()); + } + } + this.getArrowLikeExpressions(consequent, true); + this.state.noArrowAt = originalNoArrowAt; + this.expect(14); + node.test = expr; + node.consequent = consequent; + node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); + return this.finishNode(node, "ConditionalExpression"); + } + tryParseConditionalConsequent() { + this.state.noArrowParamsConversionAt.push(this.state.start); + const consequent = this.parseMaybeAssignAllowIn(); + const failed = !this.match(14); + this.state.noArrowParamsConversionAt.pop(); + return { + consequent, + failed + }; + } + getArrowLikeExpressions(node, disallowInvalid) { + const stack = [node]; + const arrows = []; + while (stack.length !== 0) { + const node = stack.pop(); + if (node.type === "ArrowFunctionExpression" && node.body.type !== "BlockStatement") { + if (node.typeParameters || !node.returnType) { + this.finishArrowValidation(node); + } else { + arrows.push(node); + } + stack.push(node.body); + } else if (node.type === "ConditionalExpression") { + stack.push(node.consequent); + stack.push(node.alternate); + } + } + if (disallowInvalid) { + arrows.forEach(node => this.finishArrowValidation(node)); + return [arrows, []]; + } + return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); + } + finishArrowValidation(node) { + var _node$extra; + this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); + this.scope.enter(514 | 4); + super.checkParams(node, false, true); + this.scope.exit(); + } + forwardNoArrowParamsConversionAt(node, parse) { + let result; + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + this.state.noArrowParamsConversionAt.push(this.state.start); + result = parse(); + this.state.noArrowParamsConversionAt.pop(); + } else { + result = parse(); + } + return result; + } + parseParenItem(node, startLoc) { + const newNode = super.parseParenItem(node, startLoc); + if (this.eat(17)) { + newNode.optional = true; + this.resetEndLocation(node); + } + if (this.match(14)) { + const typeCastNode = this.startNodeAt(startLoc); + typeCastNode.expression = newNode; + typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); + return this.finishNode(typeCastNode, "TypeCastExpression"); + } + return newNode; + } + assertModuleNodeAllowed(node) { + if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { + return; + } + super.assertModuleNodeAllowed(node); + } + parseExportDeclaration(node) { + if (this.isContextual(130)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + if (this.match(5)) { + node.specifiers = this.parseExportSpecifiers(true); + super.parseExportFrom(node); + return null; + } else { + return this.flowParseTypeAlias(declarationNode); + } + } else if (this.isContextual(131)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseOpaqueType(declarationNode, false); + } else if (this.isContextual(129)) { + node.exportKind = "type"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseInterface(declarationNode); + } else if (this.isContextual(126)) { + node.exportKind = "value"; + const declarationNode = this.startNode(); + this.next(); + return this.flowParseEnumDeclaration(declarationNode); + } else { + return super.parseExportDeclaration(node); + } + } + eatExportStar(node) { + if (super.eatExportStar(node)) return true; + if (this.isContextual(130) && this.lookahead().type === 55) { + node.exportKind = "type"; + this.next(); + this.next(); + return true; + } + return false; + } + maybeParseExportNamespaceSpecifier(node) { + const { + startLoc + } = this.state; + const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); + if (hasNamespace && node.exportKind === "type") { + this.unexpected(startLoc); + } + return hasNamespace; + } + parseClassId(node, isStatement, optionalId) { + super.parseClassId(node, isStatement, optionalId); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + } + parseClassMember(classBody, member, state) { + const { + startLoc + } = this.state; + if (this.isContextual(125)) { + if (super.parseClassMemberFromModifier(classBody, member)) { + return; + } + member.declare = true; + } + super.parseClassMember(classBody, member, state); + if (member.declare) { + if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { + this.raise(FlowErrors.DeclareClassElement, startLoc); + } else if (member.value) { + this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); + } + } + } + isIterator(word) { + return word === "iterator" || word === "asyncIterator"; + } + readIterator() { + const word = super.readWord1(); + const fullWord = "@@" + word; + if (!this.isIterator(word) || !this.state.inType) { + this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { + identifierName: fullWord + }); + } + this.finishToken(132, fullWord); + } + getTokenFromCode(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 123 && next === 124) { + this.finishOp(6, 2); + } else if (this.state.inType && (code === 62 || code === 60)) { + this.finishOp(code === 62 ? 48 : 47, 1); + } else if (this.state.inType && code === 63) { + if (next === 46) { + this.finishOp(18, 2); + } else { + this.finishOp(17, 1); + } + } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { + this.state.pos += 2; + this.readIterator(); + } else { + super.getTokenFromCode(code); + } + } + isAssignable(node, isBinding) { + if (node.type === "TypeCastExpression") { + return this.isAssignable(node.expression, isBinding); + } else { + return super.isAssignable(node, isBinding); + } + } + toAssignable(node, isLHS = false) { + if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { + node.left = this.typeCastToParameter(node.left); + } + super.toAssignable(node, isLHS); + } + toAssignableList(exprList, trailingCommaLoc, isLHS) { + for (let i = 0; i < exprList.length; i++) { + const expr = exprList[i]; + if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { + exprList[i] = this.typeCastToParameter(expr); + } + } + super.toAssignableList(exprList, trailingCommaLoc, isLHS); + } + toReferencedList(exprList, isParenthesizedExpr) { + for (let i = 0; i < exprList.length; i++) { + var _expr$extra; + const expr = exprList[i]; + if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { + this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); + } + } + return exprList; + } + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); + if (refExpressionErrors != null && !this.state.maybeInArrowParameters) { + this.toReferencedList(node.elements); + } + return node; + } + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "TypeCastExpression" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); + } + parseClassProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassProperty(node); + } + parseClassPrivateProperty(node) { + if (this.match(14)) { + node.typeAnnotation = this.flowParseTypeAnnotation(); + } + return super.parseClassPrivateProperty(node); + } + isClassMethod() { + return this.match(47) || super.isClassMethod(); + } + isClassProperty() { + return this.match(14) || super.isClassProperty(); + } + isNonstaticConstructor(method) { + return !this.match(14) && super.isNonstaticConstructor(method); + } + pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); + if (method.params && isConstructor) { + const params = method.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { + const params = method.value.params; + if (params.length > 0 && this.isThisParam(params[0])) { + this.raise(FlowErrors.ThisParamBannedInConstructor, method); + } + } + } + pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { + if (method.variance) { + this.unexpected(method.variance.loc.start); + } + delete method.variance; + if (this.match(47)) { + method.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); + } + parseClassSuper(node) { + super.parseClassSuper(node); + if (node.superClass && (this.match(47) || this.match(51))) { + node.superTypeParameters = this.flowParseTypeParameterInstantiationInExpression(); + } + if (this.isContextual(113)) { + this.next(); + const implemented = node.implements = []; + do { + const node = this.startNode(); + node.id = this.flowParseRestrictedIdentifier(true); + if (this.match(47)) { + node.typeParameters = this.flowParseTypeParameterInstantiation(); + } else { + node.typeParameters = null; + } + implemented.push(this.finishNode(node, "ClassImplements")); + } while (this.eat(12)); + } + } + checkGetterSetterParams(method) { + super.checkGetterSetterParams(method); + const params = this.getObjectOrClassMethodParams(method); + if (params.length > 0) { + const param = params[0]; + if (this.isThisParam(param) && method.kind === "get") { + this.raise(FlowErrors.GetterMayNotHaveThisParam, param); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.SetterMayNotHaveThisParam, param); + } + } + } + parsePropertyNamePrefixOperator(node) { + node.variance = this.flowParseVariance(); + } + parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { + if (prop.variance) { + this.unexpected(prop.variance.loc.start); + } + delete prop.variance; + let typeParameters; + if (this.match(47) && !isAccessor) { + typeParameters = this.flowParseTypeParameterDeclaration(); + if (!this.match(10)) this.unexpected(); + } + const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); + if (typeParameters) { + (result.value || result).typeParameters = typeParameters; + } + return result; + } + parseFunctionParamType(param) { + if (this.eat(17)) { + if (param.type !== "Identifier") { + this.raise(FlowErrors.PatternIsOptional, param); + } + if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamMayNotBeOptional, param); + } + param.optional = true; + } + if (this.match(14)) { + param.typeAnnotation = this.flowParseTypeAnnotation(); + } else if (this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamAnnotationRequired, param); + } + if (this.match(29) && this.isThisParam(param)) { + this.raise(FlowErrors.ThisParamNoDefault, param); + } + this.resetEndLocation(param); + return param; + } + parseMaybeDefault(startLoc, left) { + const node = super.parseMaybeDefault(startLoc, left); + if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { + this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); + } + return node; + } + checkImportReflection(node) { + super.checkImportReflection(node); + if (node.module && node.importKind !== "value") { + this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); + } + } + parseImportSpecifierLocal(node, specifier, type) { + specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); + node.specifiers.push(this.finishImportSpecifier(specifier, type)); + } + isPotentialImportPhase(isExport) { + if (super.isPotentialImportPhase(isExport)) return true; + if (this.isContextual(130)) { + if (!isExport) return true; + const ch = this.lookaheadCharCode(); + return ch === 123 || ch === 42; + } + return !isExport && this.isContextual(87); + } + applyImportPhase(node, isExport, phase, loc) { + super.applyImportPhase(node, isExport, phase, loc); + if (isExport) { + if (!phase && this.match(65)) { + return; + } + node.exportKind = phase === "type" ? phase : "value"; + } else { + if (phase === "type" && this.match(55)) this.unexpected(); + node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; + } + } + parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { + const firstIdent = specifier.imported; + let specifierTypeKind = null; + if (firstIdent.type === "Identifier") { + if (firstIdent.name === "type") { + specifierTypeKind = "type"; + } else if (firstIdent.name === "typeof") { + specifierTypeKind = "typeof"; + } + } + let isBinding = false; + if (this.isContextual(93) && !this.isLookaheadContextual("as")) { + const as_ident = this.parseIdentifier(true); + if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = as_ident; + specifier.importKind = specifierTypeKind; + specifier.local = this.cloneIdentifier(as_ident); + } else { + specifier.imported = firstIdent; + specifier.importKind = null; + specifier.local = this.parseIdentifier(); + } + } else { + if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { + specifier.imported = this.parseIdentifier(true); + specifier.importKind = specifierTypeKind; + } else { + if (importedIsString) { + throw this.raise(Errors.ImportBindingIsString, specifier, { + importName: firstIdent.value + }); + } + specifier.imported = firstIdent; + specifier.importKind = null; + } + if (this.eatContextual(93)) { + specifier.local = this.parseIdentifier(); + } else { + isBinding = true; + specifier.local = this.cloneIdentifier(specifier.imported); + } + } + const specifierIsTypeImport = hasTypeImportKind(specifier); + if (isInTypeOnlyImport && specifierIsTypeImport) { + this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); + } + if (isInTypeOnlyImport || specifierIsTypeImport) { + this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); + } + if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { + this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); + } + return this.finishImportSpecifier(specifier, "ImportSpecifier"); + } + parseBindingAtom() { + switch (this.state.type) { + case 78: + return this.parseIdentifier(true); + default: + return super.parseBindingAtom(); + } + } + parseFunctionParams(node, isConstructor) { + const kind = node.kind; + if (kind !== "get" && kind !== "set" && this.match(47)) { + node.typeParameters = this.flowParseTypeParameterDeclaration(); + } + super.parseFunctionParams(node, isConstructor); + } + parseVarId(decl, kind) { + super.parseVarId(decl, kind); + if (this.match(14)) { + decl.id.typeAnnotation = this.flowParseTypeAnnotation(); + this.resetEndLocation(decl.id); + } + } + parseAsyncArrowFromCallExpression(node, call) { + if (this.match(14)) { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + node.returnType = this.flowParseTypeAnnotation(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + } + return super.parseAsyncArrowFromCallExpression(node, call); + } + shouldParseAsyncArrow() { + return this.match(14) || super.shouldParseAsyncArrow(); + } + parseMaybeAssign(refExpressionErrors, afterLeftParse) { + var _jsx; + let state = null; + let jsx; + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { + state = this.state.clone(); + jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); + if (!jsx.error) return jsx.node; + const { + context + } = this.state; + const currentContext = context[context.length - 1]; + if (currentContext === types.j_oTag || currentContext === types.j_expr) { + context.pop(); + } + } + if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { + var _jsx2, _jsx3; + state = state || this.state.clone(); + let typeParameters; + const arrow = this.tryParse(abort => { + var _arrowExpression$extr; + typeParameters = this.flowParseTypeParameterDeclaration(); + const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { + const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + this.resetStartLocationFromNode(result, typeParameters); + return result; + }); + if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); + const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); + if (expr.type !== "ArrowFunctionExpression") abort(); + expr.typeParameters = typeParameters; + this.resetStartLocationFromNode(expr, typeParameters); + return arrowExpression; + }, state); + let arrowExpression = null; + if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { + if (!arrow.error && !arrow.aborted) { + if (arrow.node.async) { + this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); + } + return arrow.node; + } + arrowExpression = arrow.node; + } + if ((_jsx2 = jsx) != null && _jsx2.node) { + this.state = jsx.failState; + return jsx.node; + } + if (arrowExpression) { + this.state = arrow.failState; + return arrowExpression; + } + if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; + if (arrow.thrown) throw arrow.error; + throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); + } + return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); + } + parseArrow(node) { + if (this.match(14)) { + const result = this.tryParse(() => { + const oldNoAnonFunctionType = this.state.noAnonFunctionType; + this.state.noAnonFunctionType = true; + const typeNode = this.startNode(); + [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); + this.state.noAnonFunctionType = oldNoAnonFunctionType; + if (this.canInsertSemicolon()) this.unexpected(); + if (!this.match(19)) this.unexpected(); + return typeNode; + }); + if (result.thrown) return null; + if (result.error) this.state = result.failState; + node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; + } + return super.parseArrow(node); + } + shouldParseArrow(params) { + return this.match(14) || super.shouldParseArrow(params); + } + setArrowFunctionParameters(node, params) { + if (this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + node.params = params; + } else { + super.setArrowFunctionParameters(node, params); + } + } + checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { + if (isArrowFunction && this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(node.start))) { + return; + } + for (let i = 0; i < node.params.length; i++) { + if (this.isThisParam(node.params[i]) && i > 0) { + this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); + } + } + super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); + } + parseParenAndDistinguishExpression(canBeArrow) { + return super.parseParenAndDistinguishExpression(canBeArrow && !this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start))); + } + parseSubscripts(base, startLoc, noCalls) { + if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.includes(startLoc.index)) { + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.arguments = super.parseCallExpressionArguments(); + base = this.finishNode(node, "CallExpression"); + } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { + const state = this.state.clone(); + const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); + if (!arrow.error && !arrow.aborted) return arrow.node; + const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); + if (result.node && !result.error) return result.node; + if (arrow.node) { + this.state = arrow.failState; + return arrow.node; + } + if (result.node) { + this.state = result.failState; + return result.node; + } + throw arrow.error || result.error; + } + return super.parseSubscripts(base, startLoc, noCalls); + } + parseSubscript(base, startLoc, noCalls, subscriptState) { + if (this.match(18) && this.isLookaheadToken_lt()) { + subscriptState.optionalChainMember = true; + if (noCalls) { + subscriptState.stop = true; + return base; + } + this.next(); + const node = this.startNodeAt(startLoc); + node.callee = base; + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + this.expect(10); + node.arguments = this.parseCallExpressionArguments(); + node.optional = true; + return this.finishCallExpression(node, true); + } else if (!noCalls && this.shouldParseTypes() && (this.match(47) || this.match(51))) { + const node = this.startNodeAt(startLoc); + node.callee = base; + const result = this.tryParse(() => { + node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); + this.expect(10); + node.arguments = super.parseCallExpressionArguments(); + if (subscriptState.optionalChainMember) { + node.optional = false; + } + return this.finishCallExpression(node, subscriptState.optionalChainMember); + }); + if (result.node) { + if (result.error) this.state = result.failState; + return result.node; + } + } + return super.parseSubscript(base, startLoc, noCalls, subscriptState); + } + parseNewCallee(node) { + super.parseNewCallee(node); + let targs = null; + if (this.shouldParseTypes() && this.match(47)) { + targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; + } + node.typeArguments = targs; + } + parseAsyncArrowWithTypeParameters(startLoc) { + const node = this.startNodeAt(startLoc); + this.parseFunctionParams(node, false); + if (!this.parseArrow(node)) return; + return super.parseArrowExpression(node, undefined, true); + } + readToken_mult_modulo(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 42 && next === 47 && this.state.hasFlowComment) { + this.state.hasFlowComment = false; + this.state.pos += 2; + this.nextToken(); + return; + } + super.readToken_mult_modulo(code); + } + readToken_pipe_amp(code) { + const next = this.input.charCodeAt(this.state.pos + 1); + if (code === 124 && next === 125) { + this.finishOp(9, 2); + return; + } + super.readToken_pipe_amp(code); + } + parseTopLevel(file, program) { + const fileNode = super.parseTopLevel(file, program); + if (this.state.hasFlowComment) { + this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); + } + return fileNode; + } + skipBlockComment() { + if (this.hasPlugin("flowComments") && this.skipFlowComment()) { + if (this.state.hasFlowComment) { + throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); + } + this.hasFlowCommentCompletion(); + const commentSkip = this.skipFlowComment(); + if (commentSkip) { + this.state.pos += commentSkip; + this.state.hasFlowComment = true; + } + return; + } + return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); + } + skipFlowComment() { + const { + pos + } = this.state; + let shiftToFirstNonWhiteSpace = 2; + while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { + shiftToFirstNonWhiteSpace++; + } + const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); + const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); + if (ch2 === 58 && ch3 === 58) { + return shiftToFirstNonWhiteSpace + 2; + } + if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { + return shiftToFirstNonWhiteSpace + 12; + } + if (ch2 === 58 && ch3 !== 58) { + return shiftToFirstNonWhiteSpace; + } + return false; + } + hasFlowCommentCompletion() { + const end = this.input.indexOf("*/", this.state.pos); + if (end === -1) { + throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); + } + } + flowEnumErrorBooleanMemberNotInitialized(loc, { + enumName, + memberName + }) { + this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { + memberName, + enumName + }); + } + flowEnumErrorInvalidMemberInitializer(loc, enumContext) { + return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); + } + flowEnumErrorNumberMemberNotInitialized(loc, details) { + this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); + } + flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { + this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); + } + flowEnumMemberInit() { + const startLoc = this.state.startLoc; + const endOfInit = () => this.match(12) || this.match(8); + switch (this.state.type) { + case 135: + { + const literal = this.parseNumericLiteral(this.state.value); + if (endOfInit()) { + return { + type: "number", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 134: + { + const literal = this.parseStringLiteral(this.state.value); + if (endOfInit()) { + return { + type: "string", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + case 85: + case 86: + { + const literal = this.parseBooleanLiteral(this.match(85)); + if (endOfInit()) { + return { + type: "boolean", + loc: literal.loc.start, + value: literal + }; + } + return { + type: "invalid", + loc: startLoc + }; + } + default: + return { + type: "invalid", + loc: startLoc + }; + } + } + flowEnumMemberRaw() { + const loc = this.state.startLoc; + const id = this.parseIdentifier(true); + const init = this.eat(29) ? this.flowEnumMemberInit() : { + type: "none", + loc + }; + return { + id, + init + }; + } + flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { + const { + explicitType + } = context; + if (explicitType === null) { + return; + } + if (explicitType !== expectedType) { + this.flowEnumErrorInvalidMemberInitializer(loc, context); + } + } + flowEnumMembers({ + enumName, + explicitType + }) { + const seenNames = new Set(); + const members = { + booleanMembers: [], + numberMembers: [], + stringMembers: [], + defaultedMembers: [] + }; + let hasUnknownMembers = false; + while (!this.match(8)) { + if (this.eat(21)) { + hasUnknownMembers = true; + break; + } + const memberNode = this.startNode(); + const { + id, + init + } = this.flowEnumMemberRaw(); + const memberName = id.name; + if (memberName === "") { + continue; + } + if (/^[a-z]/.test(memberName)) { + this.raise(FlowErrors.EnumInvalidMemberName, id, { + memberName, + suggestion: memberName[0].toUpperCase() + memberName.slice(1), + enumName + }); + } + if (seenNames.has(memberName)) { + this.raise(FlowErrors.EnumDuplicateMemberName, id, { + memberName, + enumName + }); + } + seenNames.add(memberName); + const context = { + enumName, + explicitType, + memberName + }; + memberNode.id = id; + switch (init.type) { + case "boolean": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); + memberNode.init = init.value; + members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); + break; + } + case "number": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); + memberNode.init = init.value; + members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); + break; + } + case "string": + { + this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); + memberNode.init = init.value; + members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); + break; + } + case "invalid": + { + throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); + } + case "none": + { + switch (explicitType) { + case "boolean": + this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); + break; + case "number": + this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); + break; + default: + members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); + } + } + } + if (!this.match(8)) { + this.expect(12); + } + } + return { + members, + hasUnknownMembers + }; + } + flowEnumStringMembers(initializedMembers, defaultedMembers, { + enumName + }) { + if (initializedMembers.length === 0) { + return defaultedMembers; + } else if (defaultedMembers.length === 0) { + return initializedMembers; + } else if (defaultedMembers.length > initializedMembers.length) { + for (const member of initializedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return defaultedMembers; + } else { + for (const member of defaultedMembers) { + this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { + enumName + }); + } + return initializedMembers; + } + } + flowEnumParseExplicitType({ + enumName + }) { + if (!this.eatContextual(102)) return null; + if (!tokenIsIdentifier(this.state.type)) { + throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { + enumName + }); + } + const { + value + } = this.state; + this.next(); + if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { + this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { + enumName, + invalidEnumType: value + }); + } + return value; + } + flowEnumBody(node, id) { + const enumName = id.name; + const nameLoc = id.loc.start; + const explicitType = this.flowEnumParseExplicitType({ + enumName + }); + this.expect(5); + const { + members, + hasUnknownMembers + } = this.flowEnumMembers({ + enumName, + explicitType + }); + node.hasUnknownMembers = hasUnknownMembers; + switch (explicitType) { + case "boolean": + node.explicitType = true; + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + case "number": + node.explicitType = true; + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + case "string": + node.explicitType = true; + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + case "symbol": + node.members = members.defaultedMembers; + this.expect(8); + return this.finishNode(node, "EnumSymbolBody"); + default: + { + const empty = () => { + node.members = []; + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + }; + node.explicitType = false; + const boolsLen = members.booleanMembers.length; + const numsLen = members.numberMembers.length; + const strsLen = members.stringMembers.length; + const defaultedLen = members.defaultedMembers.length; + if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { + return empty(); + } else if (!boolsLen && !numsLen) { + node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { + enumName + }); + this.expect(8); + return this.finishNode(node, "EnumStringBody"); + } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.booleanMembers; + this.expect(8); + return this.finishNode(node, "EnumBooleanBody"); + } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { + for (const member of members.defaultedMembers) { + this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { + enumName, + memberName: member.id.name + }); + } + node.members = members.numberMembers; + this.expect(8); + return this.finishNode(node, "EnumNumberBody"); + } else { + this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { + enumName + }); + return empty(); + } + } + } + } + flowParseEnumDeclaration(node) { + const id = this.parseIdentifier(); + node.id = id; + node.body = this.flowEnumBody(this.startNode(), id); + return this.finishNode(node, "EnumDeclaration"); + } + jsxParseOpeningElementAfterName(node) { + if (this.shouldParseTypes()) { + if (this.match(47) || this.match(51)) { + node.typeArguments = this.flowParseTypeParameterInstantiationInExpression(); + } + } + return super.jsxParseOpeningElementAfterName(node); + } + isLookaheadToken_lt() { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 60) { + const afterNext = this.input.charCodeAt(next + 1); + return afterNext !== 60 && afterNext !== 61; + } + return false; + } + reScan_lt_gt() { + const { + type + } = this.state; + if (type === 47) { + this.state.pos -= 1; + this.readToken_lt(); + } else if (type === 48) { + this.state.pos -= 1; + this.readToken_gt(); + } + } + reScan_lt() { + const { + type + } = this.state; + if (type === 51) { + this.state.pos -= 2; + this.finishOp(47, 1); + return 47; + } + return type; + } + maybeUnwrapTypeCastExpression(node) { + return node.type === "TypeCastExpression" ? node.expression : node; + } +}; +const entities = { + __proto__: null, + quot: "\u0022", + amp: "&", + apos: "\u0027", + lt: "<", + gt: ">", + nbsp: "\u00A0", + iexcl: "\u00A1", + cent: "\u00A2", + pound: "\u00A3", + curren: "\u00A4", + yen: "\u00A5", + brvbar: "\u00A6", + sect: "\u00A7", + uml: "\u00A8", + copy: "\u00A9", + ordf: "\u00AA", + laquo: "\u00AB", + not: "\u00AC", + shy: "\u00AD", + reg: "\u00AE", + macr: "\u00AF", + deg: "\u00B0", + plusmn: "\u00B1", + sup2: "\u00B2", + sup3: "\u00B3", + acute: "\u00B4", + micro: "\u00B5", + para: "\u00B6", + middot: "\u00B7", + cedil: "\u00B8", + sup1: "\u00B9", + ordm: "\u00BA", + raquo: "\u00BB", + frac14: "\u00BC", + frac12: "\u00BD", + frac34: "\u00BE", + iquest: "\u00BF", + Agrave: "\u00C0", + Aacute: "\u00C1", + Acirc: "\u00C2", + Atilde: "\u00C3", + Auml: "\u00C4", + Aring: "\u00C5", + AElig: "\u00C6", + Ccedil: "\u00C7", + Egrave: "\u00C8", + Eacute: "\u00C9", + Ecirc: "\u00CA", + Euml: "\u00CB", + Igrave: "\u00CC", + Iacute: "\u00CD", + Icirc: "\u00CE", + Iuml: "\u00CF", + ETH: "\u00D0", + Ntilde: "\u00D1", + Ograve: "\u00D2", + Oacute: "\u00D3", + Ocirc: "\u00D4", + Otilde: "\u00D5", + Ouml: "\u00D6", + times: "\u00D7", + Oslash: "\u00D8", + Ugrave: "\u00D9", + Uacute: "\u00DA", + Ucirc: "\u00DB", + Uuml: "\u00DC", + Yacute: "\u00DD", + THORN: "\u00DE", + szlig: "\u00DF", + agrave: "\u00E0", + aacute: "\u00E1", + acirc: "\u00E2", + atilde: "\u00E3", + auml: "\u00E4", + aring: "\u00E5", + aelig: "\u00E6", + ccedil: "\u00E7", + egrave: "\u00E8", + eacute: "\u00E9", + ecirc: "\u00EA", + euml: "\u00EB", + igrave: "\u00EC", + iacute: "\u00ED", + icirc: "\u00EE", + iuml: "\u00EF", + eth: "\u00F0", + ntilde: "\u00F1", + ograve: "\u00F2", + oacute: "\u00F3", + ocirc: "\u00F4", + otilde: "\u00F5", + ouml: "\u00F6", + divide: "\u00F7", + oslash: "\u00F8", + ugrave: "\u00F9", + uacute: "\u00FA", + ucirc: "\u00FB", + uuml: "\u00FC", + yacute: "\u00FD", + thorn: "\u00FE", + yuml: "\u00FF", + OElig: "\u0152", + oelig: "\u0153", + Scaron: "\u0160", + scaron: "\u0161", + Yuml: "\u0178", + fnof: "\u0192", + circ: "\u02C6", + tilde: "\u02DC", + Alpha: "\u0391", + Beta: "\u0392", + Gamma: "\u0393", + Delta: "\u0394", + Epsilon: "\u0395", + Zeta: "\u0396", + Eta: "\u0397", + Theta: "\u0398", + Iota: "\u0399", + Kappa: "\u039A", + Lambda: "\u039B", + Mu: "\u039C", + Nu: "\u039D", + Xi: "\u039E", + Omicron: "\u039F", + Pi: "\u03A0", + Rho: "\u03A1", + Sigma: "\u03A3", + Tau: "\u03A4", + Upsilon: "\u03A5", + Phi: "\u03A6", + Chi: "\u03A7", + Psi: "\u03A8", + Omega: "\u03A9", + alpha: "\u03B1", + beta: "\u03B2", + gamma: "\u03B3", + delta: "\u03B4", + epsilon: "\u03B5", + zeta: "\u03B6", + eta: "\u03B7", + theta: "\u03B8", + iota: "\u03B9", + kappa: "\u03BA", + lambda: "\u03BB", + mu: "\u03BC", + nu: "\u03BD", + xi: "\u03BE", + omicron: "\u03BF", + pi: "\u03C0", + rho: "\u03C1", + sigmaf: "\u03C2", + sigma: "\u03C3", + tau: "\u03C4", + upsilon: "\u03C5", + phi: "\u03C6", + chi: "\u03C7", + psi: "\u03C8", + omega: "\u03C9", + thetasym: "\u03D1", + upsih: "\u03D2", + piv: "\u03D6", + ensp: "\u2002", + emsp: "\u2003", + thinsp: "\u2009", + zwnj: "\u200C", + zwj: "\u200D", + lrm: "\u200E", + rlm: "\u200F", + ndash: "\u2013", + mdash: "\u2014", + lsquo: "\u2018", + rsquo: "\u2019", + sbquo: "\u201A", + ldquo: "\u201C", + rdquo: "\u201D", + bdquo: "\u201E", + dagger: "\u2020", + Dagger: "\u2021", + bull: "\u2022", + hellip: "\u2026", + permil: "\u2030", + prime: "\u2032", + Prime: "\u2033", + lsaquo: "\u2039", + rsaquo: "\u203A", + oline: "\u203E", + frasl: "\u2044", + euro: "\u20AC", + image: "\u2111", + weierp: "\u2118", + real: "\u211C", + trade: "\u2122", + alefsym: "\u2135", + larr: "\u2190", + uarr: "\u2191", + rarr: "\u2192", + darr: "\u2193", + harr: "\u2194", + crarr: "\u21B5", + lArr: "\u21D0", + uArr: "\u21D1", + rArr: "\u21D2", + dArr: "\u21D3", + hArr: "\u21D4", + forall: "\u2200", + part: "\u2202", + exist: "\u2203", + empty: "\u2205", + nabla: "\u2207", + isin: "\u2208", + notin: "\u2209", + ni: "\u220B", + prod: "\u220F", + sum: "\u2211", + minus: "\u2212", + lowast: "\u2217", + radic: "\u221A", + prop: "\u221D", + infin: "\u221E", + ang: "\u2220", + and: "\u2227", + or: "\u2228", + cap: "\u2229", + cup: "\u222A", + int: "\u222B", + there4: "\u2234", + sim: "\u223C", + cong: "\u2245", + asymp: "\u2248", + ne: "\u2260", + equiv: "\u2261", + le: "\u2264", + ge: "\u2265", + sub: "\u2282", + sup: "\u2283", + nsub: "\u2284", + sube: "\u2286", + supe: "\u2287", + oplus: "\u2295", + otimes: "\u2297", + perp: "\u22A5", + sdot: "\u22C5", + lceil: "\u2308", + rceil: "\u2309", + lfloor: "\u230A", + rfloor: "\u230B", + lang: "\u2329", + rang: "\u232A", + loz: "\u25CA", + spades: "\u2660", + clubs: "\u2663", + hearts: "\u2665", + diams: "\u2666" +}; +const lineBreak = /\r\n|[\r\n\u2028\u2029]/; +const lineBreakG = new RegExp(lineBreak.source, "g"); +function isNewLine(code) { + switch (code) { + case 10: + case 13: + case 8232: + case 8233: + return true; + default: + return false; + } +} +function hasNewLine(input, start, end) { + for (let i = start; i < end; i++) { + if (isNewLine(input.charCodeAt(i))) { + return true; + } + } + return false; +} +const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; +const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; +function isWhitespace(code) { + switch (code) { + case 0x0009: + case 0x000b: + case 0x000c: + case 32: + case 160: + case 5760: + case 0x2000: + case 0x2001: + case 0x2002: + case 0x2003: + case 0x2004: + case 0x2005: + case 0x2006: + case 0x2007: + case 0x2008: + case 0x2009: + case 0x200a: + case 0x202f: + case 0x205f: + case 0x3000: + case 0xfeff: + return true; + default: + return false; + } +} +const JsxErrors = ParseErrorEnum`jsx`({ + AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", + MissingClosingTagElement: ({ + openingTagName + }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, + MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", + UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", + UnexpectedToken: ({ + unexpected, + HTMLEntity + }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, + UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", + UnterminatedJsxContent: "Unterminated JSX contents.", + UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" +}); +function isFragment(object) { + return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; +} +function getQualifiedJSXName(object) { + if (object.type === "JSXIdentifier") { + return object.name; + } + if (object.type === "JSXNamespacedName") { + return object.namespace.name + ":" + object.name.name; + } + if (object.type === "JSXMemberExpression") { + return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); + } + throw new Error("Node had unexpected type: " + object.type); +} +var jsx = superClass => class JSXParserMixin extends superClass { + jsxReadToken() { + let out = ""; + let chunkStart = this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + switch (ch) { + case 60: + case 123: + if (this.state.pos === this.state.start) { + if (ch === 60 && this.state.canStartJSXElement) { + ++this.state.pos; + this.finishToken(143); + } else { + super.getTokenFromCode(ch); + } + return; + } + out += this.input.slice(chunkStart, this.state.pos); + this.finishToken(142, out); + return; + case 38: + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + break; + case 62: + case 125: + default: + if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(true); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + } + } + jsxReadNewLine(normalizeCRLF) { + const ch = this.input.charCodeAt(this.state.pos); + let out; + ++this.state.pos; + if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { + ++this.state.pos; + out = normalizeCRLF ? "\n" : "\r\n"; + } else { + out = String.fromCharCode(ch); + } + ++this.state.curLine; + this.state.lineStart = this.state.pos; + return out; + } + jsxReadString(quote) { + let out = ""; + let chunkStart = ++this.state.pos; + for (;;) { + if (this.state.pos >= this.length) { + throw this.raise(Errors.UnterminatedString, this.state.startLoc); + } + const ch = this.input.charCodeAt(this.state.pos); + if (ch === quote) break; + if (ch === 38) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadEntity(); + chunkStart = this.state.pos; + } else if (isNewLine(ch)) { + out += this.input.slice(chunkStart, this.state.pos); + out += this.jsxReadNewLine(false); + chunkStart = this.state.pos; + } else { + ++this.state.pos; + } + } + out += this.input.slice(chunkStart, this.state.pos++); + this.finishToken(134, out); + } + jsxReadEntity() { + const startPos = ++this.state.pos; + if (this.codePointAtPos(this.state.pos) === 35) { + ++this.state.pos; + let radix = 10; + if (this.codePointAtPos(this.state.pos) === 120) { + radix = 16; + ++this.state.pos; + } + const codePoint = this.readInt(radix, undefined, false, "bail"); + if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { + ++this.state.pos; + return String.fromCodePoint(codePoint); + } + } else { + let count = 0; + let semi = false; + while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) === 59)) { + ++this.state.pos; + } + if (semi) { + const desc = this.input.slice(startPos, this.state.pos); + const entity = entities[desc]; + ++this.state.pos; + if (entity) { + return entity; + } + } + } + this.state.pos = startPos; + return "&"; + } + jsxReadWord() { + let ch; + const start = this.state.pos; + do { + ch = this.input.charCodeAt(++this.state.pos); + } while (isIdentifierChar(ch) || ch === 45); + this.finishToken(141, this.input.slice(start, this.state.pos)); + } + jsxParseIdentifier() { + const node = this.startNode(); + if (this.match(141)) { + node.name = this.state.value; + } else if (tokenIsKeyword(this.state.type)) { + node.name = tokenLabelName(this.state.type); + } else { + this.unexpected(); + } + this.next(); + return this.finishNode(node, "JSXIdentifier"); + } + jsxParseNamespacedName() { + const startLoc = this.state.startLoc; + const name = this.jsxParseIdentifier(); + if (!this.eat(14)) return name; + const node = this.startNodeAt(startLoc); + node.namespace = name; + node.name = this.jsxParseIdentifier(); + return this.finishNode(node, "JSXNamespacedName"); + } + jsxParseElementName() { + const startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); + if (node.type === "JSXNamespacedName") { + return node; + } + while (this.eat(16)) { + const newNode = this.startNodeAt(startLoc); + newNode.object = node; + newNode.property = this.jsxParseIdentifier(); + node = this.finishNode(newNode, "JSXMemberExpression"); + } + return node; + } + jsxParseAttributeValue() { + let node; + switch (this.state.type) { + case 5: + node = this.startNode(); + this.setContext(types.brace); + this.next(); + node = this.jsxParseExpressionContainer(node, types.j_oTag); + if (node.expression.type === "JSXEmptyExpression") { + this.raise(JsxErrors.AttributeIsEmpty, node); + } + return node; + case 143: + case 134: + return this.parseExprAtom(); + default: + throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); + } + } + jsxParseEmptyExpression() { + const node = this.startNodeAt(this.state.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); + } + jsxParseSpreadChild(node) { + this.next(); + node.expression = this.parseExpression(); + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadChild"); + } + jsxParseExpressionContainer(node, previousContext) { + if (this.match(8)) { + node.expression = this.jsxParseEmptyExpression(); + } else { + const expression = this.parseExpression(); + node.expression = expression; + } + this.setContext(previousContext); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXExpressionContainer"); + } + jsxParseAttribute() { + const node = this.startNode(); + if (this.match(5)) { + this.setContext(types.brace); + this.next(); + this.expect(21); + node.argument = this.parseMaybeAssignAllowIn(); + this.setContext(types.j_oTag); + this.state.canStartJSXElement = true; + this.expect(8); + return this.finishNode(node, "JSXSpreadAttribute"); + } + node.name = this.jsxParseNamespacedName(); + node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; + return this.finishNode(node, "JSXAttribute"); + } + jsxParseOpeningElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXOpeningFragment"); + } + node.name = this.jsxParseElementName(); + return this.jsxParseOpeningElementAfterName(node); + } + jsxParseOpeningElementAfterName(node) { + const attributes = []; + while (!this.match(56) && !this.match(144)) { + attributes.push(this.jsxParseAttribute()); + } + node.attributes = attributes; + node.selfClosing = this.eat(56); + this.expect(144); + return this.finishNode(node, "JSXOpeningElement"); + } + jsxParseClosingElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + if (this.eat(144)) { + return this.finishNode(node, "JSXClosingFragment"); + } + node.name = this.jsxParseElementName(); + this.expect(144); + return this.finishNode(node, "JSXClosingElement"); + } + jsxParseElementAt(startLoc) { + const node = this.startNodeAt(startLoc); + const children = []; + const openingElement = this.jsxParseOpeningElementAt(startLoc); + let closingElement = null; + if (!openingElement.selfClosing) { + contents: for (;;) { + switch (this.state.type) { + case 143: + startLoc = this.state.startLoc; + this.next(); + if (this.eat(56)) { + closingElement = this.jsxParseClosingElementAt(startLoc); + break contents; + } + children.push(this.jsxParseElementAt(startLoc)); + break; + case 142: + children.push(this.parseLiteral(this.state.value, "JSXText")); + break; + case 5: + { + const node = this.startNode(); + this.setContext(types.brace); + this.next(); + if (this.match(21)) { + children.push(this.jsxParseSpreadChild(node)); + } else { + children.push(this.jsxParseExpressionContainer(node, types.j_expr)); + } + break; + } + default: + this.unexpected(); + } + } + if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { + this.raise(JsxErrors.MissingClosingTagFragment, closingElement); + } else if (!isFragment(openingElement) && isFragment(closingElement)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } else if (!isFragment(openingElement) && !isFragment(closingElement)) { + if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { + this.raise(JsxErrors.MissingClosingTagElement, closingElement, { + openingTagName: getQualifiedJSXName(openingElement.name) + }); + } + } + } + if (isFragment(openingElement)) { + node.openingFragment = openingElement; + node.closingFragment = closingElement; + } else { + node.openingElement = openingElement; + node.closingElement = closingElement; + } + node.children = children; + if (this.match(47)) { + throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); + } + return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); + } + jsxParseElement() { + const startLoc = this.state.startLoc; + this.next(); + return this.jsxParseElementAt(startLoc); + } + setContext(newContext) { + const { + context + } = this.state; + context[context.length - 1] = newContext; + } + parseExprAtom(refExpressionErrors) { + if (this.match(143)) { + return this.jsxParseElement(); + } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { + this.replaceToken(143); + return this.jsxParseElement(); + } else { + return super.parseExprAtom(refExpressionErrors); + } + } + skipSpace() { + const curContext = this.curContext(); + if (!curContext.preserveSpace) super.skipSpace(); + } + getTokenFromCode(code) { + const context = this.curContext(); + if (context === types.j_expr) { + this.jsxReadToken(); + return; + } + if (context === types.j_oTag || context === types.j_cTag) { + if (isIdentifierStart(code)) { + this.jsxReadWord(); + return; + } + if (code === 62) { + ++this.state.pos; + this.finishToken(144); + return; + } + if ((code === 34 || code === 39) && context === types.j_oTag) { + this.jsxReadString(code); + return; + } + } + if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { + ++this.state.pos; + this.finishToken(143); + return; + } + super.getTokenFromCode(code); + } + updateContext(prevType) { + const { + context, + type + } = this.state; + if (type === 56 && prevType === 143) { + context.splice(-2, 2, types.j_cTag); + this.state.canStartJSXElement = false; + } else if (type === 143) { + context.push(types.j_oTag); + } else if (type === 144) { + const out = context[context.length - 1]; + if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { + context.pop(); + this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; + } else { + this.setContext(types.j_expr); + this.state.canStartJSXElement = true; + } + } else { + this.state.canStartJSXElement = tokenComesBeforeExpression(type); + } + } +}; +class TypeScriptScope extends Scope { + constructor(...args) { + super(...args); + this.tsNames = new Map(); + } +} +class TypeScriptScopeHandler extends ScopeHandler { + constructor(...args) { + super(...args); + this.importsStack = []; + } + createScope(flags) { + this.importsStack.push(new Set()); + return new TypeScriptScope(flags); + } + enter(flags) { + if (flags === 1024) { + this.importsStack.push(new Set()); + } + super.enter(flags); + } + exit() { + const flags = super.exit(); + if (flags === 1024) { + this.importsStack.pop(); + } + return flags; + } + hasImport(name, allowShadow) { + const len = this.importsStack.length; + if (this.importsStack[len - 1].has(name)) { + return true; + } + if (!allowShadow && len > 1) { + for (let i = 0; i < len - 1; i++) { + if (this.importsStack[i].has(name)) return true; + } + } + return false; + } + declareName(name, bindingType, loc) { + if (bindingType & 4096) { + if (this.hasImport(name, true)) { + this.parser.raise(Errors.VarRedeclaration, loc, { + identifierName: name + }); + } + this.importsStack[this.importsStack.length - 1].add(name); + return; + } + const scope = this.currentScope(); + let type = scope.tsNames.get(name) || 0; + if (bindingType & 1024) { + this.maybeExportDefined(scope, name); + scope.tsNames.set(name, type | 16); + return; + } + super.declareName(name, bindingType, loc); + if (bindingType & 2) { + if (!(bindingType & 1)) { + this.checkRedeclarationInScope(scope, name, bindingType, loc); + this.maybeExportDefined(scope, name); + } + type = type | 1; + } + if (bindingType & 256) { + type = type | 2; + } + if (bindingType & 512) { + type = type | 4; + } + if (bindingType & 128) { + type = type | 8; + } + if (type) scope.tsNames.set(name, type); + } + isRedeclaredInScope(scope, name, bindingType) { + const type = scope.tsNames.get(name); + if ((type & 2) > 0) { + if (bindingType & 256) { + const isConst = !!(bindingType & 512); + const wasConst = (type & 4) > 0; + return isConst !== wasConst; + } + return true; + } + if (bindingType & 128 && (type & 8) > 0) { + if (scope.names.get(name) & 2) { + return !!(bindingType & 1); + } else { + return false; + } + } + if (bindingType & 2 && (type & 1) > 0) { + return true; + } + return super.isRedeclaredInScope(scope, name, bindingType); + } + checkLocalExport(id) { + const { + name + } = id; + if (this.hasImport(name)) return; + const len = this.scopeStack.length; + for (let i = len - 1; i >= 0; i--) { + const scope = this.scopeStack[i]; + const type = scope.tsNames.get(name); + if ((type & 1) > 0 || (type & 16) > 0) { + return; + } + } + super.checkLocalExport(id); + } +} +class ProductionParameterHandler { + constructor() { + this.stacks = []; + } + enter(flags) { + this.stacks.push(flags); + } + exit() { + this.stacks.pop(); + } + currentFlags() { + return this.stacks[this.stacks.length - 1]; + } + get hasAwait() { + return (this.currentFlags() & 2) > 0; + } + get hasYield() { + return (this.currentFlags() & 1) > 0; + } + get hasReturn() { + return (this.currentFlags() & 4) > 0; + } + get hasIn() { + return (this.currentFlags() & 8) > 0; + } +} +function functionFlags(isAsync, isGenerator) { + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); +} class BaseParser { constructor() { this.sawUnambiguousESM = false; this.ambiguousScriptDifferentAst = false; } + sourceToOffsetPos(sourcePos) { + return sourcePos + this.startIndex; + } + offsetToSourcePos(offsetPos) { + return offsetPos - this.startIndex; + } hasPlugin(pluginConfig) { if (typeof pluginConfig === "string") { return this.plugins.has(pluginConfig); @@ -1637,7 +5035,9 @@ class CommentsParser extends BaseParser { const { commentsLen } = this.state; - if (this.comments.length != commentsLen) this.comments.length = commentsLen; + if (this.comments.length !== commentsLen) { + this.comments.length = commentsLen; + } this.comments.push(comment); this.state.commentsLen++; } @@ -1672,6 +5072,7 @@ class CommentsParser extends BaseParser { } } finalizeComment(commentWS) { + var _node$options; const { comments } = commentWS; @@ -1683,21 +5084,21 @@ class CommentsParser extends BaseParser { setLeadingComments(commentWS.trailingNode, comments); } } else { - const { - containingNode: node, - start: commentStart - } = commentWS; - if (this.input.charCodeAt(commentStart - 1) === 44) { + const node = commentWS.containingNode; + const commentStart = commentWS.start; + if (this.input.charCodeAt(this.offsetToSourcePos(commentStart) - 1) === 44) { switch (node.type) { case "ObjectExpression": case "ObjectPattern": - case "RecordExpression": adjustInnerComments(node, node.properties, commentWS); break; case "CallExpression": case "OptionalCallExpression": adjustInnerComments(node, node.arguments, commentWS); break; + case "ImportExpression": + adjustInnerComments(node, [node.source, (_node$options = node.options) != null ? _node$options : null], commentWS); + break; case "FunctionDeclaration": case "FunctionExpression": case "ArrowFunctionExpression": @@ -1708,15 +5109,28 @@ class CommentsParser extends BaseParser { break; case "ArrayExpression": case "ArrayPattern": - case "TupleExpression": adjustInnerComments(node, node.elements, commentWS); break; case "ExportNamedDeclaration": case "ImportDeclaration": adjustInnerComments(node, node.specifiers, commentWS); break; + case "TSEnumDeclaration": + adjustInnerComments(node, node.members, commentWS); + break; + case "TSEnumBody": + adjustInnerComments(node, node.members, commentWS); + break; default: { + if (node.type === "RecordExpression") { + adjustInnerComments(node, node.properties, commentWS); + break; + } + if (node.type === "TupleExpression") { + adjustInnerComments(node, node.elements, commentWS); + break; + } setInnerComments(node, comments); } } @@ -1747,20 +5161,6 @@ class CommentsParser extends BaseParser { commentWS.leadingNode = null; } } - resetPreviousIdentifierLeadingComments(node) { - const { - commentStack - } = this.state; - const { - length - } = commentStack; - if (length === 0) return; - if (commentStack[length - 1].trailingNode === node) { - commentStack[length - 1].trailingNode = null; - } else if (length >= 2 && commentStack[length - 2].trailingNode === node) { - commentStack[length - 2].trailingNode = null; - } - } takeSurroundingComments(node, start, end) { const { commentStack @@ -1782,53 +5182,10 @@ class CommentsParser extends BaseParser { } } } -const lineBreak = /\r\n?|[\n\u2028\u2029]/; -const lineBreakG = new RegExp(lineBreak.source, "g"); -function isNewLine(code) { - switch (code) { - case 10: - case 13: - case 8232: - case 8233: - return true; - default: - return false; - } -} -const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; -const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g; -const skipWhiteSpaceToLineBreak = new RegExp("(?=(" + skipWhiteSpaceInLine.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y"); -function isWhitespace(code) { - switch (code) { - case 0x0009: - case 0x000b: - case 0x000c: - case 32: - case 160: - case 5760: - case 0x2000: - case 0x2001: - case 0x2002: - case 0x2003: - case 0x2004: - case 0x2005: - case 0x2006: - case 0x2007: - case 0x2008: - case 0x2009: - case 0x200a: - case 0x202f: - case 0x205f: - case 0x3000: - case 0xfeff: - return true; - default: - return false; - } -} class State { constructor() { this.flags = 1024; + this.startIndex = void 0; this.curLine = void 0; this.lineStart = void 0; this.startLoc = void 0; @@ -1845,7 +5202,7 @@ class State { this.commentsLen = 0; this.commentStack = []; this.pos = 0; - this.type = 139; + this.type = 140; this.value = null; this.start = 0; this.end = 0; @@ -1859,140 +5216,101 @@ class State { get strict() { return (this.flags & 1) > 0; } - set strict(value) { - if (value) { - this.flags |= 1; - } else { - this.flags &= ~1; - } + set strict(v) { + if (v) this.flags |= 1;else this.flags &= -2; } init({ strictMode, sourceType, + startIndex, startLine, startColumn }) { this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module"; + this.startIndex = startIndex; this.curLine = startLine; this.lineStart = -startColumn; - this.startLoc = this.endLoc = new Position(startLine, startColumn, 0); + this.startLoc = this.endLoc = new Position(startLine, startColumn, startIndex); } get maybeInArrowParameters() { return (this.flags & 2) > 0; } - set maybeInArrowParameters(value) { - if (value) { - this.flags |= 2; - } else { - this.flags &= ~2; - } + set maybeInArrowParameters(v) { + if (v) this.flags |= 2;else this.flags &= -3; } get inType() { return (this.flags & 4) > 0; } - set inType(value) { - if (value) { - this.flags |= 4; - } else { - this.flags &= ~4; - } + set inType(v) { + if (v) this.flags |= 4;else this.flags &= -5; } get noAnonFunctionType() { return (this.flags & 8) > 0; } - set noAnonFunctionType(value) { - if (value) { - this.flags |= 8; - } else { - this.flags &= ~8; - } + set noAnonFunctionType(v) { + if (v) this.flags |= 8;else this.flags &= -9; } get hasFlowComment() { return (this.flags & 16) > 0; } - set hasFlowComment(value) { - if (value) { - this.flags |= 16; - } else { - this.flags &= ~16; - } + set hasFlowComment(v) { + if (v) this.flags |= 16;else this.flags &= -17; } get isAmbientContext() { return (this.flags & 32) > 0; } - set isAmbientContext(value) { - if (value) { - this.flags |= 32; - } else { - this.flags &= ~32; - } + set isAmbientContext(v) { + if (v) this.flags |= 32;else this.flags &= -33; } get inAbstractClass() { return (this.flags & 64) > 0; } - set inAbstractClass(value) { - if (value) { - this.flags |= 64; - } else { - this.flags &= ~64; - } + set inAbstractClass(v) { + if (v) this.flags |= 64;else this.flags &= -65; } get inDisallowConditionalTypesContext() { return (this.flags & 128) > 0; } - set inDisallowConditionalTypesContext(value) { - if (value) { - this.flags |= 128; - } else { - this.flags &= ~128; - } + set inDisallowConditionalTypesContext(v) { + if (v) this.flags |= 128;else this.flags &= -129; } get soloAwait() { return (this.flags & 256) > 0; } - set soloAwait(value) { - if (value) { - this.flags |= 256; - } else { - this.flags &= ~256; - } + set soloAwait(v) { + if (v) this.flags |= 256;else this.flags &= -257; } get inFSharpPipelineDirectBody() { return (this.flags & 512) > 0; } - set inFSharpPipelineDirectBody(value) { - if (value) { - this.flags |= 512; - } else { - this.flags &= ~512; - } + set inFSharpPipelineDirectBody(v) { + if (v) this.flags |= 512;else this.flags &= -513; } get canStartJSXElement() { return (this.flags & 1024) > 0; } - set canStartJSXElement(value) { - if (value) { - this.flags |= 1024; - } else { - this.flags &= ~1024; - } + set canStartJSXElement(v) { + if (v) this.flags |= 1024;else this.flags &= -1025; } get containsEsc() { return (this.flags & 2048) > 0; } - set containsEsc(value) { - if (value) { - this.flags |= 2048; - } else { - this.flags &= ~2048; - } + set containsEsc(v) { + if (v) this.flags |= 2048;else this.flags &= -2049; + } + get hasTopLevelAwait() { + return (this.flags & 4096) > 0; + } + set hasTopLevelAwait(v) { + if (v) this.flags |= 4096;else this.flags &= -4097; } curPosition() { - return new Position(this.curLine, this.pos - this.lineStart, this.pos); + return new Position(this.curLine, this.pos - this.lineStart, this.pos + this.startIndex); } clone() { const state = new State(); state.flags = this.flags; + state.startIndex = this.startIndex; state.curLine = this.curLine; state.lineStart = this.lineStart; state.startLoc = this.startLoc; @@ -2167,7 +5485,7 @@ function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) { default: if (ch >= 48 && ch <= 55) { const startPos = pos - 1; - const match = input.slice(startPos, pos + 2).match(/^[0-7]+/); + const match = /^[0-7]+/.exec(input.slice(startPos, pos + 2)); let octalStr = match[0]; let octal = parseInt(octalStr, 8); if (octal > 255) { @@ -2310,10 +5628,11 @@ function buildPosition(pos, lineStart, curLine) { const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]); class Token { constructor(state) { + const startIndex = state.startIndex || 0; this.type = state.type; this.value = state.value; - this.start = state.start; - this.end = state.end; + this.start = startIndex + state.start; + this.end = startIndex + state.end; this.loc = new SourceLocation(state.startLoc, state.endLoc); } } @@ -2324,7 +5643,7 @@ class Tokenizer extends CommentsParser { this.tokens = []; this.errorHandlers_readInt = { invalidDigit: (pos, lineStart, curLine, radix) => { - if (!this.options.errorRecovery) return false; + if (!(this.optionFlags & 2048)) return false; this.raise(Errors.InvalidDigit, buildPosition(pos, lineStart, curLine), { radix }); @@ -2365,7 +5684,7 @@ class Tokenizer extends CommentsParser { } next() { this.checkKeywordEscapes(); - if (this.options.tokens) { + if (this.optionFlags & 256) { this.pushToken(new Token(this.state)); } this.state.lastTokEndLoc = this.state.endLoc; @@ -2417,7 +5736,10 @@ class Tokenizer extends CommentsParser { return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; } lookaheadCharCode() { - return this.input.charCodeAt(this.nextTokenStart()); + return this.lookaheadCharCodeSince(this.state.pos); + } + lookaheadCharCodeSince(pos) { + return this.input.charCodeAt(this.nextTokenStartSince(pos)); } nextTokenInLineStart() { return this.nextTokenInLineStartSince(this.state.pos); @@ -2454,7 +5776,7 @@ class Tokenizer extends CommentsParser { this.state.start = this.state.pos; if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); if (this.state.pos >= this.length) { - this.finishToken(139); + this.finishToken(140); return; } this.getTokenFromCode(this.codePointAtPos(this.state.pos)); @@ -2477,11 +5799,11 @@ class Tokenizer extends CommentsParser { const comment = { type: "CommentBlock", value: this.input.slice(start + 2, end), - start, - end: end + commentEnd.length, + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end + commentEnd.length), loc: new SourceLocation(startLoc, this.state.curPosition()) }; - if (this.options.tokens) this.pushToken(comment); + if (this.optionFlags & 256) this.pushToken(comment); return comment; } skipLineComment(startSkip) { @@ -2500,16 +5822,16 @@ class Tokenizer extends CommentsParser { const comment = { type: "CommentLine", value, - start, - end, + start: this.sourceToOffsetPos(start), + end: this.sourceToOffsetPos(end), loc: new SourceLocation(startLoc, this.state.curPosition()) }; - if (this.options.tokens) this.pushToken(comment); + if (this.optionFlags & 256) this.pushToken(comment); return comment; } skipSpace() { const spaceStart = this.state.pos; - const comments = []; + const comments = this.optionFlags & 4096 ? [] : null; loop: while (this.state.pos < this.length) { const ch = this.input.charCodeAt(this.state.pos); switch (ch) { @@ -2536,7 +5858,7 @@ class Tokenizer extends CommentsParser { const comment = this.skipBlockComment("*/"); if (comment !== undefined) { this.addComment(comment); - if (this.options.attachComment) comments.push(comment); + comments == null || comments.push(comment); } break; } @@ -2545,7 +5867,7 @@ class Tokenizer extends CommentsParser { const comment = this.skipLineComment(2); if (comment !== undefined) { this.addComment(comment); - if (this.options.attachComment) comments.push(comment); + comments == null || comments.push(comment); } break; } @@ -2556,24 +5878,24 @@ class Tokenizer extends CommentsParser { default: if (isWhitespace(ch)) { ++this.state.pos; - } else if (ch === 45 && !this.inModule && this.options.annexB) { + } else if (ch === 45 && !this.inModule && this.optionFlags & 8192) { const pos = this.state.pos; if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { const comment = this.skipLineComment(3); if (comment !== undefined) { this.addComment(comment); - if (this.options.attachComment) comments.push(comment); + comments == null || comments.push(comment); } } else { break loop; } - } else if (ch === 60 && !this.inModule && this.options.annexB) { + } else if (ch === 60 && !this.inModule && this.optionFlags & 8192) { const pos = this.state.pos; if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { const comment = this.skipLineComment(4); if (comment !== undefined) { this.addComment(comment); - if (this.options.attachComment) comments.push(comment); + comments == null || comments.push(comment); } } else { break loop; @@ -2583,12 +5905,12 @@ class Tokenizer extends CommentsParser { } } } - if (comments.length > 0) { + if ((comments == null ? void 0 : comments.length) > 0) { const end = this.state.pos; const commentWhitespace = { - start: spaceStart, - end, - comments, + start: this.sourceToOffsetPos(spaceStart), + end: this.sourceToOffsetPos(end), + comments: comments, leadingNode: null, trailingNode: null, containingNode: null @@ -2632,10 +5954,10 @@ class Tokenizer extends CommentsParser { } } else if (isIdentifierStart(next)) { ++this.state.pos; - this.finishToken(138, this.readWord1(next)); + this.finishToken(139, this.readWord1(next)); } else if (next === 92) { ++this.state.pos; - this.finishToken(138, this.readWord1()); + this.finishToken(139, this.readWord1()); } else { this.finishOp(27, 1); } @@ -3047,7 +6369,7 @@ class Tokenizer extends CommentsParser { mods += char; } this.state.pos = pos; - this.finishToken(137, { + this.finishToken(138, { pattern: content, flags: mods }); @@ -3061,6 +6383,7 @@ class Tokenizer extends CommentsParser { return n; } readRadixNumber(radix) { + const start = this.state.pos; const startLoc = this.state.curPosition(); let isBigInt = false; this.state.pos += 2; @@ -3081,18 +6404,17 @@ class Tokenizer extends CommentsParser { throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); } if (isBigInt) { - const str = this.input.slice(startLoc.index, this.state.pos).replace(/[_n]/g, ""); - this.finishToken(135, str); + const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); + this.finishToken(136, str); return; } - this.finishToken(134, val); + this.finishToken(135, val); } readNumber(startsWithDot) { const start = this.state.pos; const startLoc = this.state.curPosition(); let isFloat = false; let isBigInt = false; - let isDecimal = false; let hasExponent = false; let isOctal = false; if (!startsWithDot && this.readInt(10) === null) { @@ -3142,22 +6464,22 @@ class Tokenizer extends CommentsParser { this.raise(Errors.InvalidDecimal, startLoc); } ++this.state.pos; - isDecimal = true; + var isDecimal = true; } if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { throw this.raise(Errors.NumberIdentifier, this.state.curPosition()); } const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); if (isBigInt) { - this.finishToken(135, str); - return; - } - if (isDecimal) { this.finishToken(136, str); return; } + if (isDecimal) { + this.finishToken(137, str); + return; + } const val = isOctal ? parseInt(str, 8) : parseFloat(str); - this.finishToken(134, val); + this.finishToken(135, val); } readCodePoint(throwOnInvalid) { const { @@ -3177,7 +6499,7 @@ class Tokenizer extends CommentsParser { this.state.pos = pos + 1; this.state.lineStart = lineStart; this.state.curLine = curLine; - this.finishToken(133, str); + this.finishToken(134, str); } readTemplateContinuation() { if (!this.match(8)) { @@ -3199,7 +6521,7 @@ class Tokenizer extends CommentsParser { this.state.lineStart = lineStart; this.state.curLine = curLine; if (firstInvalidLoc) { - this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, firstInvalidLoc.pos); + this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, this.sourceToOffsetPos(firstInvalidLoc.pos)); } if (this.input.codePointAt(pos) === 96) { this.finishToken(24, firstInvalidLoc ? null : opening + str + "`"); @@ -3275,7 +6597,7 @@ class Tokenizer extends CommentsParser { raise(toParseError, at, details = {}) { const loc = at instanceof Position ? at : at.loc.start; const error = toParseError(loc, details); - if (!this.options.errorRecovery) throw error; + if (!(this.optionFlags & 2048)) throw error; if (!this.isLookahead) this.state.errors.push(error); return error; } @@ -3508,39 +6830,16 @@ function newAsyncArrowScope() { function newExpressionScope() { return new ExpressionScope(); } -class ProductionParameterHandler { - constructor() { - this.stacks = []; - } - enter(flags) { - this.stacks.push(flags); - } - exit() { - this.stacks.pop(); - } - currentFlags() { - return this.stacks[this.stacks.length - 1]; - } - get hasAwait() { - return (this.currentFlags() & 2) > 0; - } - get hasYield() { - return (this.currentFlags() & 1) > 0; - } - get hasReturn() { - return (this.currentFlags() & 4) > 0; - } - get hasIn() { - return (this.currentFlags() & 8) > 0; - } -} -function functionFlags(isAsync, isGenerator) { - return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); -} class UtilParser extends Tokenizer { addExtra(node, key, value, enumerable = true) { if (!node) return; - const extra = node.extra = node.extra || {}; + let { + extra + } = node; + if (extra == null) { + extra = {}; + node.extra = extra; + } if (enumerable) { extra[key] = value; } else { @@ -3554,9 +6853,8 @@ class UtilParser extends Tokenizer { return this.state.type === token && !this.state.containsEsc; } isUnparsedContextual(nameStart, name) { - const nameEnd = nameStart + name.length; - if (this.input.slice(nameStart, nameEnd) === name) { - const nextCh = this.input.charCodeAt(nameEnd); + if (this.input.startsWith(name, nameStart)) { + const nextCh = this.input.charCodeAt(nameStart + name.length); return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); } return false; @@ -3581,14 +6879,13 @@ class UtilParser extends Tokenizer { } } canInsertSemicolon() { - return this.match(139) || this.match(8) || this.hasPrecedingLineBreak(); + return this.match(140) || this.match(8) || this.hasPrecedingLineBreak(); } hasPrecedingLineBreak() { - return lineBreak.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start)); + return hasNewLine(this.input, this.offsetToSourcePos(this.state.lastTokEndLoc.index), this.state.start); } hasFollowingLineBreak() { - skipWhiteSpaceToLineBreak.lastIndex = this.state.end; - return skipWhiteSpaceToLineBreak.test(this.input); + return hasNewLine(this.input, this.state.end, this.nextTokenStart()); } isLineTerminator() { return this.eat(13) || this.canInsertSemicolon(); @@ -3598,7 +6895,9 @@ class UtilParser extends Tokenizer { this.raise(Errors.MissingSemicolon, this.state.lastTokEndLoc); } expect(type, loc) { - this.eat(type) || this.unexpected(loc, type); + if (!this.eat(type)) { + this.unexpected(loc, type); + } } tryParse(fn, oldState = this.state.clone()) { const abortSignal = { @@ -3622,7 +6921,7 @@ class UtilParser extends Tokenizer { }; } return { - node, + node: node, error: null, thrown: false, aborted: false, @@ -3658,9 +6957,10 @@ class UtilParser extends Tokenizer { shorthandAssignLoc, doubleProtoLoc, privateKeyLoc, - optionalParametersLoc + optionalParametersLoc, + voidPatternLoc } = refExpressionErrors; - const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc; + const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc || !!voidPatternLoc; if (!andThrow) { return hasErrors; } @@ -3676,6 +6976,9 @@ class UtilParser extends Tokenizer { if (optionalParametersLoc != null) { this.unexpected(optionalParametersLoc); } + if (voidPatternLoc != null) { + this.raise(Errors.InvalidCoverDiscardElement, voidPatternLoc); + } } isLiteralPropertyName() { return tokenIsLiteralPropertyName(this.state.type); @@ -3723,11 +7026,22 @@ class UtilParser extends Tokenizer { } enterInitialScopes() { let paramFlags = 0; - if (this.inModule) { + if (this.inModule || this.optionFlags & 1) { paramFlags |= 2; } - this.scope.enter(1); + if (this.optionFlags & 32) { + paramFlags |= 1; + } + const isCommonJS = !this.inModule && this.options.sourceType === "commonjs"; + if (isCommonJS || this.optionFlags & 2) { + paramFlags |= 4; + } this.prodParam.enter(paramFlags); + let scopeFlags = isCommonJS ? 514 : 1; + if (this.optionFlags & 4) { + scopeFlags |= 512; + } + this.scope.enter(scopeFlags); } checkDestructuringPrivate(refExpressionErrors) { const { @@ -3744,6 +7058,7 @@ class ExpressionErrors { this.doubleProtoLoc = null; this.privateKeyLoc = null; this.optionalParametersLoc = null; + this.voidPatternLoc = null; } } class Node { @@ -3752,76 +7067,22 @@ class Node { this.start = pos; this.end = 0; this.loc = new SourceLocation(loc); - if (parser != null && parser.options.ranges) this.range = [pos, 0]; + if ((parser == null ? void 0 : parser.optionFlags) & 128) this.range = [pos, 0]; if (parser != null && parser.filename) this.loc.filename = parser.filename; } } const NodePrototype = Node.prototype; -{ - NodePrototype.__clone = function () { - const newNode = new Node(undefined, this.start, this.loc.start); - const keys = Object.keys(this); - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; - if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { - newNode[key] = this[key]; - } +NodePrototype.__clone = function () { + const newNode = new Node(undefined, this.start, this.loc.start); + const keys = Object.keys(this); + for (let i = 0, length = keys.length; i < length; i++) { + const key = keys[i]; + if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { + newNode[key] = this[key]; } - return newNode; - }; -} -function clonePlaceholder(node) { - return cloneIdentifier(node); -} -function cloneIdentifier(node) { - const { - type, - start, - end, - loc, - range, - extra, - name - } = node; - const cloned = Object.create(NodePrototype); - cloned.type = type; - cloned.start = start; - cloned.end = end; - cloned.loc = loc; - cloned.range = range; - cloned.extra = extra; - cloned.name = name; - if (type === "Placeholder") { - cloned.expectedNode = node.expectedNode; } - return cloned; -} -function cloneStringLiteral(node) { - const { - type, - start, - end, - loc, - range, - extra - } = node; - if (type === "Placeholder") { - return clonePlaceholder(node); - } - const cloned = Object.create(NodePrototype); - cloned.type = type; - cloned.start = start; - cloned.end = end; - cloned.loc = loc; - cloned.range = range; - if (node.raw !== undefined) { - cloned.raw = node.raw; - } else { - cloned.extra = extra; - } - cloned.value = node.value; - return cloned; -} + return newNode; +}; class NodeUtils extends UtilParser { startNode() { const loc = this.state.startLoc; @@ -3840,3158 +7101,68 @@ class NodeUtils extends UtilParser { node.type = type; node.end = endLoc.index; node.loc.end = endLoc; - if (this.options.ranges) node.range[1] = endLoc.index; - if (this.options.attachComment) this.processComment(node); + if (this.optionFlags & 128) node.range[1] = endLoc.index; + if (this.optionFlags & 4096) { + this.processComment(node); + } return node; } resetStartLocation(node, startLoc) { node.start = startLoc.index; node.loc.start = startLoc; - if (this.options.ranges) node.range[0] = startLoc.index; + if (this.optionFlags & 128) node.range[0] = startLoc.index; } resetEndLocation(node, endLoc = this.state.lastTokEndLoc) { node.end = endLoc.index; node.loc.end = endLoc; - if (this.options.ranges) node.range[1] = endLoc.index; + if (this.optionFlags & 128) node.range[1] = endLoc.index; } resetStartLocationFromNode(node, locationNode) { this.resetStartLocation(node, locationNode.loc.start); } -} -const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); -const FlowErrors = ParseErrorEnum`flow`({ - AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", - AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", - AssignReservedType: ({ - reservedType - }) => `Cannot overwrite reserved type ${reservedType}.`, - DeclareClassElement: "The `declare` modifier can only appear on class fields.", - DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", - DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", - EnumBooleanMemberNotInitialized: ({ - memberName, - enumName - }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`, - EnumDuplicateMemberName: ({ - memberName, - enumName - }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`, - EnumInconsistentMemberValues: ({ - enumName - }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`, - EnumInvalidExplicitType: ({ - invalidEnumType, - enumName - }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, - EnumInvalidExplicitTypeUnknownSupplied: ({ - enumName - }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`, - EnumInvalidMemberInitializerPrimaryType: ({ - enumName, - memberName, - explicitType - }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`, - EnumInvalidMemberInitializerSymbolType: ({ - enumName, - memberName - }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`, - EnumInvalidMemberInitializerUnknownType: ({ - enumName, - memberName - }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`, - EnumInvalidMemberName: ({ - enumName, - memberName, - suggestion - }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`, - EnumNumberMemberNotInitialized: ({ - enumName, - memberName - }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`, - EnumStringMemberInconsistentlyInitialized: ({ - enumName - }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`, - GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", - ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.", - ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", - InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", - InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", - InexactVariance: "Explicit inexact syntax cannot have variance.", - InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", - MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", - NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", - NestedFlowComment: "Cannot have a flow comment inside another flow comment.", - PatternIsOptional: Object.assign({ - message: "A binding pattern parameter cannot be optional in an implementation signature." - }, { - reasonCode: "OptionalBindingPattern" - }), - SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", - SpreadVariance: "Spread properties cannot have variance.", - ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", - ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", - ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", - ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", - ThisParamNoDefault: "The `this` parameter may not have a default value.", - TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", - TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", - UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", - UnexpectedReservedType: ({ - reservedType - }) => `Unexpected reserved type ${reservedType}.`, - UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", - UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", - UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", - UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', - UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", - UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", - UnsupportedDeclareExportKind: ({ - unsupportedExportKind, - suggestion - }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`, - UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", - UnterminatedFlowComment: "Unterminated flow-comment." -}); -function isEsModuleType(bodyElement) { - return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); -} -function hasTypeImportKind(node) { - return node.importKind === "type" || node.importKind === "typeof"; -} -const exportSuggestions = { - const: "declare export var", - let: "declare export var", - type: "export type", - interface: "export interface" -}; -function partition(list, test) { - const list1 = []; - const list2 = []; - for (let i = 0; i < list.length; i++) { - (test(list[i], i, list) ? list1 : list2).push(list[i]); - } - return [list1, list2]; -} -const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; -var flow = superClass => class FlowParserMixin extends superClass { - constructor(...args) { - super(...args); - this.flowPragma = undefined; - } - getScopeHandler() { - return FlowScopeHandler; - } - shouldParseTypes() { - return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; - } - shouldParseEnums() { - return !!this.getPluginOption("flow", "enums"); - } - finishToken(type, val) { - if (type !== 133 && type !== 13 && type !== 28) { - if (this.flowPragma === undefined) { - this.flowPragma = null; - } - } - super.finishToken(type, val); - } - addComment(comment) { - if (this.flowPragma === undefined) { - const matches = FLOW_PRAGMA_REGEX.exec(comment.value); - if (!matches) ;else if (matches[1] === "flow") { - this.flowPragma = "flow"; - } else if (matches[1] === "noflow") { - this.flowPragma = "noflow"; - } else { - throw new Error("Unexpected flow pragma"); - } - } - super.addComment(comment); - } - flowParseTypeInitialiser(tok) { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(tok || 14); - const type = this.flowParseType(); - this.state.inType = oldInType; - return type; - } - flowParsePredicate() { - const node = this.startNode(); - const moduloLoc = this.state.startLoc; - this.next(); - this.expectContextual(110); - if (this.state.lastTokStartLoc.index > moduloLoc.index + 1) { - this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, moduloLoc); - } - if (this.eat(10)) { - node.value = super.parseExpression(); - this.expect(11); - return this.finishNode(node, "DeclaredPredicate"); - } else { - return this.finishNode(node, "InferredPredicate"); - } - } - flowParseTypeAndPredicateInitialiser() { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(14); - let type = null; - let predicate = null; - if (this.match(54)) { - this.state.inType = oldInType; - predicate = this.flowParsePredicate(); - } else { - type = this.flowParseType(); - this.state.inType = oldInType; - if (this.match(54)) { - predicate = this.flowParsePredicate(); - } - } - return [type, predicate]; - } - flowParseDeclareClass(node) { - this.next(); - this.flowParseInterfaceish(node, true); - return this.finishNode(node, "DeclareClass"); - } - flowParseDeclareFunction(node) { - this.next(); - const id = node.id = this.parseIdentifier(); - const typeNode = this.startNode(); - const typeContainer = this.startNode(); - if (this.match(47)) { - typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - typeNode.typeParameters = null; - } - this.expect(10); - const tmp = this.flowParseFunctionTypeParams(); - typeNode.params = tmp.params; - typeNode.rest = tmp.rest; - typeNode.this = tmp._this; - this.expect(11); - [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); - id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); - this.resetEndLocation(id); - this.semicolon(); - this.scope.declareName(node.id.name, 2048, node.id.loc.start); - return this.finishNode(node, "DeclareFunction"); - } - flowParseDeclare(node, insideModule) { - if (this.match(80)) { - return this.flowParseDeclareClass(node); - } else if (this.match(68)) { - return this.flowParseDeclareFunction(node); - } else if (this.match(74)) { - return this.flowParseDeclareVariable(node); - } else if (this.eatContextual(127)) { - if (this.match(16)) { - return this.flowParseDeclareModuleExports(node); - } else { - if (insideModule) { - this.raise(FlowErrors.NestedDeclareModule, this.state.lastTokStartLoc); - } - return this.flowParseDeclareModule(node); - } - } else if (this.isContextual(130)) { - return this.flowParseDeclareTypeAlias(node); - } else if (this.isContextual(131)) { - return this.flowParseDeclareOpaqueType(node); - } else if (this.isContextual(129)) { - return this.flowParseDeclareInterface(node); - } else if (this.match(82)) { - return this.flowParseDeclareExportDeclaration(node, insideModule); - } else { - this.unexpected(); - } - } - flowParseDeclareVariable(node) { - this.next(); - node.id = this.flowParseTypeAnnotatableIdentifier(true); - this.scope.declareName(node.id.name, 5, node.id.loc.start); - this.semicolon(); - return this.finishNode(node, "DeclareVariable"); - } - flowParseDeclareModule(node) { - this.scope.enter(0); - if (this.match(133)) { - node.id = super.parseExprAtom(); - } else { - node.id = this.parseIdentifier(); - } - const bodyNode = node.body = this.startNode(); - const body = bodyNode.body = []; - this.expect(5); - while (!this.match(8)) { - let bodyNode = this.startNode(); - if (this.match(83)) { - this.next(); - if (!this.isContextual(130) && !this.match(87)) { - this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, this.state.lastTokStartLoc); - } - super.parseImport(bodyNode); - } else { - this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule); - bodyNode = this.flowParseDeclare(bodyNode, true); - } - body.push(bodyNode); - } - this.scope.exit(); - this.expect(8); - this.finishNode(bodyNode, "BlockStatement"); - let kind = null; - let hasModuleExport = false; - body.forEach(bodyElement => { - if (isEsModuleType(bodyElement)) { - if (kind === "CommonJS") { - this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); - } - kind = "ES"; - } else if (bodyElement.type === "DeclareModuleExports") { - if (hasModuleExport) { - this.raise(FlowErrors.DuplicateDeclareModuleExports, bodyElement); - } - if (kind === "ES") { - this.raise(FlowErrors.AmbiguousDeclareModuleKind, bodyElement); - } - kind = "CommonJS"; - hasModuleExport = true; - } - }); - node.kind = kind || "CommonJS"; - return this.finishNode(node, "DeclareModule"); - } - flowParseDeclareExportDeclaration(node, insideModule) { - this.expect(82); - if (this.eat(65)) { - if (this.match(68) || this.match(80)) { - node.declaration = this.flowParseDeclare(this.startNode()); - } else { - node.declaration = this.flowParseType(); - this.semicolon(); - } - node.default = true; - return this.finishNode(node, "DeclareExportDeclaration"); - } else { - if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) { - const label = this.state.value; - throw this.raise(FlowErrors.UnsupportedDeclareExportKind, this.state.startLoc, { - unsupportedExportKind: label, - suggestion: exportSuggestions[label] - }); - } - if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) { - node.declaration = this.flowParseDeclare(this.startNode()); - node.default = false; - return this.finishNode(node, "DeclareExportDeclaration"); - } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) { - node = this.parseExport(node, null); - if (node.type === "ExportNamedDeclaration") { - node.type = "ExportDeclaration"; - node.default = false; - delete node.exportKind; - } - node.type = "Declare" + node.type; - return node; - } - } - this.unexpected(); - } - flowParseDeclareModuleExports(node) { - this.next(); - this.expectContextual(111); - node.typeAnnotation = this.flowParseTypeAnnotation(); - this.semicolon(); - return this.finishNode(node, "DeclareModuleExports"); - } - flowParseDeclareTypeAlias(node) { - this.next(); - const finished = this.flowParseTypeAlias(node); - finished.type = "DeclareTypeAlias"; - return finished; - } - flowParseDeclareOpaqueType(node) { - this.next(); - const finished = this.flowParseOpaqueType(node, true); - finished.type = "DeclareOpaqueType"; - return finished; - } - flowParseDeclareInterface(node) { - this.next(); - this.flowParseInterfaceish(node, false); - return this.finishNode(node, "DeclareInterface"); - } - flowParseInterfaceish(node, isClass) { - node.id = this.flowParseRestrictedIdentifier(!isClass, true); - this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - node.extends = []; - if (this.eat(81)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (!isClass && this.eat(12)); - } - if (isClass) { - node.implements = []; - node.mixins = []; - if (this.eatContextual(117)) { - do { - node.mixins.push(this.flowParseInterfaceExtends()); - } while (this.eat(12)); - } - if (this.eatContextual(113)) { - do { - node.implements.push(this.flowParseInterfaceExtends()); - } while (this.eat(12)); - } - } - node.body = this.flowParseObjectType({ - allowStatic: isClass, - allowExact: false, - allowSpread: false, - allowProto: isClass, - allowInexact: false - }); - } - flowParseInterfaceExtends() { - const node = this.startNode(); - node.id = this.flowParseQualifiedTypeIdentifier(); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - return this.finishNode(node, "InterfaceExtends"); - } - flowParseInterface(node) { - this.flowParseInterfaceish(node, false); - return this.finishNode(node, "InterfaceDeclaration"); - } - checkNotUnderscore(word) { - if (word === "_") { - this.raise(FlowErrors.UnexpectedReservedUnderscore, this.state.startLoc); - } - } - checkReservedType(word, startLoc, declaration) { - if (!reservedTypes.has(word)) return; - this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, startLoc, { - reservedType: word - }); - } - flowParseRestrictedIdentifier(liberal, declaration) { - this.checkReservedType(this.state.value, this.state.startLoc, declaration); - return this.parseIdentifier(liberal); - } - flowParseTypeAlias(node) { - node.id = this.flowParseRestrictedIdentifier(false, true); - this.scope.declareName(node.id.name, 8201, node.id.loc.start); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - node.right = this.flowParseTypeInitialiser(29); - this.semicolon(); - return this.finishNode(node, "TypeAlias"); - } - flowParseOpaqueType(node, declare) { - this.expectContextual(130); - node.id = this.flowParseRestrictedIdentifier(true, true); - this.scope.declareName(node.id.name, 8201, node.id.loc.start); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - node.supertype = null; - if (this.match(14)) { - node.supertype = this.flowParseTypeInitialiser(14); - } - node.impltype = null; - if (!declare) { - node.impltype = this.flowParseTypeInitialiser(29); - } - this.semicolon(); - return this.finishNode(node, "OpaqueType"); - } - flowParseTypeParameter(requireDefault = false) { - const nodeStartLoc = this.state.startLoc; - const node = this.startNode(); - const variance = this.flowParseVariance(); - const ident = this.flowParseTypeAnnotatableIdentifier(); - node.name = ident.name; - node.variance = variance; - node.bound = ident.typeAnnotation; - if (this.match(29)) { - this.eat(29); - node.default = this.flowParseType(); - } else { - if (requireDefault) { - this.raise(FlowErrors.MissingTypeParamDefault, nodeStartLoc); - } - } - return this.finishNode(node, "TypeParameter"); - } - flowParseTypeParameterDeclaration() { - const oldInType = this.state.inType; - const node = this.startNode(); - node.params = []; - this.state.inType = true; - if (this.match(47) || this.match(142)) { - this.next(); - } else { - this.unexpected(); - } - let defaultRequired = false; - do { - const typeParameter = this.flowParseTypeParameter(defaultRequired); - node.params.push(typeParameter); - if (typeParameter.default) { - defaultRequired = true; - } - if (!this.match(48)) { - this.expect(12); - } - } while (!this.match(48)); - this.expect(48); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterDeclaration"); - } - flowParseTypeParameterInstantiation() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expect(47); - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = false; - while (!this.match(48)) { - node.params.push(this.flowParseType()); - if (!this.match(48)) { - this.expect(12); - } - } - this.state.noAnonFunctionType = oldNoAnonFunctionType; - this.expect(48); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - flowParseTypeParameterInstantiationCallOrNew() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expect(47); - while (!this.match(48)) { - node.params.push(this.flowParseTypeOrImplicitInstantiation()); - if (!this.match(48)) { - this.expect(12); - } - } - this.expect(48); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - flowParseInterfaceType() { - const node = this.startNode(); - this.expectContextual(129); - node.extends = []; - if (this.eat(81)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (this.eat(12)); - } - node.body = this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: false, - allowProto: false, - allowInexact: false - }); - return this.finishNode(node, "InterfaceTypeAnnotation"); - } - flowParseObjectPropertyKey() { - return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(true); - } - flowParseObjectTypeIndexer(node, isStatic, variance) { - node.static = isStatic; - if (this.lookahead().type === 14) { - node.id = this.flowParseObjectPropertyKey(); - node.key = this.flowParseTypeInitialiser(); - } else { - node.id = null; - node.key = this.flowParseType(); - } - this.expect(3); - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - return this.finishNode(node, "ObjectTypeIndexer"); - } - flowParseObjectTypeInternalSlot(node, isStatic) { - node.static = isStatic; - node.id = this.flowParseObjectPropertyKey(); - this.expect(3); - this.expect(3); - if (this.match(47) || this.match(10)) { - node.method = true; - node.optional = false; - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); - } else { - node.method = false; - if (this.eat(17)) { - node.optional = true; - } - node.value = this.flowParseTypeInitialiser(); - } - return this.finishNode(node, "ObjectTypeInternalSlot"); - } - flowParseObjectTypeMethodish(node) { - node.params = []; - node.rest = null; - node.typeParameters = null; - node.this = null; - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - this.expect(10); - if (this.match(78)) { - node.this = this.flowParseFunctionTypeParam(true); - node.this.name = null; - if (!this.match(11)) { - this.expect(12); - } - } - while (!this.match(11) && !this.match(21)) { - node.params.push(this.flowParseFunctionTypeParam(false)); - if (!this.match(11)) { - this.expect(12); - } - } - if (this.eat(21)) { - node.rest = this.flowParseFunctionTypeParam(false); - } - this.expect(11); - node.returnType = this.flowParseTypeInitialiser(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } - flowParseObjectTypeCallProperty(node, isStatic) { - const valueNode = this.startNode(); - node.static = isStatic; - node.value = this.flowParseObjectTypeMethodish(valueNode); - return this.finishNode(node, "ObjectTypeCallProperty"); - } - flowParseObjectType({ - allowStatic, - allowExact, - allowSpread, - allowProto, - allowInexact - }) { - const oldInType = this.state.inType; - this.state.inType = true; - const nodeStart = this.startNode(); - nodeStart.callProperties = []; - nodeStart.properties = []; - nodeStart.indexers = []; - nodeStart.internalSlots = []; - let endDelim; - let exact; - let inexact = false; - if (allowExact && this.match(6)) { - this.expect(6); - endDelim = 9; - exact = true; - } else { - this.expect(5); - endDelim = 8; - exact = false; - } - nodeStart.exact = exact; - while (!this.match(endDelim)) { - let isStatic = false; - let protoStartLoc = null; - let inexactStartLoc = null; - const node = this.startNode(); - if (allowProto && this.isContextual(118)) { - const lookahead = this.lookahead(); - if (lookahead.type !== 14 && lookahead.type !== 17) { - this.next(); - protoStartLoc = this.state.startLoc; - allowStatic = false; - } - } - if (allowStatic && this.isContextual(106)) { - const lookahead = this.lookahead(); - if (lookahead.type !== 14 && lookahead.type !== 17) { - this.next(); - isStatic = true; - } - } - const variance = this.flowParseVariance(); - if (this.eat(0)) { - if (protoStartLoc != null) { - this.unexpected(protoStartLoc); - } - if (this.eat(0)) { - if (variance) { - this.unexpected(variance.loc.start); - } - nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); - } else { - nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); - } - } else if (this.match(10) || this.match(47)) { - if (protoStartLoc != null) { - this.unexpected(protoStartLoc); - } - if (variance) { - this.unexpected(variance.loc.start); - } - nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); - } else { - let kind = "init"; - if (this.isContextual(99) || this.isContextual(104)) { - const lookahead = this.lookahead(); - if (tokenIsLiteralPropertyName(lookahead.type)) { - kind = this.state.value; - this.next(); - } - } - const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); - if (propOrInexact === null) { - inexact = true; - inexactStartLoc = this.state.lastTokStartLoc; - } else { - nodeStart.properties.push(propOrInexact); - } - } - this.flowObjectTypeSemicolon(); - if (inexactStartLoc && !this.match(8) && !this.match(9)) { - this.raise(FlowErrors.UnexpectedExplicitInexactInObject, inexactStartLoc); - } - } - this.expect(endDelim); - if (allowSpread) { - nodeStart.inexact = inexact; - } - const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); - this.state.inType = oldInType; - return out; - } - flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) { - if (this.eat(21)) { - const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); - if (isInexactToken) { - if (!allowSpread) { - this.raise(FlowErrors.InexactInsideNonObject, this.state.lastTokStartLoc); - } else if (!allowInexact) { - this.raise(FlowErrors.InexactInsideExact, this.state.lastTokStartLoc); - } - if (variance) { - this.raise(FlowErrors.InexactVariance, variance); - } - return null; - } - if (!allowSpread) { - this.raise(FlowErrors.UnexpectedSpreadType, this.state.lastTokStartLoc); - } - if (protoStartLoc != null) { - this.unexpected(protoStartLoc); - } - if (variance) { - this.raise(FlowErrors.SpreadVariance, variance); - } - node.argument = this.flowParseType(); - return this.finishNode(node, "ObjectTypeSpreadProperty"); - } else { - node.key = this.flowParseObjectPropertyKey(); - node.static = isStatic; - node.proto = protoStartLoc != null; - node.kind = kind; - let optional = false; - if (this.match(47) || this.match(10)) { - node.method = true; - if (protoStartLoc != null) { - this.unexpected(protoStartLoc); - } - if (variance) { - this.unexpected(variance.loc.start); - } - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start)); - if (kind === "get" || kind === "set") { - this.flowCheckGetterSetterParams(node); - } - if (!allowSpread && node.key.name === "constructor" && node.value.this) { - this.raise(FlowErrors.ThisParamBannedInConstructor, node.value.this); - } - } else { - if (kind !== "init") this.unexpected(); - node.method = false; - if (this.eat(17)) { - optional = true; - } - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - } - node.optional = optional; - return this.finishNode(node, "ObjectTypeProperty"); - } - } - flowCheckGetterSetterParams(property) { - const paramCount = property.kind === "get" ? 0 : 1; - const length = property.value.params.length + (property.value.rest ? 1 : 0); - if (property.value.this) { - this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, property.value.this); - } - if (length !== paramCount) { - this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, property); - } - if (property.kind === "set" && property.value.rest) { - this.raise(Errors.BadSetterRestParameter, property); - } - } - flowObjectTypeSemicolon() { - if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { - this.unexpected(); - } - } - flowParseQualifiedTypeIdentifier(startLoc, id) { - var _startLoc; - (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; - let node = id || this.flowParseRestrictedIdentifier(true); - while (this.eat(16)) { - const node2 = this.startNodeAt(startLoc); - node2.qualification = node; - node2.id = this.flowParseRestrictedIdentifier(true); - node = this.finishNode(node2, "QualifiedTypeIdentifier"); - } + castNodeTo(node, type) { + node.type = type; return node; } - flowParseGenericType(startLoc, id) { - const node = this.startNodeAt(startLoc); - node.typeParameters = null; - node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } - return this.finishNode(node, "GenericTypeAnnotation"); - } - flowParseTypeofType() { - const node = this.startNode(); - this.expect(87); - node.argument = this.flowParsePrimaryType(); - return this.finishNode(node, "TypeofTypeAnnotation"); - } - flowParseTupleType() { - const node = this.startNode(); - node.types = []; - this.expect(0); - while (this.state.pos < this.length && !this.match(3)) { - node.types.push(this.flowParseType()); - if (this.match(3)) break; - this.expect(12); - } - this.expect(3); - return this.finishNode(node, "TupleTypeAnnotation"); - } - flowParseFunctionTypeParam(first) { - let name = null; - let optional = false; - let typeAnnotation = null; - const node = this.startNode(); - const lh = this.lookahead(); - const isThis = this.state.type === 78; - if (lh.type === 14 || lh.type === 17) { - if (isThis && !first) { - this.raise(FlowErrors.ThisParamMustBeFirst, node); - } - name = this.parseIdentifier(isThis); - if (this.eat(17)) { - optional = true; - if (isThis) { - this.raise(FlowErrors.ThisParamMayNotBeOptional, node); - } - } - typeAnnotation = this.flowParseTypeInitialiser(); - } else { - typeAnnotation = this.flowParseType(); - } - node.name = name; - node.optional = optional; - node.typeAnnotation = typeAnnotation; - return this.finishNode(node, "FunctionTypeParam"); - } - reinterpretTypeAsFunctionTypeParam(type) { - const node = this.startNodeAt(type.loc.start); - node.name = null; - node.optional = false; - node.typeAnnotation = type; - return this.finishNode(node, "FunctionTypeParam"); - } - flowParseFunctionTypeParams(params = []) { - let rest = null; - let _this = null; - if (this.match(78)) { - _this = this.flowParseFunctionTypeParam(true); - _this.name = null; - if (!this.match(11)) { - this.expect(12); - } - } - while (!this.match(11) && !this.match(21)) { - params.push(this.flowParseFunctionTypeParam(false)); - if (!this.match(11)) { - this.expect(12); - } - } - if (this.eat(21)) { - rest = this.flowParseFunctionTypeParam(false); - } - return { - params, - rest, - _this - }; - } - flowIdentToTypeAnnotation(startLoc, node, id) { - switch (id.name) { - case "any": - return this.finishNode(node, "AnyTypeAnnotation"); - case "bool": - case "boolean": - return this.finishNode(node, "BooleanTypeAnnotation"); - case "mixed": - return this.finishNode(node, "MixedTypeAnnotation"); - case "empty": - return this.finishNode(node, "EmptyTypeAnnotation"); - case "number": - return this.finishNode(node, "NumberTypeAnnotation"); - case "string": - return this.finishNode(node, "StringTypeAnnotation"); - case "symbol": - return this.finishNode(node, "SymbolTypeAnnotation"); - default: - this.checkNotUnderscore(id.name); - return this.flowParseGenericType(startLoc, id); - } - } - flowParsePrimaryType() { - const startLoc = this.state.startLoc; - const node = this.startNode(); - let tmp; - let type; - let isGroupedType = false; - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - switch (this.state.type) { - case 5: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: true, - allowProto: false, - allowInexact: true - }); - case 6: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: true, - allowSpread: true, - allowProto: false, - allowInexact: false - }); - case 0: - this.state.noAnonFunctionType = false; - type = this.flowParseTupleType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - return type; - case 47: - node.typeParameters = this.flowParseTypeParameterDeclaration(); - this.expect(10); - tmp = this.flowParseFunctionTypeParams(); - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(11); - this.expect(19); - node.returnType = this.flowParseType(); - return this.finishNode(node, "FunctionTypeAnnotation"); - case 10: - this.next(); - if (!this.match(11) && !this.match(21)) { - if (tokenIsIdentifier(this.state.type) || this.match(78)) { - const token = this.lookahead().type; - isGroupedType = token !== 17 && token !== 14; - } else { - isGroupedType = true; - } - } - if (isGroupedType) { - this.state.noAnonFunctionType = false; - type = this.flowParseType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { - this.expect(11); - return type; - } else { - this.eat(12); - } - } - if (type) { - tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); - } else { - tmp = this.flowParseFunctionTypeParams(); - } - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(11); - this.expect(19); - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - case 133: - return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); - case 85: - case 86: - node.value = this.match(85); - this.next(); - return this.finishNode(node, "BooleanLiteralTypeAnnotation"); - case 53: - if (this.state.value === "-") { - this.next(); - if (this.match(134)) { - return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); - } - if (this.match(135)) { - return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); - } - throw this.raise(FlowErrors.UnexpectedSubtractionOperand, this.state.startLoc); - } - this.unexpected(); - return; - case 134: - return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); - case 135: - return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); - case 88: - this.next(); - return this.finishNode(node, "VoidTypeAnnotation"); - case 84: - this.next(); - return this.finishNode(node, "NullLiteralTypeAnnotation"); - case 78: - this.next(); - return this.finishNode(node, "ThisTypeAnnotation"); - case 55: - this.next(); - return this.finishNode(node, "ExistsTypeAnnotation"); - case 87: - return this.flowParseTypeofType(); - default: - if (tokenIsKeyword(this.state.type)) { - const label = tokenLabelName(this.state.type); - this.next(); - return super.createIdentifier(node, label); - } else if (tokenIsIdentifier(this.state.type)) { - if (this.isContextual(129)) { - return this.flowParseInterfaceType(); - } - return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier()); - } - } - this.unexpected(); - } - flowParsePostfixType() { - const startLoc = this.state.startLoc; - let type = this.flowParsePrimaryType(); - let seenOptionalIndexedAccess = false; - while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { - const node = this.startNodeAt(startLoc); - const optional = this.eat(18); - seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; - this.expect(0); - if (!optional && this.match(3)) { - node.elementType = type; - this.next(); - type = this.finishNode(node, "ArrayTypeAnnotation"); - } else { - node.objectType = type; - node.indexType = this.flowParseType(); - this.expect(3); - if (seenOptionalIndexedAccess) { - node.optional = optional; - type = this.finishNode(node, "OptionalIndexedAccessType"); - } else { - type = this.finishNode(node, "IndexedAccessType"); - } - } - } - return type; - } - flowParsePrefixType() { - const node = this.startNode(); - if (this.eat(17)) { - node.typeAnnotation = this.flowParsePrefixType(); - return this.finishNode(node, "NullableTypeAnnotation"); - } else { - return this.flowParsePostfixType(); - } - } - flowParseAnonFunctionWithoutParens() { - const param = this.flowParsePrefixType(); - if (!this.state.noAnonFunctionType && this.eat(19)) { - const node = this.startNodeAt(param.loc.start); - node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; - node.rest = null; - node.this = null; - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - } - return param; - } - flowParseIntersectionType() { - const node = this.startNode(); - this.eat(45); - const type = this.flowParseAnonFunctionWithoutParens(); - node.types = [type]; - while (this.eat(45)) { - node.types.push(this.flowParseAnonFunctionWithoutParens()); - } - return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); - } - flowParseUnionType() { - const node = this.startNode(); - this.eat(43); - const type = this.flowParseIntersectionType(); - node.types = [type]; - while (this.eat(43)) { - node.types.push(this.flowParseIntersectionType()); - } - return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); - } - flowParseType() { - const oldInType = this.state.inType; - this.state.inType = true; - const type = this.flowParseUnionType(); - this.state.inType = oldInType; - return type; - } - flowParseTypeOrImplicitInstantiation() { - if (this.state.type === 132 && this.state.value === "_") { - const startLoc = this.state.startLoc; - const node = this.parseIdentifier(); - return this.flowParseGenericType(startLoc, node); - } else { - return this.flowParseType(); - } - } - flowParseTypeAnnotation() { - const node = this.startNode(); - node.typeAnnotation = this.flowParseTypeInitialiser(); - return this.finishNode(node, "TypeAnnotation"); - } - flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { - const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); - if (this.match(14)) { - ident.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(ident); - } - return ident; - } - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.loc.end); - return node.expression; - } - flowParseVariance() { - let variance = null; - if (this.match(53)) { - variance = this.startNode(); - if (this.state.value === "+") { - variance.kind = "plus"; - } else { - variance.kind = "minus"; - } - this.next(); - return this.finishNode(variance, "Variance"); - } - return variance; - } - parseFunctionBody(node, allowExpressionBody, isMethod = false) { - if (allowExpressionBody) { - this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); - return; - } - super.parseFunctionBody(node, false, isMethod); - } - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(14)) { - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; - } - return super.parseFunctionBodyAndFinish(node, type, isMethod); - } - parseStatementLike(flags) { - if (this.state.strict && this.isContextual(129)) { - const lookahead = this.lookahead(); - if (tokenIsKeywordOrIdentifier(lookahead.type)) { - const node = this.startNode(); - this.next(); - return this.flowParseInterface(node); - } - } else if (this.shouldParseEnums() && this.isContextual(126)) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } - const stmt = super.parseStatementLike(flags); - if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { - this.flowPragma = null; - } - return stmt; - } - parseExpressionStatement(node, expr, decorators) { - if (expr.type === "Identifier") { - if (expr.name === "declare") { - if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) { - return this.flowParseDeclare(node); - } - } else if (tokenIsIdentifier(this.state.type)) { - if (expr.name === "interface") { - return this.flowParseInterface(node); - } else if (expr.name === "type") { - return this.flowParseTypeAlias(node); - } else if (expr.name === "opaque") { - return this.flowParseOpaqueType(node, false); - } - } - } - return super.parseExpressionStatement(node, expr, decorators); - } - shouldParseExportDeclaration() { - const { - type - } = this.state; - if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) { - return !this.state.containsEsc; - } - return super.shouldParseExportDeclaration(); - } - isExportDefaultSpecifier() { - const { - type - } = this.state; - if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) { - return this.state.containsEsc; - } - return super.isExportDefaultSpecifier(); - } - parseExportDefaultExpression() { - if (this.shouldParseEnums() && this.isContextual(126)) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } - return super.parseExportDefaultExpression(); - } - parseConditional(expr, startLoc, refExpressionErrors) { - if (!this.match(17)) return expr; - if (this.state.maybeInArrowParameters) { - const nextCh = this.lookaheadCharCode(); - if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { - this.setOptionalParametersError(refExpressionErrors); - return expr; - } - } - this.expect(17); - const state = this.state.clone(); - const originalNoArrowAt = this.state.noArrowAt; - const node = this.startNodeAt(startLoc); - let { - consequent, - failed - } = this.tryParseConditionalConsequent(); - let [valid, invalid] = this.getArrowLikeExpressions(consequent); - if (failed || invalid.length > 0) { - const noArrowAt = [...originalNoArrowAt]; - if (invalid.length > 0) { - this.state = state; - this.state.noArrowAt = noArrowAt; - for (let i = 0; i < invalid.length; i++) { - noArrowAt.push(invalid[i].start); - } - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - [valid, invalid] = this.getArrowLikeExpressions(consequent); - } - if (failed && valid.length > 1) { - this.raise(FlowErrors.AmbiguousConditionalArrow, state.startLoc); - } - if (failed && valid.length === 1) { - this.state = state; - noArrowAt.push(valid[0].start); - this.state.noArrowAt = noArrowAt; - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - } - } - this.getArrowLikeExpressions(consequent, true); - this.state.noArrowAt = originalNoArrowAt; - this.expect(14); - node.test = expr; - node.consequent = consequent; - node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); - return this.finishNode(node, "ConditionalExpression"); - } - tryParseConditionalConsequent() { - this.state.noArrowParamsConversionAt.push(this.state.start); - const consequent = this.parseMaybeAssignAllowIn(); - const failed = !this.match(14); - this.state.noArrowParamsConversionAt.pop(); - return { - consequent, - failed - }; - } - getArrowLikeExpressions(node, disallowInvalid) { - const stack = [node]; - const arrows = []; - while (stack.length !== 0) { - const node = stack.pop(); - if (node.type === "ArrowFunctionExpression") { - if (node.typeParameters || !node.returnType) { - this.finishArrowValidation(node); - } else { - arrows.push(node); - } - stack.push(node.body); - } else if (node.type === "ConditionalExpression") { - stack.push(node.consequent); - stack.push(node.alternate); - } - } - if (disallowInvalid) { - arrows.forEach(node => this.finishArrowValidation(node)); - return [arrows, []]; - } - return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); - } - finishArrowValidation(node) { - var _node$extra; - this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false); - this.scope.enter(2 | 4); - super.checkParams(node, false, true); - this.scope.exit(); - } - forwardNoArrowParamsConversionAt(node, parse) { - let result; - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - this.state.noArrowParamsConversionAt.push(this.state.start); - result = parse(); - this.state.noArrowParamsConversionAt.pop(); - } else { - result = parse(); - } - return result; - } - parseParenItem(node, startLoc) { - node = super.parseParenItem(node, startLoc); - if (this.eat(17)) { - node.optional = true; - this.resetEndLocation(node); - } - if (this.match(14)) { - const typeCastNode = this.startNodeAt(startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TypeCastExpression"); - } - return node; - } - assertModuleNodeAllowed(node) { - if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { - return; - } - super.assertModuleNodeAllowed(node); - } - parseExportDeclaration(node) { - if (this.isContextual(130)) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - if (this.match(5)) { - node.specifiers = this.parseExportSpecifiers(true); - super.parseExportFrom(node); - return null; - } else { - return this.flowParseTypeAlias(declarationNode); - } - } else if (this.isContextual(131)) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseOpaqueType(declarationNode, false); - } else if (this.isContextual(129)) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseInterface(declarationNode); - } else if (this.shouldParseEnums() && this.isContextual(126)) { - node.exportKind = "value"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(declarationNode); - } else { - return super.parseExportDeclaration(node); - } - } - eatExportStar(node) { - if (super.eatExportStar(node)) return true; - if (this.isContextual(130) && this.lookahead().type === 55) { - node.exportKind = "type"; - this.next(); - this.next(); - return true; - } - return false; - } - maybeParseExportNamespaceSpecifier(node) { - const { - startLoc - } = this.state; - const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); - if (hasNamespace && node.exportKind === "type") { - this.unexpected(startLoc); - } - return hasNamespace; - } - parseClassId(node, isStatement, optionalId) { - super.parseClassId(node, isStatement, optionalId); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - } - parseClassMember(classBody, member, state) { - const { - startLoc - } = this.state; - if (this.isContextual(125)) { - if (super.parseClassMemberFromModifier(classBody, member)) { - return; - } - member.declare = true; - } - super.parseClassMember(classBody, member, state); - if (member.declare) { - if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { - this.raise(FlowErrors.DeclareClassElement, startLoc); - } else if (member.value) { - this.raise(FlowErrors.DeclareClassFieldInitializer, member.value); - } - } - } - isIterator(word) { - return word === "iterator" || word === "asyncIterator"; - } - readIterator() { - const word = super.readWord1(); - const fullWord = "@@" + word; - if (!this.isIterator(word) || !this.state.inType) { - this.raise(Errors.InvalidIdentifier, this.state.curPosition(), { - identifierName: fullWord - }); - } - this.finishToken(132, fullWord); - } - getTokenFromCode(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - if (code === 123 && next === 124) { - this.finishOp(6, 2); - } else if (this.state.inType && (code === 62 || code === 60)) { - this.finishOp(code === 62 ? 48 : 47, 1); - } else if (this.state.inType && code === 63) { - if (next === 46) { - this.finishOp(18, 2); - } else { - this.finishOp(17, 1); - } - } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) { - this.state.pos += 2; - this.readIterator(); - } else { - super.getTokenFromCode(code); - } - } - isAssignable(node, isBinding) { - if (node.type === "TypeCastExpression") { - return this.isAssignable(node.expression, isBinding); - } else { - return super.isAssignable(node, isBinding); - } - } - toAssignable(node, isLHS = false) { - if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") { - node.left = this.typeCastToParameter(node.left); - } - super.toAssignable(node, isLHS); - } - toAssignableList(exprList, trailingCommaLoc, isLHS) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { - exprList[i] = this.typeCastToParameter(expr); - } - } - super.toAssignableList(exprList, trailingCommaLoc, isLHS); - } - toReferencedList(exprList, isParenthesizedExpr) { - for (let i = 0; i < exprList.length; i++) { - var _expr$extra; - const expr = exprList[i]; - if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { - this.raise(FlowErrors.TypeCastInPattern, expr.typeAnnotation); - } - } - return exprList; - } - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); - if (canBePattern && !this.state.maybeInArrowParameters) { - this.toReferencedList(node.elements); - } - return node; - } - isValidLVal(type, isParenthesized, binding) { - return type === "TypeCastExpression" || super.isValidLVal(type, isParenthesized, binding); - } - parseClassProperty(node) { - if (this.match(14)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - return super.parseClassProperty(node); - } - parseClassPrivateProperty(node) { - if (this.match(14)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - return super.parseClassPrivateProperty(node); - } - isClassMethod() { - return this.match(47) || super.isClassMethod(); - } - isClassProperty() { - return this.match(14) || super.isClassProperty(); - } - isNonstaticConstructor(method) { - return !this.match(14) && super.isNonstaticConstructor(method); - } - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - if (method.variance) { - this.unexpected(method.variance.loc.start); - } - delete method.variance; - if (this.match(47)) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); - if (method.params && isConstructor) { - const params = method.params; - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(FlowErrors.ThisParamBannedInConstructor, method); - } - } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { - const params = method.value.params; - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(FlowErrors.ThisParamBannedInConstructor, method); - } - } - } - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - if (method.variance) { - this.unexpected(method.variance.loc.start); - } - delete method.variance; - if (this.match(47)) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); - } - parseClassSuper(node) { - super.parseClassSuper(node); - if (node.superClass && this.match(47)) { - node.superTypeParameters = this.flowParseTypeParameterInstantiation(); - } - if (this.isContextual(113)) { - this.next(); - const implemented = node.implements = []; - do { - const node = this.startNode(); - node.id = this.flowParseRestrictedIdentifier(true); - if (this.match(47)) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - implemented.push(this.finishNode(node, "ClassImplements")); - } while (this.eat(12)); - } - } - checkGetterSetterParams(method) { - super.checkGetterSetterParams(method); - const params = this.getObjectOrClassMethodParams(method); - if (params.length > 0) { - const param = params[0]; - if (this.isThisParam(param) && method.kind === "get") { - this.raise(FlowErrors.GetterMayNotHaveThisParam, param); - } else if (this.isThisParam(param)) { - this.raise(FlowErrors.SetterMayNotHaveThisParam, param); - } - } - } - parsePropertyNamePrefixOperator(node) { - node.variance = this.flowParseVariance(); - } - parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { - if (prop.variance) { - this.unexpected(prop.variance.loc.start); - } - delete prop.variance; - let typeParameters; - if (this.match(47) && !isAccessor) { - typeParameters = this.flowParseTypeParameterDeclaration(); - if (!this.match(10)) this.unexpected(); - } - const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); - if (typeParameters) { - (result.value || result).typeParameters = typeParameters; - } - return result; - } - parseAssignableListItemTypes(param) { - if (this.eat(17)) { - if (param.type !== "Identifier") { - this.raise(FlowErrors.PatternIsOptional, param); - } - if (this.isThisParam(param)) { - this.raise(FlowErrors.ThisParamMayNotBeOptional, param); - } - param.optional = true; - } - if (this.match(14)) { - param.typeAnnotation = this.flowParseTypeAnnotation(); - } else if (this.isThisParam(param)) { - this.raise(FlowErrors.ThisParamAnnotationRequired, param); - } - if (this.match(29) && this.isThisParam(param)) { - this.raise(FlowErrors.ThisParamNoDefault, param); - } - this.resetEndLocation(param); - return param; - } - parseMaybeDefault(startLoc, left) { - const node = super.parseMaybeDefault(startLoc, left); - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(FlowErrors.TypeBeforeInitializer, node.typeAnnotation); - } - return node; - } - checkImportReflection(node) { - super.checkImportReflection(node); - if (node.module && node.importKind !== "value") { - this.raise(FlowErrors.ImportReflectionHasImportType, node.specifiers[0].loc.start); - } - } - parseImportSpecifierLocal(node, specifier, type) { - specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); - node.specifiers.push(this.finishImportSpecifier(specifier, type)); - } - isPotentialImportPhase(isExport) { - if (super.isPotentialImportPhase(isExport)) return true; - if (this.isContextual(130)) { - if (!isExport) return true; - const ch = this.lookaheadCharCode(); - return ch === 123 || ch === 42; - } - return !isExport && this.isContextual(87); - } - applyImportPhase(node, isExport, phase, loc) { - super.applyImportPhase(node, isExport, phase, loc); - if (isExport) { - if (!phase && this.match(65)) { - return; - } - node.exportKind = phase === "type" ? phase : "value"; - } else { - if (phase === "type" && this.match(55)) this.unexpected(); - node.importKind = phase === "type" || phase === "typeof" ? phase : "value"; - } - } - parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) { - const firstIdent = specifier.imported; - let specifierTypeKind = null; - if (firstIdent.type === "Identifier") { - if (firstIdent.name === "type") { - specifierTypeKind = "type"; - } else if (firstIdent.name === "typeof") { - specifierTypeKind = "typeof"; - } - } - let isBinding = false; - if (this.isContextual(93) && !this.isLookaheadContextual("as")) { - const as_ident = this.parseIdentifier(true); - if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { - specifier.imported = as_ident; - specifier.importKind = specifierTypeKind; - specifier.local = cloneIdentifier(as_ident); - } else { - specifier.imported = firstIdent; - specifier.importKind = null; - specifier.local = this.parseIdentifier(); - } - } else { - if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { - specifier.imported = this.parseIdentifier(true); - specifier.importKind = specifierTypeKind; - } else { - if (importedIsString) { - throw this.raise(Errors.ImportBindingIsString, specifier, { - importName: firstIdent.value - }); - } - specifier.imported = firstIdent; - specifier.importKind = null; - } - if (this.eatContextual(93)) { - specifier.local = this.parseIdentifier(); - } else { - isBinding = true; - specifier.local = cloneIdentifier(specifier.imported); - } - } - const specifierIsTypeImport = hasTypeImportKind(specifier); - if (isInTypeOnlyImport && specifierIsTypeImport) { - this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, specifier); - } - if (isInTypeOnlyImport || specifierIsTypeImport) { - this.checkReservedType(specifier.local.name, specifier.local.loc.start, true); - } - if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) { - this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true); - } - return this.finishImportSpecifier(specifier, "ImportSpecifier"); - } - parseBindingAtom() { - switch (this.state.type) { - case 78: - return this.parseIdentifier(true); - default: - return super.parseBindingAtom(); - } - } - parseFunctionParams(node, isConstructor) { - const kind = node.kind; - if (kind !== "get" && kind !== "set" && this.match(47)) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - super.parseFunctionParams(node, isConstructor); - } - parseVarId(decl, kind) { - super.parseVarId(decl, kind); - if (this.match(14)) { - decl.id.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(decl.id); - } - } - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(14)) { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - node.returnType = this.flowParseTypeAnnotation(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - } - return super.parseAsyncArrowFromCallExpression(node, call); - } - shouldParseAsyncArrow() { - return this.match(14) || super.shouldParseAsyncArrow(); - } - parseMaybeAssign(refExpressionErrors, afterLeftParse) { - var _jsx; - let state = null; - let jsx; - if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; - const currentContext = context[context.length - 1]; - if (currentContext === types.j_oTag || currentContext === types.j_expr) { - context.pop(); - } - } - if ((_jsx = jsx) != null && _jsx.error || this.match(47)) { - var _jsx2, _jsx3; - state = state || this.state.clone(); - let typeParameters; - const arrow = this.tryParse(abort => { - var _arrowExpression$extr; - typeParameters = this.flowParseTypeParameterDeclaration(); - const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { - const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); - this.resetStartLocationFromNode(result, typeParameters); - return result; - }); - if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); - const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); - if (expr.type !== "ArrowFunctionExpression") abort(); - expr.typeParameters = typeParameters; - this.resetStartLocationFromNode(expr, typeParameters); - return arrowExpression; - }, state); - let arrowExpression = null; - if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { - if (!arrow.error && !arrow.aborted) { - if (arrow.node.async) { - this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, typeParameters); - } - return arrow.node; - } - arrowExpression = arrow.node; - } - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } - if (arrowExpression) { - this.state = arrow.failState; - return arrowExpression; - } - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, typeParameters); - } - return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); - } - parseArrow(node) { - if (this.match(14)) { - const result = this.tryParse(() => { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - if (this.canInsertSemicolon()) this.unexpected(); - if (!this.match(19)) this.unexpected(); - return typeNode; - }); - if (result.thrown) return null; - if (result.error) this.state = result.failState; - node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; - } - return super.parseArrow(node); - } - shouldParseArrow(params) { - return this.match(14) || super.shouldParseArrow(params); - } - setArrowFunctionParameters(node, params) { - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - node.params = params; - } else { - super.setArrowFunctionParameters(node, params); - } - } - checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { - if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - return; - } - for (let i = 0; i < node.params.length; i++) { - if (this.isThisParam(node.params[i]) && i > 0) { - this.raise(FlowErrors.ThisParamMustBeFirst, node.params[i]); - } - } - super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged); - } - parseParenAndDistinguishExpression(canBeArrow) { - return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1); - } - parseSubscripts(base, startLoc, noCalls) { - if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startLoc.index) !== -1) { - this.next(); - const node = this.startNodeAt(startLoc); - node.callee = base; - node.arguments = super.parseCallExpressionArguments(11, false); - base = this.finishNode(node, "CallExpression"); - } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) { - const state = this.state.clone(); - const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state); - if (!arrow.error && !arrow.aborted) return arrow.node; - const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state); - if (result.node && !result.error) return result.node; - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; - } - if (result.node) { - this.state = result.failState; - return result.node; - } - throw arrow.error || result.error; - } - return super.parseSubscripts(base, startLoc, noCalls); - } - parseSubscript(base, startLoc, noCalls, subscriptState) { - if (this.match(18) && this.isLookaheadToken_lt()) { - subscriptState.optionalChainMember = true; - if (noCalls) { - subscriptState.stop = true; - return base; - } - this.next(); - const node = this.startNodeAt(startLoc); - node.callee = base; - node.typeArguments = this.flowParseTypeParameterInstantiation(); - this.expect(10); - node.arguments = this.parseCallExpressionArguments(11, false); - node.optional = true; - return this.finishCallExpression(node, true); - } else if (!noCalls && this.shouldParseTypes() && this.match(47)) { - const node = this.startNodeAt(startLoc); - node.callee = base; - const result = this.tryParse(() => { - node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); - this.expect(10); - node.arguments = super.parseCallExpressionArguments(11, false); - if (subscriptState.optionalChainMember) { - node.optional = false; - } - return this.finishCallExpression(node, subscriptState.optionalChainMember); - }); - if (result.node) { - if (result.error) this.state = result.failState; - return result.node; - } - } - return super.parseSubscript(base, startLoc, noCalls, subscriptState); - } - parseNewCallee(node) { - super.parseNewCallee(node); - let targs = null; - if (this.shouldParseTypes() && this.match(47)) { - targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; - } - node.typeArguments = targs; - } - parseAsyncArrowWithTypeParameters(startLoc) { - const node = this.startNodeAt(startLoc); - this.parseFunctionParams(node, false); - if (!this.parseArrow(node)) return; - return super.parseArrowExpression(node, undefined, true); - } - readToken_mult_modulo(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - if (code === 42 && next === 47 && this.state.hasFlowComment) { - this.state.hasFlowComment = false; - this.state.pos += 2; - this.nextToken(); - return; - } - super.readToken_mult_modulo(code); - } - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - if (code === 124 && next === 125) { - this.finishOp(9, 2); - return; - } - super.readToken_pipe_amp(code); - } - parseTopLevel(file, program) { - const fileNode = super.parseTopLevel(file, program); - if (this.state.hasFlowComment) { - this.raise(FlowErrors.UnterminatedFlowComment, this.state.curPosition()); - } - return fileNode; - } - skipBlockComment() { - if (this.hasPlugin("flowComments") && this.skipFlowComment()) { - if (this.state.hasFlowComment) { - throw this.raise(FlowErrors.NestedFlowComment, this.state.startLoc); - } - this.hasFlowCommentCompletion(); - const commentSkip = this.skipFlowComment(); - if (commentSkip) { - this.state.pos += commentSkip; - this.state.hasFlowComment = true; - } - return; - } - return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/"); - } - skipFlowComment() { - const { - pos - } = this.state; - let shiftToFirstNonWhiteSpace = 2; - while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { - shiftToFirstNonWhiteSpace++; - } - const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); - const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); - if (ch2 === 58 && ch3 === 58) { - return shiftToFirstNonWhiteSpace + 2; - } - if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { - return shiftToFirstNonWhiteSpace + 12; - } - if (ch2 === 58 && ch3 !== 58) { - return shiftToFirstNonWhiteSpace; - } - return false; - } - hasFlowCommentCompletion() { - const end = this.input.indexOf("*/", this.state.pos); - if (end === -1) { - throw this.raise(Errors.UnterminatedComment, this.state.curPosition()); - } - } - flowEnumErrorBooleanMemberNotInitialized(loc, { - enumName, - memberName - }) { - this.raise(FlowErrors.EnumBooleanMemberNotInitialized, loc, { - memberName, - enumName - }); - } - flowEnumErrorInvalidMemberInitializer(loc, enumContext) { - return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, loc, enumContext); - } - flowEnumErrorNumberMemberNotInitialized(loc, details) { - this.raise(FlowErrors.EnumNumberMemberNotInitialized, loc, details); - } - flowEnumErrorStringMemberInconsistentlyInitialized(node, details) { - this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, node, details); - } - flowEnumMemberInit() { - const startLoc = this.state.startLoc; - const endOfInit = () => this.match(12) || this.match(8); - switch (this.state.type) { - case 134: - { - const literal = this.parseNumericLiteral(this.state.value); - if (endOfInit()) { - return { - type: "number", - loc: literal.loc.start, - value: literal - }; - } - return { - type: "invalid", - loc: startLoc - }; - } - case 133: - { - const literal = this.parseStringLiteral(this.state.value); - if (endOfInit()) { - return { - type: "string", - loc: literal.loc.start, - value: literal - }; - } - return { - type: "invalid", - loc: startLoc - }; - } - case 85: - case 86: - { - const literal = this.parseBooleanLiteral(this.match(85)); - if (endOfInit()) { - return { - type: "boolean", - loc: literal.loc.start, - value: literal - }; - } - return { - type: "invalid", - loc: startLoc - }; - } - default: - return { - type: "invalid", - loc: startLoc - }; - } - } - flowEnumMemberRaw() { - const loc = this.state.startLoc; - const id = this.parseIdentifier(true); - const init = this.eat(29) ? this.flowEnumMemberInit() : { - type: "none", - loc - }; - return { - id, - init - }; - } - flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) { - const { - explicitType - } = context; - if (explicitType === null) { - return; - } - if (explicitType !== expectedType) { - this.flowEnumErrorInvalidMemberInitializer(loc, context); - } - } - flowEnumMembers({ - enumName, - explicitType - }) { - const seenNames = new Set(); - const members = { - booleanMembers: [], - numberMembers: [], - stringMembers: [], - defaultedMembers: [] - }; - let hasUnknownMembers = false; - while (!this.match(8)) { - if (this.eat(21)) { - hasUnknownMembers = true; - break; - } - const memberNode = this.startNode(); - const { - id, - init - } = this.flowEnumMemberRaw(); - const memberName = id.name; - if (memberName === "") { - continue; - } - if (/^[a-z]/.test(memberName)) { - this.raise(FlowErrors.EnumInvalidMemberName, id, { - memberName, - suggestion: memberName[0].toUpperCase() + memberName.slice(1), - enumName - }); - } - if (seenNames.has(memberName)) { - this.raise(FlowErrors.EnumDuplicateMemberName, id, { - memberName, - enumName - }); - } - seenNames.add(memberName); - const context = { - enumName, - explicitType, - memberName - }; - memberNode.id = id; - switch (init.type) { - case "boolean": - { - this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean"); - memberNode.init = init.value; - members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); - break; - } - case "number": - { - this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number"); - memberNode.init = init.value; - members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); - break; - } - case "string": - { - this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string"); - memberNode.init = init.value; - members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); - break; - } - case "invalid": - { - throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context); - } - case "none": - { - switch (explicitType) { - case "boolean": - this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context); - break; - case "number": - this.flowEnumErrorNumberMemberNotInitialized(init.loc, context); - break; - default: - members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); - } - } - } - if (!this.match(8)) { - this.expect(12); - } - } - return { - members, - hasUnknownMembers - }; - } - flowEnumStringMembers(initializedMembers, defaultedMembers, { - enumName - }) { - if (initializedMembers.length === 0) { - return defaultedMembers; - } else if (defaultedMembers.length === 0) { - return initializedMembers; - } else if (defaultedMembers.length > initializedMembers.length) { - for (const member of initializedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { - enumName - }); - } - return defaultedMembers; - } else { - for (const member of defaultedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitialized(member, { - enumName - }); - } - return initializedMembers; - } - } - flowEnumParseExplicitType({ - enumName - }) { - if (!this.eatContextual(102)) return null; - if (!tokenIsIdentifier(this.state.type)) { - throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, this.state.startLoc, { - enumName - }); - } - const { - value - } = this.state; - this.next(); - if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { - this.raise(FlowErrors.EnumInvalidExplicitType, this.state.startLoc, { - enumName, - invalidEnumType: value - }); - } - return value; - } - flowEnumBody(node, id) { - const enumName = id.name; - const nameLoc = id.loc.start; - const explicitType = this.flowEnumParseExplicitType({ - enumName - }); - this.expect(5); - const { - members, - hasUnknownMembers - } = this.flowEnumMembers({ - enumName, - explicitType - }); - node.hasUnknownMembers = hasUnknownMembers; - switch (explicitType) { - case "boolean": - node.explicitType = true; - node.members = members.booleanMembers; - this.expect(8); - return this.finishNode(node, "EnumBooleanBody"); - case "number": - node.explicitType = true; - node.members = members.numberMembers; - this.expect(8); - return this.finishNode(node, "EnumNumberBody"); - case "string": - node.explicitType = true; - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(8); - return this.finishNode(node, "EnumStringBody"); - case "symbol": - node.members = members.defaultedMembers; - this.expect(8); - return this.finishNode(node, "EnumSymbolBody"); - default: - { - const empty = () => { - node.members = []; - this.expect(8); - return this.finishNode(node, "EnumStringBody"); - }; - node.explicitType = false; - const boolsLen = members.booleanMembers.length; - const numsLen = members.numberMembers.length; - const strsLen = members.stringMembers.length; - const defaultedLen = members.defaultedMembers.length; - if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { - return empty(); - } else if (!boolsLen && !numsLen) { - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(8); - return this.finishNode(node, "EnumStringBody"); - } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, { - enumName, - memberName: member.id.name - }); - } - node.members = members.booleanMembers; - this.expect(8); - return this.finishNode(node, "EnumBooleanBody"); - } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, { - enumName, - memberName: member.id.name - }); - } - node.members = members.numberMembers; - this.expect(8); - return this.finishNode(node, "EnumNumberBody"); - } else { - this.raise(FlowErrors.EnumInconsistentMemberValues, nameLoc, { - enumName - }); - return empty(); - } - } - } - } - flowParseEnumDeclaration(node) { - const id = this.parseIdentifier(); - node.id = id; - node.body = this.flowEnumBody(this.startNode(), id); - return this.finishNode(node, "EnumDeclaration"); - } - isLookaheadToken_lt() { - const next = this.nextTokenStart(); - if (this.input.charCodeAt(next) === 60) { - const afterNext = this.input.charCodeAt(next + 1); - return afterNext !== 60 && afterNext !== 61; - } - return false; - } - maybeUnwrapTypeCastExpression(node) { - return node.type === "TypeCastExpression" ? node.expression : node; - } -}; -const entities = { - __proto__: null, - quot: "\u0022", - amp: "&", - apos: "\u0027", - lt: "<", - gt: ">", - nbsp: "\u00A0", - iexcl: "\u00A1", - cent: "\u00A2", - pound: "\u00A3", - curren: "\u00A4", - yen: "\u00A5", - brvbar: "\u00A6", - sect: "\u00A7", - uml: "\u00A8", - copy: "\u00A9", - ordf: "\u00AA", - laquo: "\u00AB", - not: "\u00AC", - shy: "\u00AD", - reg: "\u00AE", - macr: "\u00AF", - deg: "\u00B0", - plusmn: "\u00B1", - sup2: "\u00B2", - sup3: "\u00B3", - acute: "\u00B4", - micro: "\u00B5", - para: "\u00B6", - middot: "\u00B7", - cedil: "\u00B8", - sup1: "\u00B9", - ordm: "\u00BA", - raquo: "\u00BB", - frac14: "\u00BC", - frac12: "\u00BD", - frac34: "\u00BE", - iquest: "\u00BF", - Agrave: "\u00C0", - Aacute: "\u00C1", - Acirc: "\u00C2", - Atilde: "\u00C3", - Auml: "\u00C4", - Aring: "\u00C5", - AElig: "\u00C6", - Ccedil: "\u00C7", - Egrave: "\u00C8", - Eacute: "\u00C9", - Ecirc: "\u00CA", - Euml: "\u00CB", - Igrave: "\u00CC", - Iacute: "\u00CD", - Icirc: "\u00CE", - Iuml: "\u00CF", - ETH: "\u00D0", - Ntilde: "\u00D1", - Ograve: "\u00D2", - Oacute: "\u00D3", - Ocirc: "\u00D4", - Otilde: "\u00D5", - Ouml: "\u00D6", - times: "\u00D7", - Oslash: "\u00D8", - Ugrave: "\u00D9", - Uacute: "\u00DA", - Ucirc: "\u00DB", - Uuml: "\u00DC", - Yacute: "\u00DD", - THORN: "\u00DE", - szlig: "\u00DF", - agrave: "\u00E0", - aacute: "\u00E1", - acirc: "\u00E2", - atilde: "\u00E3", - auml: "\u00E4", - aring: "\u00E5", - aelig: "\u00E6", - ccedil: "\u00E7", - egrave: "\u00E8", - eacute: "\u00E9", - ecirc: "\u00EA", - euml: "\u00EB", - igrave: "\u00EC", - iacute: "\u00ED", - icirc: "\u00EE", - iuml: "\u00EF", - eth: "\u00F0", - ntilde: "\u00F1", - ograve: "\u00F2", - oacute: "\u00F3", - ocirc: "\u00F4", - otilde: "\u00F5", - ouml: "\u00F6", - divide: "\u00F7", - oslash: "\u00F8", - ugrave: "\u00F9", - uacute: "\u00FA", - ucirc: "\u00FB", - uuml: "\u00FC", - yacute: "\u00FD", - thorn: "\u00FE", - yuml: "\u00FF", - OElig: "\u0152", - oelig: "\u0153", - Scaron: "\u0160", - scaron: "\u0161", - Yuml: "\u0178", - fnof: "\u0192", - circ: "\u02C6", - tilde: "\u02DC", - Alpha: "\u0391", - Beta: "\u0392", - Gamma: "\u0393", - Delta: "\u0394", - Epsilon: "\u0395", - Zeta: "\u0396", - Eta: "\u0397", - Theta: "\u0398", - Iota: "\u0399", - Kappa: "\u039A", - Lambda: "\u039B", - Mu: "\u039C", - Nu: "\u039D", - Xi: "\u039E", - Omicron: "\u039F", - Pi: "\u03A0", - Rho: "\u03A1", - Sigma: "\u03A3", - Tau: "\u03A4", - Upsilon: "\u03A5", - Phi: "\u03A6", - Chi: "\u03A7", - Psi: "\u03A8", - Omega: "\u03A9", - alpha: "\u03B1", - beta: "\u03B2", - gamma: "\u03B3", - delta: "\u03B4", - epsilon: "\u03B5", - zeta: "\u03B6", - eta: "\u03B7", - theta: "\u03B8", - iota: "\u03B9", - kappa: "\u03BA", - lambda: "\u03BB", - mu: "\u03BC", - nu: "\u03BD", - xi: "\u03BE", - omicron: "\u03BF", - pi: "\u03C0", - rho: "\u03C1", - sigmaf: "\u03C2", - sigma: "\u03C3", - tau: "\u03C4", - upsilon: "\u03C5", - phi: "\u03C6", - chi: "\u03C7", - psi: "\u03C8", - omega: "\u03C9", - thetasym: "\u03D1", - upsih: "\u03D2", - piv: "\u03D6", - ensp: "\u2002", - emsp: "\u2003", - thinsp: "\u2009", - zwnj: "\u200C", - zwj: "\u200D", - lrm: "\u200E", - rlm: "\u200F", - ndash: "\u2013", - mdash: "\u2014", - lsquo: "\u2018", - rsquo: "\u2019", - sbquo: "\u201A", - ldquo: "\u201C", - rdquo: "\u201D", - bdquo: "\u201E", - dagger: "\u2020", - Dagger: "\u2021", - bull: "\u2022", - hellip: "\u2026", - permil: "\u2030", - prime: "\u2032", - Prime: "\u2033", - lsaquo: "\u2039", - rsaquo: "\u203A", - oline: "\u203E", - frasl: "\u2044", - euro: "\u20AC", - image: "\u2111", - weierp: "\u2118", - real: "\u211C", - trade: "\u2122", - alefsym: "\u2135", - larr: "\u2190", - uarr: "\u2191", - rarr: "\u2192", - darr: "\u2193", - harr: "\u2194", - crarr: "\u21B5", - lArr: "\u21D0", - uArr: "\u21D1", - rArr: "\u21D2", - dArr: "\u21D3", - hArr: "\u21D4", - forall: "\u2200", - part: "\u2202", - exist: "\u2203", - empty: "\u2205", - nabla: "\u2207", - isin: "\u2208", - notin: "\u2209", - ni: "\u220B", - prod: "\u220F", - sum: "\u2211", - minus: "\u2212", - lowast: "\u2217", - radic: "\u221A", - prop: "\u221D", - infin: "\u221E", - ang: "\u2220", - and: "\u2227", - or: "\u2228", - cap: "\u2229", - cup: "\u222A", - int: "\u222B", - there4: "\u2234", - sim: "\u223C", - cong: "\u2245", - asymp: "\u2248", - ne: "\u2260", - equiv: "\u2261", - le: "\u2264", - ge: "\u2265", - sub: "\u2282", - sup: "\u2283", - nsub: "\u2284", - sube: "\u2286", - supe: "\u2287", - oplus: "\u2295", - otimes: "\u2297", - perp: "\u22A5", - sdot: "\u22C5", - lceil: "\u2308", - rceil: "\u2309", - lfloor: "\u230A", - rfloor: "\u230B", - lang: "\u2329", - rang: "\u232A", - loz: "\u25CA", - spades: "\u2660", - clubs: "\u2663", - hearts: "\u2665", - diams: "\u2666" -}; -const JsxErrors = ParseErrorEnum`jsx`({ - AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", - MissingClosingTagElement: ({ - openingTagName - }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`, - MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", - UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", - UnexpectedToken: ({ - unexpected, - HTMLEntity - }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`, - UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", - UnterminatedJsxContent: "Unterminated JSX contents.", - UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" -}); -function isFragment(object) { - return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; -} -function getQualifiedJSXName(object) { - if (object.type === "JSXIdentifier") { - return object.name; - } - if (object.type === "JSXNamespacedName") { - return object.namespace.name + ":" + object.name.name; - } - if (object.type === "JSXMemberExpression") { - return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); - } - throw new Error("Node had unexpected type: " + object.type); -} -var jsx = superClass => class JSXParserMixin extends superClass { - jsxReadToken() { - let out = ""; - let chunkStart = this.state.pos; - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(JsxErrors.UnterminatedJsxContent, this.state.startLoc); - } - const ch = this.input.charCodeAt(this.state.pos); - switch (ch) { - case 60: - case 123: - if (this.state.pos === this.state.start) { - if (ch === 60 && this.state.canStartJSXElement) { - ++this.state.pos; - this.finishToken(142); - } else { - super.getTokenFromCode(ch); - } - return; - } - out += this.input.slice(chunkStart, this.state.pos); - this.finishToken(141, out); - return; - case 38: - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - break; - case 62: - case 125: - default: - if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(true); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - } - } - jsxReadNewLine(normalizeCRLF) { - const ch = this.input.charCodeAt(this.state.pos); - let out; - ++this.state.pos; - if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - out = normalizeCRLF ? "\n" : "\r\n"; - } else { - out = String.fromCharCode(ch); - } - ++this.state.curLine; - this.state.lineStart = this.state.pos; - return out; - } - jsxReadString(quote) { - let out = ""; - let chunkStart = ++this.state.pos; - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(Errors.UnterminatedString, this.state.startLoc); - } - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; - if (ch === 38) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(false); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - out += this.input.slice(chunkStart, this.state.pos++); - this.finishToken(133, out); - } - jsxReadEntity() { - const startPos = ++this.state.pos; - if (this.codePointAtPos(this.state.pos) === 35) { - ++this.state.pos; - let radix = 10; - if (this.codePointAtPos(this.state.pos) === 120) { - radix = 16; - ++this.state.pos; - } - const codePoint = this.readInt(radix, undefined, false, "bail"); - if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) { - ++this.state.pos; - return String.fromCodePoint(codePoint); - } - } else { - let count = 0; - let semi = false; - while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) == 59)) { - ++this.state.pos; - } - if (semi) { - const desc = this.input.slice(startPos, this.state.pos); - const entity = entities[desc]; - ++this.state.pos; - if (entity) { - return entity; - } - } - } - this.state.pos = startPos; - return "&"; - } - jsxReadWord() { - let ch; - const start = this.state.pos; - do { - ch = this.input.charCodeAt(++this.state.pos); - } while (isIdentifierChar(ch) || ch === 45); - this.finishToken(140, this.input.slice(start, this.state.pos)); - } - jsxParseIdentifier() { - const node = this.startNode(); - if (this.match(140)) { - node.name = this.state.value; - } else if (tokenIsKeyword(this.state.type)) { - node.name = tokenLabelName(this.state.type); - } else { - this.unexpected(); - } - this.next(); - return this.finishNode(node, "JSXIdentifier"); - } - jsxParseNamespacedName() { - const startLoc = this.state.startLoc; - const name = this.jsxParseIdentifier(); - if (!this.eat(14)) return name; - const node = this.startNodeAt(startLoc); - node.namespace = name; - node.name = this.jsxParseIdentifier(); - return this.finishNode(node, "JSXNamespacedName"); - } - jsxParseElementName() { - const startLoc = this.state.startLoc; - let node = this.jsxParseNamespacedName(); - if (node.type === "JSXNamespacedName") { - return node; - } - while (this.eat(16)) { - const newNode = this.startNodeAt(startLoc); - newNode.object = node; - newNode.property = this.jsxParseIdentifier(); - node = this.finishNode(newNode, "JSXMemberExpression"); - } - return node; - } - jsxParseAttributeValue() { - let node; - switch (this.state.type) { - case 5: - node = this.startNode(); - this.setContext(types.brace); - this.next(); - node = this.jsxParseExpressionContainer(node, types.j_oTag); - if (node.expression.type === "JSXEmptyExpression") { - this.raise(JsxErrors.AttributeIsEmpty, node); - } - return node; - case 142: - case 133: - return this.parseExprAtom(); - default: - throw this.raise(JsxErrors.UnsupportedJsxValue, this.state.startLoc); - } - } - jsxParseEmptyExpression() { - const node = this.startNodeAt(this.state.lastTokEndLoc); - return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc); - } - jsxParseSpreadChild(node) { - this.next(); - node.expression = this.parseExpression(); - this.setContext(types.j_expr); - this.state.canStartJSXElement = true; - this.expect(8); - return this.finishNode(node, "JSXSpreadChild"); - } - jsxParseExpressionContainer(node, previousContext) { - if (this.match(8)) { - node.expression = this.jsxParseEmptyExpression(); - } else { - const expression = this.parseExpression(); - node.expression = expression; - } - this.setContext(previousContext); - this.state.canStartJSXElement = true; - this.expect(8); - return this.finishNode(node, "JSXExpressionContainer"); - } - jsxParseAttribute() { - const node = this.startNode(); - if (this.match(5)) { - this.setContext(types.brace); - this.next(); - this.expect(21); - node.argument = this.parseMaybeAssignAllowIn(); - this.setContext(types.j_oTag); - this.state.canStartJSXElement = true; - this.expect(8); - return this.finishNode(node, "JSXSpreadAttribute"); - } - node.name = this.jsxParseNamespacedName(); - node.value = this.eat(29) ? this.jsxParseAttributeValue() : null; - return this.finishNode(node, "JSXAttribute"); - } - jsxParseOpeningElementAt(startLoc) { - const node = this.startNodeAt(startLoc); - if (this.eat(143)) { - return this.finishNode(node, "JSXOpeningFragment"); - } - node.name = this.jsxParseElementName(); - return this.jsxParseOpeningElementAfterName(node); - } - jsxParseOpeningElementAfterName(node) { - const attributes = []; - while (!this.match(56) && !this.match(143)) { - attributes.push(this.jsxParseAttribute()); - } - node.attributes = attributes; - node.selfClosing = this.eat(56); - this.expect(143); - return this.finishNode(node, "JSXOpeningElement"); - } - jsxParseClosingElementAt(startLoc) { - const node = this.startNodeAt(startLoc); - if (this.eat(143)) { - return this.finishNode(node, "JSXClosingFragment"); - } - node.name = this.jsxParseElementName(); - this.expect(143); - return this.finishNode(node, "JSXClosingElement"); - } - jsxParseElementAt(startLoc) { - const node = this.startNodeAt(startLoc); - const children = []; - const openingElement = this.jsxParseOpeningElementAt(startLoc); - let closingElement = null; - if (!openingElement.selfClosing) { - contents: for (;;) { - switch (this.state.type) { - case 142: - startLoc = this.state.startLoc; - this.next(); - if (this.eat(56)) { - closingElement = this.jsxParseClosingElementAt(startLoc); - break contents; - } - children.push(this.jsxParseElementAt(startLoc)); - break; - case 141: - children.push(this.parseExprAtom()); - break; - case 5: - { - const node = this.startNode(); - this.setContext(types.brace); - this.next(); - if (this.match(21)) { - children.push(this.jsxParseSpreadChild(node)); - } else { - children.push(this.jsxParseExpressionContainer(node, types.j_expr)); - } - break; - } - default: - this.unexpected(); - } - } - if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) { - this.raise(JsxErrors.MissingClosingTagFragment, closingElement); - } else if (!isFragment(openingElement) && isFragment(closingElement)) { - this.raise(JsxErrors.MissingClosingTagElement, closingElement, { - openingTagName: getQualifiedJSXName(openingElement.name) - }); - } else if (!isFragment(openingElement) && !isFragment(closingElement)) { - if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { - this.raise(JsxErrors.MissingClosingTagElement, closingElement, { - openingTagName: getQualifiedJSXName(openingElement.name) - }); - } - } - } - if (isFragment(openingElement)) { - node.openingFragment = openingElement; - node.closingFragment = closingElement; - } else { - node.openingElement = openingElement; - node.closingElement = closingElement; - } - node.children = children; - if (this.match(47)) { - throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, this.state.startLoc); - } - return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); - } - jsxParseElement() { - const startLoc = this.state.startLoc; - this.next(); - return this.jsxParseElementAt(startLoc); - } - setContext(newContext) { - const { - context - } = this.state; - context[context.length - 1] = newContext; - } - parseExprAtom(refExpressionErrors) { - if (this.match(141)) { - return this.parseLiteral(this.state.value, "JSXText"); - } else if (this.match(142)) { - return this.jsxParseElement(); - } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) { - this.replaceToken(142); - return this.jsxParseElement(); - } else { - return super.parseExprAtom(refExpressionErrors); - } - } - skipSpace() { - const curContext = this.curContext(); - if (!curContext.preserveSpace) super.skipSpace(); - } - getTokenFromCode(code) { - const context = this.curContext(); - if (context === types.j_expr) { - this.jsxReadToken(); - return; - } - if (context === types.j_oTag || context === types.j_cTag) { - if (isIdentifierStart(code)) { - this.jsxReadWord(); - return; - } - if (code === 62) { - ++this.state.pos; - this.finishToken(143); - return; - } - if ((code === 34 || code === 39) && context === types.j_oTag) { - this.jsxReadString(code); - return; - } - } - if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) { - ++this.state.pos; - this.finishToken(142); - return; - } - super.getTokenFromCode(code); - } - updateContext(prevType) { - const { - context, - type - } = this.state; - if (type === 56 && prevType === 142) { - context.splice(-2, 2, types.j_cTag); - this.state.canStartJSXElement = false; - } else if (type === 142) { - context.push(types.j_oTag); - } else if (type === 143) { - const out = context[context.length - 1]; - if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) { - context.pop(); - this.state.canStartJSXElement = context[context.length - 1] === types.j_expr; - } else { - this.setContext(types.j_expr); - this.state.canStartJSXElement = true; - } - } else { - this.state.canStartJSXElement = tokenComesBeforeExpression(type); - } - } -}; -class TypeScriptScope extends Scope { - constructor(...args) { - super(...args); - this.tsNames = new Map(); - } -} -class TypeScriptScopeHandler extends ScopeHandler { - constructor(...args) { - super(...args); - this.importsStack = []; - } - createScope(flags) { - this.importsStack.push(new Set()); - return new TypeScriptScope(flags); - } - enter(flags) { - if (flags == 256) { - this.importsStack.push(new Set()); - } - super.enter(flags); - } - exit() { - const flags = super.exit(); - if (flags == 256) { - this.importsStack.pop(); - } - return flags; - } - hasImport(name, allowShadow) { - const len = this.importsStack.length; - if (this.importsStack[len - 1].has(name)) { - return true; - } - if (!allowShadow && len > 1) { - for (let i = 0; i < len - 1; i++) { - if (this.importsStack[i].has(name)) return true; - } - } - return false; - } - declareName(name, bindingType, loc) { - if (bindingType & 4096) { - if (this.hasImport(name, true)) { - this.parser.raise(Errors.VarRedeclaration, loc, { - identifierName: name - }); - } - this.importsStack[this.importsStack.length - 1].add(name); - return; - } - const scope = this.currentScope(); - let type = scope.tsNames.get(name) || 0; - if (bindingType & 1024) { - this.maybeExportDefined(scope, name); - scope.tsNames.set(name, type | 16); - return; - } - super.declareName(name, bindingType, loc); - if (bindingType & 2) { - if (!(bindingType & 1)) { - this.checkRedeclarationInScope(scope, name, bindingType, loc); - this.maybeExportDefined(scope, name); - } - type = type | 1; - } - if (bindingType & 256) { - type = type | 2; - } - if (bindingType & 512) { - type = type | 4; - } - if (bindingType & 128) { - type = type | 8; - } - if (type) scope.tsNames.set(name, type); - } - isRedeclaredInScope(scope, name, bindingType) { - const type = scope.tsNames.get(name); - if ((type & 2) > 0) { - if (bindingType & 256) { - const isConst = !!(bindingType & 512); - const wasConst = (type & 4) > 0; - return isConst !== wasConst; - } - return true; - } - if (bindingType & 128 && (type & 8) > 0) { - if (scope.names.get(name) & 2) { - return !!(bindingType & 1); - } else { - return false; - } - } - if (bindingType & 2 && (type & 1) > 0) { - return true; - } - return super.isRedeclaredInScope(scope, name, bindingType); - } - checkLocalExport(id) { + cloneIdentifier(node) { const { + type, + start, + end, + loc, + range, name - } = id; - if (this.hasImport(name)) return; - const len = this.scopeStack.length; - for (let i = len - 1; i >= 0; i--) { - const scope = this.scopeStack[i]; - const type = scope.tsNames.get(name); - if ((type & 1) > 0 || (type & 16) > 0) { - return; - } - } - super.checkLocalExport(id); + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.name = name; + if (node.extra) cloned.extra = node.extra; + return cloned; + } + cloneStringLiteral(node) { + const { + type, + start, + end, + loc, + range, + extra + } = node; + const cloned = Object.create(NodePrototype); + cloned.type = type; + cloned.start = start; + cloned.end = end; + cloned.loc = loc; + cloned.range = range; + cloned.extra = extra; + cloned.value = node.value; + return cloned; } } -const getOwn$1 = (object, key) => Object.hasOwnProperty.call(object, key) && object[key]; const unwrapParenthesizedExpression = node => { return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; }; @@ -7004,7 +7175,7 @@ class LValParser extends NodeUtils { if (isLHS) { if (parenthesized.type === "Identifier") { this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, node); - } else if (parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { + } else if (parenthesized.type !== "CallExpression" && parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) { this.raise(Errors.InvalidParenthesizedAssignment, node); } } else { @@ -7017,9 +7188,10 @@ class LValParser extends NodeUtils { case "ArrayPattern": case "AssignmentPattern": case "RestElement": + case "VoidPattern": break; case "ObjectExpression": - node.type = "ObjectPattern"; + this.castNodeTo(node, "ObjectPattern"); for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { var _node$extra2; const prop = node.properties[i]; @@ -7047,15 +7219,18 @@ class LValParser extends NodeUtils { throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller."); } case "ArrayExpression": - node.type = "ArrayPattern"; + this.castNodeTo(node, "ArrayPattern"); this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS); break; case "AssignmentExpression": if (node.operator !== "=") { this.raise(Errors.MissingEqInAssignment, node.left.loc.end); } - node.type = "AssignmentPattern"; + this.castNodeTo(node, "AssignmentPattern"); delete node.operator; + if (node.left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, node.left); + } this.toAssignable(node.left, isLHS); break; case "ParenthesizedExpression": @@ -7067,7 +7242,7 @@ class LValParser extends NodeUtils { if (prop.type === "ObjectMethod") { this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, prop.key); } else if (prop.type === "SpreadElement") { - prop.type = "RestElement"; + this.castNodeTo(prop, "RestElement"); const arg = prop.argument; this.checkToRestConversion(arg, false); this.toAssignable(arg, isLHS); @@ -7083,14 +7258,7 @@ class LValParser extends NodeUtils { for (let i = 0; i <= end; i++) { const elt = exprList[i]; if (!elt) continue; - if (elt.type === "SpreadElement") { - elt.type = "RestElement"; - const arg = elt.argument; - this.checkToRestConversion(arg, true); - this.toAssignable(arg, isLHS); - } else { - this.toAssignable(elt, isLHS); - } + this.toAssignableListItem(exprList, i, isLHS); if (elt.type === "RestElement") { if (i < end) { this.raise(Errors.RestTrailingComma, elt); @@ -7100,6 +7268,17 @@ class LValParser extends NodeUtils { } } } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "SpreadElement") { + this.castNodeTo(node, "RestElement"); + const arg = node.argument; + this.checkToRestConversion(arg, true); + this.toAssignable(arg, isLHS); + } else { + this.toAssignable(node, isLHS); + } + } isAssignable(node, isBinding) { switch (node.type) { case "Identifier": @@ -7107,6 +7286,7 @@ class LValParser extends NodeUtils { case "ArrayPattern": case "AssignmentPattern": case "RestElement": + case "VoidPattern": return true; case "ObjectExpression": { @@ -7152,7 +7332,11 @@ class LValParser extends NodeUtils { parseRestBinding() { const node = this.startNode(); this.next(); - node.argument = this.parseBindingAtom(); + const argument = this.parseBindingAtom(); + if (argument.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, argument); + } + node.argument = argument; return this.finishNode(node, "RestElement"); } parseBindingAtom() { @@ -7166,6 +7350,8 @@ class LValParser extends NodeUtils { } case 5: return this.parseObjectLike(8, true); + case 88: + return this.parseVoidPattern(null); } return this.parseIdentifier(); } @@ -7184,39 +7370,51 @@ class LValParser extends NodeUtils { } else if (this.eat(close)) { break; } else if (this.match(21)) { - elts.push(this.parseAssignableListItemTypes(this.parseRestBinding(), flags)); + let rest = this.parseRestBinding(); + if (this.hasPlugin("flow") || flags & 2) { + rest = this.parseFunctionParamType(rest); + } + elts.push(rest); if (!this.checkCommaAfterRest(closeCharCode)) { this.expect(close); break; } } else { const decorators = []; - if (this.match(26) && this.hasPlugin("decorators")) { - this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + if (flags & 2) { + if (this.match(26) && this.hasPlugin("decorators")) { + this.raise(Errors.UnsupportedParameterDecorator, this.state.startLoc); + } + while (this.match(26)) { + decorators.push(this.parseDecorator()); + } } - while (this.match(26)) { - decorators.push(this.parseDecorator()); - } - elts.push(this.parseAssignableListItem(flags, decorators)); + elts.push(this.parseBindingElement(flags, decorators)); } } return elts; } parseBindingRestProperty(prop) { this.next(); - prop.argument = this.parseIdentifier(); + if (this.hasPlugin("discardBinding") && this.match(88)) { + prop.argument = this.parseVoidPattern(null); + this.raise(Errors.UnexpectedVoidPattern, prop.argument); + } else { + prop.argument = this.parseIdentifier(); + } this.checkCommaAfterRest(125); return this.finishNode(prop, "RestElement"); } parseBindingProperty() { - const prop = this.startNode(); const { type, startLoc } = this.state; if (type === 21) { - return this.parseBindingRestProperty(prop); - } else if (type === 138) { + return this.parseBindingRestProperty(this.startNode()); + } + const prop = this.startNode(); + if (type === 139) { this.expectPlugin("destructuringPrivate", startLoc); this.classScope.usePrivateName(this.state.value, startLoc); prop.key = this.parsePrivateName(); @@ -7226,48 +7424,60 @@ class LValParser extends NodeUtils { prop.method = false; return this.parseObjPropValue(prop, startLoc, false, false, true, false); } - parseAssignableListItem(flags, decorators) { + parseBindingElement(flags, decorators) { const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left, flags); - const elt = this.parseMaybeDefault(left.loc.start, left); + if (this.hasPlugin("flow") || flags & 2) { + this.parseFunctionParamType(left); + } if (decorators.length) { left.decorators = decorators; + this.resetStartLocationFromNode(left, decorators[0]); } + const elt = this.parseMaybeDefault(left.loc.start, left); return elt; } - parseAssignableListItemTypes(param, flags) { + parseFunctionParamType(param) { return param; } parseMaybeDefault(startLoc, left) { - var _startLoc, _left; - (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc; - left = (_left = left) != null ? _left : this.parseBindingAtom(); + startLoc != null ? startLoc : startLoc = this.state.startLoc; + left = left != null ? left : this.parseBindingAtom(); if (!this.eat(29)) return left; const node = this.startNodeAt(startLoc); + if (left.type === "VoidPattern") { + this.raise(Errors.VoidPatternInitializer, left); + } node.left = left; node.right = this.parseMaybeAssignAllowIn(); return this.finishNode(node, "AssignmentPattern"); } - isValidLVal(type, isUnparenthesizedInAssign, binding) { - return getOwn$1({ - AssignmentPattern: "left", - RestElement: "argument", - ObjectProperty: "value", - ParenthesizedExpression: "expression", - ArrayPattern: "elements", - ObjectPattern: "properties" - }, type); + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "AssignmentPattern": + return "left"; + case "RestElement": + return "argument"; + case "ObjectProperty": + return "value"; + case "ParenthesizedExpression": + return "expression"; + case "ArrayPattern": + return "elements"; + case "ObjectPattern": + return "properties"; + case "VoidPattern": + return true; + case "CallExpression": + if (!disallowCallExpression && !this.state.strict && this.optionFlags & 8192) { + return true; + } + } + return false; } isOptionalMemberExpression(expression) { return expression.type === "OptionalMemberExpression"; } - checkLVal(expression, { - in: ancestor, - binding = 64, - checkClashes = false, - strictModeChanged = false, - hasParenthesizedAncestor = false - }) { + checkLVal(expression, ancestor, binding = 64, checkClashes = false, strictModeChanged = false, hasParenthesizedAncestor = false, disallowCallExpression = false) { var _expression$extra; const type = expression.type; if (this.isObjectMethod(expression)) return; @@ -7299,8 +7509,12 @@ class LValParser extends NodeUtils { } } return; + } else if (type === "VoidPattern" && ancestor.type === "CatchClause") { + this.raise(Errors.VoidPatternCatchClauseParam, expression); } - const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); + const unwrappedExpression = unwrapParenthesizedExpression(expression); + disallowCallExpression || (disallowCallExpression = unwrappedExpression.type === "CallExpression" && (unwrappedExpression.callee.type === "Import" || unwrappedExpression.callee.type === "Super")); + const validity = this.isValidLVal(type, disallowCallExpression, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding); if (validity === true) return; if (validity === false) { const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding; @@ -7309,20 +7523,25 @@ class LValParser extends NodeUtils { }); return; } - const [key, isParenthesizedExpression] = Array.isArray(validity) ? validity : [validity, type === "ParenthesizedExpression"]; + let key, isParenthesizedExpression; + if (typeof validity === "string") { + key = validity; + isParenthesizedExpression = type === "ParenthesizedExpression"; + } else { + [key, isParenthesizedExpression] = validity; + } const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? { type } : ancestor; - for (const child of [].concat(expression[key])) { - if (child) { - this.checkLVal(child, { - in: nextAncestor, - binding, - checkClashes, - strictModeChanged, - hasParenthesizedAncestor: isParenthesizedExpression - }); + const val = expression[key]; + if (Array.isArray(val)) { + for (const child of val) { + if (child) { + this.checkLVal(child, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, true); + } } + } else if (val) { + this.checkLVal(val, nextAncestor, binding, checkClashes, strictModeChanged, isParenthesizedExpression, disallowCallExpression); } } checkIdentifier(at, bindingType, strictModeChanged = false) { @@ -7370,7 +7589,7 @@ class LValParser extends NodeUtils { return true; } } -const getOwn = (object, key) => Object.hasOwnProperty.call(object, key) && object[key]; +const keywordAndTSRelationalOperator = /in(?:stanceof)?|as|satisfies/y; function nonNull(x) { if (x == null) { throw new Error(`Unexpected ${x} value.`); @@ -7389,12 +7608,12 @@ const TSErrors = ParseErrorEnum`typescript`({ AbstractPropertyHasInitializer: ({ propertyName }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`, - AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", - AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.", AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.", + AccessorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", + AccessorCannotHaveTypeParameters: "An accessor cannot have type parameters.", ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", - ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", + ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.", ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", DeclareAccessor: ({ kind @@ -7403,7 +7622,7 @@ const TSErrors = ParseErrorEnum`typescript`({ DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", DuplicateAccessibilityModifier: ({ modifier - }) => `Accessibility modifier already seen.`, + }) => `Accessibility modifier already seen: '${modifier}'.`, DuplicateModifier: ({ modifier }) => `Duplicate modifier: '${modifier}'.`, @@ -7426,6 +7645,10 @@ const TSErrors = ParseErrorEnum`typescript`({ IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.", + InvalidHeritageClauseType: ({ + token + }) => `'${token}' list can only include identifiers or qualified-names with optional type arguments.`, + InvalidModifierOnAwaitUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on an await using declaration.`, InvalidModifierOnTypeMember: ({ modifier }) => `'${modifier}' modifier cannot appear on a type member.`, @@ -7435,6 +7658,7 @@ const TSErrors = ParseErrorEnum`typescript`({ InvalidModifierOnTypeParameterPositions: ({ modifier }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`, + InvalidModifierOnUsingDeclaration: modifier => `'${modifier}' modifier cannot appear on a using declaration.`, InvalidModifiersOrder: ({ orderedModifiers }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`, @@ -7442,7 +7666,7 @@ const TSErrors = ParseErrorEnum`typescript`({ InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", MissingInterfaceName: "'interface' declarations must be followed by an identifier.", NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", - NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", + NonClassMethodPropertyHasAbstractModifier: "'abstract' modifier can only appear on a class, method, or property declaration.", OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", @@ -7453,9 +7677,9 @@ const TSErrors = ParseErrorEnum`typescript`({ ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.", ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.", - SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", - SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", - SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", + SetAccessorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", + SetAccessorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", + SetAccessorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", SingleTypeParameterWithoutTrailingComma: ({ typeParameterName }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`, @@ -7473,7 +7697,8 @@ const TSErrors = ParseErrorEnum`typescript`({ UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", UnsupportedSignatureParameterKind: ({ type - }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.` + }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`, + UsingDeclarationInAmbientContext: kind => `'${kind}' declarations are not allowed in ambient contexts.` }); function keywordTypeFromName(value) { switch (value) { @@ -7533,18 +7758,31 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return tokenIsIdentifier(this.state.type); } tsTokenCanFollowModifier() { - return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); + return this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(139) || this.isLiteralPropertyName(); } - tsNextTokenCanFollowModifier() { + tsNextTokenOnSameLineAndCanFollowModifier() { this.next(); + if (this.hasPrecedingLineBreak()) { + return false; + } return this.tsTokenCanFollowModifier(); } - tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) { + tsNextTokenCanFollowModifier() { + if (this.match(106)) { + this.next(); + return this.tsTokenCanFollowModifier(); + } + return this.tsNextTokenOnSameLineAndCanFollowModifier(); + } + tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock, hasSeenStaticModifier) { if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) { return undefined; } const modifier = this.state.value; - if (allowedModifiers.indexOf(modifier) !== -1) { + if (allowedModifiers.includes(modifier)) { + if (hasSeenStaticModifier && this.match(106)) { + return undefined; + } if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { return undefined; } @@ -7578,7 +7816,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const { startLoc } = this.state; - const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock); + const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock, modified.static); if (!modifier) break; if (tsIsAccessModifier(modifier)) { if (modified.accessibility) { @@ -7600,7 +7838,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { modified[modifier] = true; enforceOrder(startLoc, modifier, "in", "out"); } else { - if (Object.hasOwnProperty.call(modified, modifier)) { + if (hasOwnProperty.call(modified, modifier)) { this.raise(TSErrors.DuplicateModifier, startLoc, { modifier }); @@ -7694,32 +7932,86 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const node = this.startNode(); this.expect(83); this.expect(10); - if (!this.match(133)) { + if (!this.match(134)) { this.raise(TSErrors.UnsupportedImportTypeArgument, this.state.startLoc); + node.argument = super.parseExprAtom(); + } else { + node.argument = this.parseStringLiteral(this.state.value); + } + if (this.eat(12)) { + node.options = this.tsParseImportTypeOptions(); + } else { + node.options = null; } - node.argument = super.parseExprAtom(); this.expect(11); if (this.eat(16)) { - node.qualifier = this.tsParseEntityName(); + node.qualifier = this.tsParseEntityName(1 | 2); } if (this.match(47)) { node.typeParameters = this.tsParseTypeArguments(); } return this.finishNode(node, "TSImportType"); } - tsParseEntityName(allowReservedWords = true) { - let entity = this.parseIdentifier(allowReservedWords); + tsParseImportTypeOptions() { + const node = this.startNode(); + this.expect(5); + const withProperty = this.startNode(); + if (this.isContextual(76)) { + withProperty.method = false; + withProperty.key = this.parseIdentifier(true); + withProperty.computed = false; + withProperty.shorthand = false; + } else { + this.unexpected(null, 76); + } + this.expect(14); + withProperty.value = this.tsParseImportTypeWithPropertyValue(); + node.properties = [this.finishObjectProperty(withProperty)]; + this.eat(12); + this.expect(8); + return this.finishNode(node, "ObjectExpression"); + } + tsParseImportTypeWithPropertyValue() { + const node = this.startNode(); + const properties = []; + this.expect(5); + while (!this.match(8)) { + const type = this.state.type; + if (tokenIsIdentifier(type) || type === 134) { + properties.push(super.parsePropertyDefinition(null)); + } else { + this.unexpected(); + } + this.eat(12); + } + node.properties = properties; + this.next(); + return this.finishNode(node, "ObjectExpression"); + } + tsParseEntityName(flags) { + let entity; + if (flags & 1 && this.match(78)) { + if (flags & 2) { + entity = this.parseIdentifier(true); + } else { + const node = this.startNode(); + this.next(); + entity = this.finishNode(node, "ThisExpression"); + } + } else { + entity = this.parseIdentifier(!!(flags & 1)); + } while (this.eat(16)) { const node = this.startNodeAtNode(entity); node.left = entity; - node.right = this.parseIdentifier(allowReservedWords); + node.right = this.parseIdentifier(!!(flags & 1)); entity = this.finishNode(node, "TSQualifiedName"); } return entity; } tsParseTypeReference() { const node = this.startNode(); - node.typeName = this.tsParseEntityName(); + node.typeName = this.tsParseEntityName(1); if (!this.hasPrecedingLineBreak() && this.match(47)) { node.typeParameters = this.tsParseTypeArguments(); } @@ -7744,7 +8036,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.match(83)) { node.exprName = this.tsParseImportType(); } else { - node.exprName = this.tsParseEntityName(); + node.exprName = this.tsParseEntityName(1 | 2); } if (!this.hasPrecedingLineBreak() && this.match(47)) { node.typeParameters = this.tsParseTypeArguments(); @@ -7766,7 +8058,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseTypeParameters(parseModifiers) { const node = this.startNode(); - if (this.match(47) || this.match(142)) { + if (this.match(47) || this.match(143)) { this.next(); } else { this.unexpected(); @@ -7845,14 +8137,13 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParsePropertyOrMethodSignature(node, readonly) { if (this.eat(17)) node.optional = true; - const nodeAny = node; if (this.match(10) || this.match(47)) { if (readonly) { this.raise(TSErrors.ReadonlyForMethodSignature, node); } - const method = nodeAny; + const method = node; if (method.kind && this.match(47)) { - this.raise(TSErrors.AccesorCannotHaveTypeParameters, this.state.curPosition()); + this.raise(TSErrors.AccessorCannotHaveTypeParameters, this.state.curPosition()); } this.tsFillSignature(14, method); this.tsParseTypeMemberSemicolon(); @@ -7862,7 +8153,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (method[paramsKey].length > 0) { this.raise(Errors.BadGetterArity, this.state.curPosition()); if (this.isThisParam(method[paramsKey][0])) { - this.raise(TSErrors.AccesorCannotDeclareThisParameter, this.state.curPosition()); + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); } } } else if (method.kind === "set") { @@ -7871,24 +8162,24 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } else { const firstParameter = method[paramsKey][0]; if (this.isThisParam(firstParameter)) { - this.raise(TSErrors.AccesorCannotDeclareThisParameter, this.state.curPosition()); + this.raise(TSErrors.AccessorCannotDeclareThisParameter, this.state.curPosition()); } if (firstParameter.type === "Identifier" && firstParameter.optional) { - this.raise(TSErrors.SetAccesorCannotHaveOptionalParameter, this.state.curPosition()); + this.raise(TSErrors.SetAccessorCannotHaveOptionalParameter, this.state.curPosition()); } if (firstParameter.type === "RestElement") { - this.raise(TSErrors.SetAccesorCannotHaveRestParameter, this.state.curPosition()); + this.raise(TSErrors.SetAccessorCannotHaveRestParameter, this.state.curPosition()); } } if (method[returnTypeKey]) { - this.raise(TSErrors.SetAccesorCannotHaveReturnType, method[returnTypeKey]); + this.raise(TSErrors.SetAccessorCannotHaveReturnType, method[returnTypeKey]); } } else { method.kind = "method"; } return this.finishNode(method, "TSMethodSignature"); } else { - const property = nodeAny; + const property = node; if (readonly) property.readonly = true; const type = this.tsTryParseTypeAnnotation(); if (type) property.typeAnnotation = type; @@ -7923,6 +8214,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { node.kind = node.key.name; super.parsePropertyName(node); + if (!this.match(10) && !this.match(47)) { + this.unexpected(null, 10); + } } return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); } @@ -7955,12 +8249,6 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.next(); return this.match(58); } - tsParseMappedTypeParameter() { - const node = this.startNode(); - node.name = this.tsParseTypeParameterName(); - node.constraint = this.tsExpectThenParseType(58); - return this.finishNode(node, "TSTypeParameter"); - } tsParseMappedType() { const node = this.startNode(); this.expect(5); @@ -7972,7 +8260,10 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { node.readonly = true; } this.expect(0); - node.typeParameter = this.tsParseMappedTypeParameter(); + const typeParameter = this.startNode(); + typeParameter.name = this.tsParseTypeParameterName(); + typeParameter.constraint = this.tsExpectThenParseType(58); + node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); node.nameType = this.eatContextual(93) ? this.tsParseType() : null; this.expect(3); if (this.match(53)) { @@ -8003,10 +8294,11 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishNode(node, "TSTupleType"); } tsParseTupleElementType() { + const restStartLoc = this.state.startLoc; + const rest = this.eat(21); const { startLoc } = this.state; - const rest = this.eat(21); let labeled; let label; let optional; @@ -8021,7 +8313,6 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { type = this.tsParseType(); } else if (chAfterWord === 63) { optional = true; - const startLoc = this.state.startLoc; const wordName = this.state.value; const typeOrLabel = this.tsParseNonArrayType(); if (this.lookaheadCharCode() === 58) { @@ -8043,7 +8334,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (labeled) { let labeledNode; if (label) { - labeledNode = this.startNodeAtNode(label); + labeledNode = this.startNodeAt(startLoc); labeledNode.optional = optional; labeledNode.label = label; labeledNode.elementType = type; @@ -8052,7 +8343,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.raise(TSErrors.TupleOptionalAfterType, this.state.lastTokStartLoc); } } else { - labeledNode = this.startNodeAtNode(type); + labeledNode = this.startNodeAt(startLoc); labeledNode.optional = optional; this.raise(TSErrors.InvalidTupleMemberLabel, type); labeledNode.label = type; @@ -8060,12 +8351,12 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } type = this.finishNode(labeledNode, "TSNamedTupleMember"); } else if (optional) { - const optionalTypeNode = this.startNodeAtNode(type); + const optionalTypeNode = this.startNodeAt(startLoc); optionalTypeNode.typeAnnotation = type; type = this.finishNode(optionalTypeNode, "TSOptionalType"); } if (rest) { - const restNode = this.startNodeAt(startLoc); + const restNode = this.startNodeAt(restStartLoc); restNode.typeAnnotation = type; type = this.finishNode(restNode, "TSRestType"); } @@ -8091,9 +8382,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { tsParseLiteralTypeNode() { const node = this.startNode(); switch (this.state.type) { - case 134: case 135: - case 133: + case 136: + case 134: case 85: case 86: node.literal = super.parseExprAtom(); @@ -8122,9 +8413,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseNonArrayType() { switch (this.state.type) { - case 133: case 134: case 135: + case 136: case 85: case 86: return this.tsParseLiteralTypeNode(); @@ -8132,7 +8423,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.state.value === "-") { const node = this.startNode(); const nextToken = this.lookahead(); - if (nextToken.type !== 134 && nextToken.type !== 135) { + if (nextToken.type !== 135 && nextToken.type !== 136) { this.unexpected(); } node.literal = this.parseMaybeUnary(); @@ -8170,18 +8461,21 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } } } - this.unexpected(); + throw this.unexpected(); } tsParseArrayTypeOrHigher() { + const { + startLoc + } = this.state; let type = this.tsParseNonArrayType(); while (!this.hasPrecedingLineBreak() && this.eat(0)) { if (this.match(3)) { - const node = this.startNodeAtNode(type); + const node = this.startNodeAt(startLoc); node.elementType = type; this.expect(3); type = this.finishNode(node, "TSArrayType"); } else { - const node = this.startNodeAtNode(type); + const node = this.startNodeAt(startLoc); node.objectType = type; node.indexType = this.tsParseType(); this.expect(3); @@ -8404,7 +8698,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishNode(node, "TSConditionalType"); } isAbstractConstructorSignature() { - return this.isContextual(124) && this.lookahead().type === 77; + return this.isContextual(124) && this.isLookaheadContextual("new"); } tsParseNonConditionalType() { if (this.tsIsStartOfFunctionType()) { @@ -8434,7 +8728,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { const originalStartLoc = this.state.startLoc; const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => { const node = this.startNode(); - node.expression = this.tsParseEntityName(); + node.expression = this.tsParseEntityName(1 | 2); if (this.match(47)) { node.typeParameters = this.tsParseTypeArguments(); } @@ -8473,7 +8767,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { node.typeAnnotation = this.tsInType(() => { node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers); this.expect(29); - if (this.isContextual(114) && this.lookahead().type !== 16) { + if (this.isContextual(114) && this.lookaheadCharCode() !== 46) { const node = this.startNode(); this.next(); return this.finishNode(node, "TSIntrinsicKeyword"); @@ -8483,13 +8777,17 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.semicolon(); return this.finishNode(node, "TSTypeAliasDeclaration"); } - tsInNoContext(cb) { - const oldContext = this.state.context; - this.state.context = [oldContext[0]]; - try { + tsInTopLevelContext(cb) { + if (this.curContext() !== types.brace) { + const oldContext = this.state.context; + this.state.context = [oldContext[0]]; + try { + return cb(); + } finally { + this.state.context = oldContext; + } + } else { return cb(); - } finally { - this.state.context = oldContext; } } tsInType(cb) { @@ -8538,7 +8836,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseEnumMember() { const node = this.startNode(); - node.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); + node.id = this.match(134) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true); if (this.eat(29)) { node.initializer = super.parseMaybeAssignAllowIn(); } @@ -8555,6 +8853,13 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.expect(8); return this.finishNode(node, "TSEnumDeclaration"); } + tsParseEnumBody() { + const node = this.startNode(); + this.expect(5); + node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); + this.expect(8); + return this.finishNode(node, "TSEnumBody"); + } tsParseModuleBlock() { const node = this.startNode(); this.scope.enter(0); @@ -8573,7 +8878,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.tsParseModuleOrNamespaceDeclaration(inner, true); node.body = inner; } else { - this.scope.enter(256); + this.scope.enter(1024); this.prodParam.enter(0); node.body = this.tsParseModuleBlock(); this.prodParam.exit(); @@ -8583,15 +8888,17 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseAmbientExternalModuleDeclaration(node) { if (this.isContextual(112)) { + node.kind = "global"; node.global = true; node.id = this.parseIdentifier(); - } else if (this.match(133)) { + } else if (this.match(134)) { + node.kind = "module"; node.id = super.parseStringLiteral(this.state.value); } else { this.unexpected(); } if (this.match(5)) { - this.scope.enter(256); + this.scope.enter(1024); this.prodParam.enter(0); node.body = this.tsParseModuleBlock(); this.prodParam.exit(); @@ -8618,13 +8925,13 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.isContextual(119) && this.lookaheadCharCode() === 40; } tsParseModuleReference() { - return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); + return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(0); } tsParseExternalModuleReference() { const node = this.startNode(); this.expectContextual(119); this.expect(10); - if (!this.match(133)) { + if (!this.match(134)) { this.unexpected(); } node.expression = super.parseExprAtom(); @@ -8652,107 +8959,96 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } this.state = state; } - tsTryParseDeclare(nany) { + tsTryParseDeclare(node) { if (this.isLineTerminator()) { return; } - let startType = this.state.type; - let kind; - if (this.isContextual(100)) { - startType = 74; - kind = "let"; - } + const startType = this.state.type; return this.tsInAmbientContext(() => { switch (startType) { case 68: - nany.declare = true; - return super.parseFunctionStatement(nany, false, false); + node.declare = true; + return super.parseFunctionStatement(node, false, false); case 80: - nany.declare = true; - return this.parseClass(nany, true, false); + node.declare = true; + return this.parseClass(node, true, false); case 126: - return this.tsParseEnumDeclaration(nany, { + return this.tsParseEnumDeclaration(node, { declare: true }); case 112: - return this.tsParseAmbientExternalModuleDeclaration(nany); + return this.tsParseAmbientExternalModuleDeclaration(node); + case 100: + if (this.state.containsEsc) { + return; + } case 75: case 74: if (!this.match(75) || !this.isLookaheadContextual("enum")) { - nany.declare = true; - return this.parseVarStatement(nany, kind || this.state.value, true); + node.declare = true; + return this.parseVarStatement(node, this.state.value, true); } this.expect(75); - return this.tsParseEnumDeclaration(nany, { + return this.tsParseEnumDeclaration(node, { const: true, declare: true }); + case 107: + if (this.isUsing()) { + this.raise(TSErrors.InvalidModifierOnUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + return this.parseVarStatement(node, "using", true); + } + break; + case 96: + if (this.isAwaitUsing()) { + this.raise(TSErrors.InvalidModifierOnAwaitUsingDeclaration, this.state.startLoc, "declare"); + node.declare = true; + this.next(); + return this.parseVarStatement(node, "await using", true); + } + break; case 129: { - const result = this.tsParseInterfaceDeclaration(nany, { + const result = this.tsParseInterfaceDeclaration(node, { declare: true }); if (result) return result; } default: if (tokenIsIdentifier(startType)) { - return this.tsParseDeclaration(nany, this.state.value, true, null); + return this.tsParseDeclaration(node, this.state.type, true, null); } } }); } tsTryParseExportDeclaration() { - return this.tsParseDeclaration(this.startNode(), this.state.value, true, null); + return this.tsParseDeclaration(this.startNode(), this.state.type, true, null); } - tsParseExpressionStatement(node, expr, decorators) { - switch (expr.name) { - case "declare": - { - const declaration = this.tsTryParseDeclare(node); - if (declaration) { - declaration.declare = true; - } - return declaration; - } - case "global": - if (this.match(5)) { - this.scope.enter(256); - this.prodParam.enter(0); - const mod = node; - mod.global = true; - mod.id = expr; - mod.body = this.tsParseModuleBlock(); - this.scope.exit(); - this.prodParam.exit(); - return this.finishNode(mod, "TSModuleDeclaration"); - } - break; - default: - return this.tsParseDeclaration(node, expr.name, false, decorators); - } - } - tsParseDeclaration(node, value, next, decorators) { - switch (value) { - case "abstract": + tsParseDeclaration(node, type, next, decorators) { + switch (type) { + case 124: if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) { return this.tsParseAbstractDeclaration(node, decorators); } break; - case "module": + case 127: if (this.tsCheckLineTerminator(next)) { - if (this.match(133)) { + if (this.match(134)) { return this.tsParseAmbientExternalModuleDeclaration(node); } else if (tokenIsIdentifier(this.state.type)) { + node.kind = "module"; return this.tsParseModuleOrNamespaceDeclaration(node); } } break; - case "namespace": + case 128: if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { + node.kind = "namespace"; return this.tsParseModuleOrNamespaceDeclaration(node); } break; - case "type": + case 130: if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { return this.tsParseTypeAliasDeclaration(node); } @@ -8789,7 +9085,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } tsParseTypeArguments() { const node = this.startNode(); - node.params = this.tsInType(() => this.tsInNoContext(() => { + node.params = this.tsInType(() => this.tsInTopLevelContext(() => { this.expect(47); return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); })); @@ -8808,8 +9104,8 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (this.tsIsDeclarationStart()) return false; return super.isExportDefaultSpecifier(); } - parseAssignableListItem(flags, decorators) { - const startLoc = this.state.startLoc; + parseBindingElement(flags, decorators) { + const startLoc = decorators.length ? decorators[0].loc.start : this.state.startLoc; const modified = {}; this.tsParseModifiers({ allowedModifiers: ["public", "private", "protected", "override", "readonly"] @@ -8821,7 +9117,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.raise(TSErrors.UnexpectedParameterModifier, startLoc); } const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left, flags); + if (flags & 2) { + this.parseFunctionParamType(left); + } const elt = this.parseMaybeDefault(left.loc.start, left); if (accessibility || readonly || override) { const pp = this.startNodeAt(startLoc); @@ -8891,8 +9189,8 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.tsCheckForInvalidTypeCasts(exprList); return exprList; } - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); + parseArrayLike(close, isTuple, refExpressionErrors) { + const node = super.parseArrayLike(close, isTuple, refExpressionErrors); if (node.type === "ArrayExpression") { this.tsCheckForInvalidTypeCasts(node.elements); } @@ -8921,6 +9219,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (!noCalls && this.atPossibleAsyncArrow(base)) { const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc); if (asyncArrowFn) { + state.stop = true; return asyncArrowFn; } } @@ -8938,7 +9237,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (!noCalls && this.eat(10)) { const node = this.startNodeAt(startLoc); node.callee = base; - node.arguments = this.parseCallExpressionArguments(11, false); + node.arguments = this.parseCallExpressionArguments(); this.tsCheckForInvalidTypeCasts(node.arguments); node.typeParameters = typeArguments; if (state.optionalChainMember) { @@ -8947,7 +9246,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return this.finishCallExpression(node, state.optionalChainMember); } const tokenType = this.state.type; - if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { + if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenType !== 93 && tokenType !== 120 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) { return; } const node = this.startNodeAt(startLoc); @@ -8959,8 +9258,13 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.unexpected(missingParenErrorLoc, 10); } if (result) { - if (result.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) { - this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + if (result.type === "TSInstantiationExpression") { + if (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40) { + this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, this.state.startLoc); + } + if (!this.match(16) && !this.match(18)) { + result.expression = super.stopParseSubscript(base, state); + } } return result; } @@ -9030,7 +9334,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } } parseImport(node) { - if (this.match(133)) { + if (this.match(134)) { node.importKind = "value"; return super.parseImport(node); } @@ -9055,14 +9359,16 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } parseExport(node, decorators) { if (this.match(83)) { + const nodeImportEquals = node; this.next(); let maybeDefaultIdentifier = null; if (this.isContextual(130) && this.isPotentialImportPhase(false)) { - maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false); + maybeDefaultIdentifier = this.parseMaybeImportPhase(nodeImportEquals, false); } else { - node.importKind = "value"; + nodeImportEquals.importKind = "value"; } - return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, true); + const declaration = this.tsParseImportEqualsDeclaration(nodeImportEquals, maybeDefaultIdentifier, true); + return declaration; } else if (this.eat(29)) { const assign = node; assign.expression = super.parseExpression(); @@ -9080,7 +9386,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } } isAbstractClass() { - return this.isContextual(124) && this.lookahead().type === 80; + return this.isContextual(124) && this.isLookaheadContextual("class"); } parseExportDefaultExpression() { if (this.isAbstractClass()) { @@ -9101,33 +9407,103 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } = this.state; const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext); if (!isAmbientContext) return declaration; + if (!node.declare && (kind === "using" || kind === "await using")) { + this.raiseOverwrite(TSErrors.UsingDeclarationInAmbientContext, node, kind); + return declaration; + } for (const { id, init } of declaration.declarations) { if (!init) continue; - if (kind !== "const" || !!id.typeAnnotation) { + if (kind === "var" || kind === "let" || !!id.typeAnnotation) { this.raise(TSErrors.InitializerNotAllowedInAmbientContext, init); } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) { - this.raise(TSErrors.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); + this.raise(TSErrors.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference, init); } } return declaration; } parseStatementContent(flags, decorators) { - if (this.match(75) && this.isLookaheadContextual("enum")) { - const node = this.startNode(); - this.expect(75); - return this.tsParseEnumDeclaration(node, { - const: true - }); - } - if (this.isContextual(126)) { - return this.tsParseEnumDeclaration(this.startNode()); - } - if (this.isContextual(129)) { - const result = this.tsParseInterfaceDeclaration(this.startNode()); - if (result) return result; + if (!this.state.containsEsc) { + switch (this.state.type) { + case 75: + { + if (this.isLookaheadContextual("enum")) { + const node = this.startNode(); + this.expect(75); + return this.tsParseEnumDeclaration(node, { + const: true + }); + } + break; + } + case 124: + case 125: + { + if (this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()) { + const token = this.state.type; + const node = this.startNode(); + this.next(); + const declaration = token === 125 ? this.tsTryParseDeclare(node) : this.tsParseAbstractDeclaration(node, decorators); + if (declaration) { + if (token === 125) { + declaration.declare = true; + } + return declaration; + } else { + node.expression = this.createIdentifier(this.startNodeAt(node.loc.start), token === 125 ? "declare" : "abstract"); + this.semicolon(false); + return this.finishNode(node, "ExpressionStatement"); + } + } + break; + } + case 126: + return this.tsParseEnumDeclaration(this.startNode()); + case 112: + { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 123) { + const node = this.startNode(); + return this.tsParseAmbientExternalModuleDeclaration(node); + } + break; + } + case 129: + { + const result = this.tsParseInterfaceDeclaration(this.startNode()); + if (result) return result; + break; + } + case 127: + { + if (this.nextTokenIsIdentifierOrStringLiteralOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 127, false, decorators); + } + break; + } + case 128: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseDeclaration(node, 128, false, decorators); + } + break; + } + case 130: + { + if (this.nextTokenIsIdentifierOnSameLine()) { + const node = this.startNode(); + this.next(); + return this.tsParseTypeAliasDeclaration(node); + } + break; + } + } } return super.parseStatementContent(flags, decorators); } @@ -9211,32 +9587,25 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { this.raise(TSErrors.ClassMethodHasDeclare, methodOrProp); } } - parseExpressionStatement(node, expr, decorators) { - const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined; - return decl || super.parseExpressionStatement(node, expr, decorators); - } shouldParseExportDeclaration() { if (this.tsIsDeclarationStart()) return true; return super.shouldParseExportDeclaration(); } parseConditional(expr, startLoc, refExpressionErrors) { - if (!this.state.maybeInArrowParameters || !this.match(17)) { - return super.parseConditional(expr, startLoc, refExpressionErrors); - } - const result = this.tryParse(() => super.parseConditional(expr, startLoc)); - if (!result.node) { - if (result.error) { - super.setOptionalParametersError(refExpressionErrors, result.error); + if (!this.match(17)) return expr; + if (this.state.maybeInArrowParameters) { + const nextCh = this.lookaheadCharCode(); + if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { + this.setOptionalParametersError(refExpressionErrors); + return expr; } - return expr; } - if (result.error) this.state = result.failState; - return result.node; + return super.parseConditional(expr, startLoc, refExpressionErrors); } parseParenItem(node, startLoc) { - node = super.parseParenItem(node, startLoc); + const newNode = super.parseParenItem(node, startLoc); if (this.eat(17)) { - node.optional = true; + newNode.optional = true; this.resetEndLocation(node); } if (this.match(14)) { @@ -9262,7 +9631,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) { node.exportKind = "type"; } - if (isDeclare) { + if (isDeclare && declaration.type !== "TSImportEqualsDeclaration") { this.resetStartLocation(declaration, startLoc); declaration.declare = true; } @@ -9297,7 +9666,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { key } = node; this.raise(TSErrors.AbstractPropertyHasInitializer, this.state.startLoc, { - propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]` + propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` }); } return super.parseClassProperty(node); @@ -9345,13 +9714,25 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } declareClassPrivateMethodInScope(node, kind) { if (node.type === "TSDeclareMethod") return; - if (node.type === "MethodDefinition" && !node.value.body) return; + if (node.type === "MethodDefinition" && node.value.body == null) { + return; + } super.declareClassPrivateMethodInScope(node, kind); } parseClassSuper(node) { super.parseClassSuper(node); - if (node.superClass && (this.match(47) || this.match(51))) { - node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + if (node.superClass) { + if (node.superClass.type === "TSInstantiationExpression") { + const tsInstantiationExpression = node.superClass; + const superClass = tsInstantiationExpression.expression; + this.takeSurroundingComments(superClass, superClass.start, superClass.end); + const superTypeArguments = tsInstantiationExpression.typeParameters; + this.takeSurroundingComments(superTypeArguments, superTypeArguments.start, superTypeArguments.end); + node.superClass = superClass; + node.superTypeParameters = superTypeArguments; + } else if (this.match(47) || this.match(51)) { + node.superTypeParameters = this.tsParseTypeArgumentsInExpression(); + } } if (this.eatContextual(113)) { node.implements = this.tsParseHeritageClause("implements"); @@ -9389,7 +9770,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { let state; let jsx; let typeCast; - if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) { + if (this.hasPlugin("jsx") && (this.match(143) || this.match(47))) { state = this.state.clone(); jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); if (!jsx.error) return jsx.node; @@ -9444,8 +9825,8 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error); } reportReservedArrowTypeParam(node) { - var _node$extra; - if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra = node.extra) != null && _node$extra.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { + var _node$extra2; + if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra2 = node.extra) != null && _node$extra2.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) { this.raise(TSErrors.ReservedArrowTypeParam, node); } } @@ -9470,8 +9851,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } return super.parseArrow(node); } - parseAssignableListItemTypes(param, flags) { - if (!(flags & 2)) return param; + parseFunctionParamType(param) { if (this.eat(17)) { param.optional = true; } @@ -9539,15 +9919,21 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { super.checkToRestConversion(node, allowPattern); } } - isValidLVal(type, isUnparenthesizedInAssign, binding) { - return getOwn({ - TSTypeCastExpression: true, - TSParameterProperty: "parameter", - TSNonNullExpression: "expression", - TSAsExpression: (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true], - TSSatisfiesExpression: (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true], - TSTypeAssertion: (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true] - }, type) || super.isValidLVal(type, isUnparenthesizedInAssign, binding); + isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding) { + switch (type) { + case "TSTypeCastExpression": + return true; + case "TSParameterProperty": + return "parameter"; + case "TSNonNullExpression": + return "expression"; + case "TSAsExpression": + case "TSSatisfiesExpression": + case "TSTypeAssertion": + return (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]; + default: + return super.isValidLVal(type, disallowCallExpression, isUnparenthesizedInAssign, binding); + } } parseBindingAtom() { if (this.state.type === 78) { @@ -9555,17 +9941,17 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } return super.parseBindingAtom(); } - parseMaybeDecoratorArguments(expr) { + parseMaybeDecoratorArguments(expr, startLoc) { if (this.match(47) || this.match(51)) { const typeArguments = this.tsParseTypeArgumentsInExpression(); if (this.match(10)) { - const call = super.parseMaybeDecoratorArguments(expr); + const call = super.parseMaybeDecoratorArguments(expr, startLoc); call.typeParameters = typeArguments; return call; } this.unexpected(null, 10); } - return super.parseMaybeDecoratorArguments(expr); + return super.parseMaybeDecoratorArguments(expr, startLoc); } checkCommaAfterRest(close) { if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { @@ -9623,14 +10009,12 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } return type; } - toAssignableList(exprList, trailingCommaLoc, isLHS) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - if ((expr == null ? void 0 : expr.type) === "TSTypeCastExpression") { - exprList[i] = this.typeCastToParameter(expr); - } + toAssignableListItem(exprList, index, isLHS) { + const node = exprList[index]; + if (node.type === "TSTypeCastExpression") { + exprList[index] = this.typeCastToParameter(node); } - super.toAssignableList(exprList, trailingCommaLoc, isLHS); + super.toAssignableListItem(exprList, index, isLHS); } typeCastToParameter(node) { node.expression.typeAnnotation = node.typeAnnotation; @@ -9652,7 +10036,9 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { jsxParseOpeningElementAfterName(node) { if (this.match(47) || this.match(51)) { const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression()); - if (typeArguments) node.typeParameters = typeArguments; + if (typeArguments) { + node.typeParameters = typeArguments; + } } return super.jsxParseOpeningElementAfterName(node); } @@ -9673,12 +10059,17 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { return param; } tsInAmbientContext(cb) { - const oldIsAmbientContext = this.state.isAmbientContext; + const { + isAmbientContext: oldIsAmbientContext, + strict: oldStrict + } = this.state; this.state.isAmbientContext = true; + this.state.strict = false; try { return cb(); } finally { this.state.isAmbientContext = oldIsAmbientContext; + this.state.strict = oldStrict; } } parseClass(node, isStatement, optionalId) { @@ -9697,23 +10088,25 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } else if (this.isContextual(129)) { if (!this.hasFollowingLineBreak()) { node.abstract = true; - this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, node); + this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifier, node); return this.tsParseInterfaceDeclaration(node); + } else { + return null; } - } else { - this.unexpected(null, 80); } + throw this.unexpected(null, 80); } parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) { const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); - if (method.abstract) { - const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body; - if (hasBody) { + if (method.abstract || method.type === "TSAbstractMethodDefinition") { + const hasEstreePlugin = this.hasPlugin("estree"); + const methodFn = hasEstreePlugin ? method.value : method; + if (methodFn.body) { const { key } = method; this.raise(TSErrors.AbstractMethodHasImplementation, method, { - methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]` + methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(this.offsetToSourcePos(key.start), this.offsetToSourcePos(key.end))}]` }); } } @@ -9804,12 +10197,145 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName(); } if (!node[rightOfAsKey]) { - node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]); + node[rightOfAsKey] = this.cloneIdentifier(node[leftOfAsKey]); } if (isImport) { this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096); } } + fillOptionalPropertiesForTSESLint(node) { + var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$declare2, _node$definite, _node$readonly3, _node$typeAnnotation2, _node$accessibility3, _node$decorators3, _node$override2, _node$optional4, _node$id, _node$abstract, _node$declare3, _node$decorators4, _node$implements, _node$superTypeArgume, _node$typeParameters2, _node$declare4, _node$definite2, _node$const, _node$declare5, _node$computed, _node$qualifier, _node$options, _node$declare6, _node$extends, _node$optional5, _node$readonly4, _node$declare7, _node$global, _node$const2, _node$in, _node$out; + switch (node.type) { + case "ExpressionStatement": + (_node$directive = node.directive) != null ? _node$directive : node.directive = undefined; + return; + case "RestElement": + node.value = undefined; + case "Identifier": + case "ArrayPattern": + case "AssignmentPattern": + case "ObjectPattern": + (_node$decorators = node.decorators) != null ? _node$decorators : node.decorators = []; + (_node$optional = node.optional) != null ? _node$optional : node.optional = false; + (_node$typeAnnotation = node.typeAnnotation) != null ? _node$typeAnnotation : node.typeAnnotation = undefined; + return; + case "TSParameterProperty": + (_node$accessibility = node.accessibility) != null ? _node$accessibility : node.accessibility = undefined; + (_node$decorators2 = node.decorators) != null ? _node$decorators2 : node.decorators = []; + (_node$override = node.override) != null ? _node$override : node.override = false; + (_node$readonly = node.readonly) != null ? _node$readonly : node.readonly = false; + (_node$static = node.static) != null ? _node$static : node.static = false; + return; + case "TSEmptyBodyFunctionExpression": + node.body = null; + case "TSDeclareFunction": + case "FunctionDeclaration": + case "FunctionExpression": + case "ClassMethod": + case "ClassPrivateMethod": + (_node$declare = node.declare) != null ? _node$declare : node.declare = false; + (_node$returnType = node.returnType) != null ? _node$returnType : node.returnType = undefined; + (_node$typeParameters = node.typeParameters) != null ? _node$typeParameters : node.typeParameters = undefined; + return; + case "Property": + (_node$optional2 = node.optional) != null ? _node$optional2 : node.optional = false; + return; + case "TSMethodSignature": + case "TSPropertySignature": + (_node$optional3 = node.optional) != null ? _node$optional3 : node.optional = false; + case "TSIndexSignature": + (_node$accessibility2 = node.accessibility) != null ? _node$accessibility2 : node.accessibility = undefined; + (_node$readonly2 = node.readonly) != null ? _node$readonly2 : node.readonly = false; + (_node$static2 = node.static) != null ? _node$static2 : node.static = false; + return; + case "TSAbstractPropertyDefinition": + case "PropertyDefinition": + case "TSAbstractAccessorProperty": + case "AccessorProperty": + (_node$declare2 = node.declare) != null ? _node$declare2 : node.declare = false; + (_node$definite = node.definite) != null ? _node$definite : node.definite = false; + (_node$readonly3 = node.readonly) != null ? _node$readonly3 : node.readonly = false; + (_node$typeAnnotation2 = node.typeAnnotation) != null ? _node$typeAnnotation2 : node.typeAnnotation = undefined; + case "TSAbstractMethodDefinition": + case "MethodDefinition": + (_node$accessibility3 = node.accessibility) != null ? _node$accessibility3 : node.accessibility = undefined; + (_node$decorators3 = node.decorators) != null ? _node$decorators3 : node.decorators = []; + (_node$override2 = node.override) != null ? _node$override2 : node.override = false; + (_node$optional4 = node.optional) != null ? _node$optional4 : node.optional = false; + return; + case "ClassExpression": + (_node$id = node.id) != null ? _node$id : node.id = null; + case "ClassDeclaration": + (_node$abstract = node.abstract) != null ? _node$abstract : node.abstract = false; + (_node$declare3 = node.declare) != null ? _node$declare3 : node.declare = false; + (_node$decorators4 = node.decorators) != null ? _node$decorators4 : node.decorators = []; + (_node$implements = node.implements) != null ? _node$implements : node.implements = []; + (_node$superTypeArgume = node.superTypeArguments) != null ? _node$superTypeArgume : node.superTypeArguments = undefined; + (_node$typeParameters2 = node.typeParameters) != null ? _node$typeParameters2 : node.typeParameters = undefined; + return; + case "TSTypeAliasDeclaration": + case "VariableDeclaration": + (_node$declare4 = node.declare) != null ? _node$declare4 : node.declare = false; + return; + case "VariableDeclarator": + (_node$definite2 = node.definite) != null ? _node$definite2 : node.definite = false; + return; + case "TSEnumDeclaration": + (_node$const = node.const) != null ? _node$const : node.const = false; + (_node$declare5 = node.declare) != null ? _node$declare5 : node.declare = false; + return; + case "TSEnumMember": + (_node$computed = node.computed) != null ? _node$computed : node.computed = false; + return; + case "TSImportType": + (_node$qualifier = node.qualifier) != null ? _node$qualifier : node.qualifier = null; + (_node$options = node.options) != null ? _node$options : node.options = null; + return; + case "TSInterfaceDeclaration": + (_node$declare6 = node.declare) != null ? _node$declare6 : node.declare = false; + (_node$extends = node.extends) != null ? _node$extends : node.extends = []; + return; + case "TSMappedType": + (_node$optional5 = node.optional) != null ? _node$optional5 : node.optional = false; + (_node$readonly4 = node.readonly) != null ? _node$readonly4 : node.readonly = undefined; + return; + case "TSModuleDeclaration": + (_node$declare7 = node.declare) != null ? _node$declare7 : node.declare = false; + (_node$global = node.global) != null ? _node$global : node.global = node.kind === "global"; + return; + case "TSTypeParameter": + (_node$const2 = node.const) != null ? _node$const2 : node.const = false; + (_node$in = node.in) != null ? _node$in : node.in = false; + (_node$out = node.out) != null ? _node$out : node.out = false; + return; + } + } + chStartsBindingIdentifierAndNotRelationalOperator(ch, pos) { + if (isIdentifierStart(ch)) { + keywordAndTSRelationalOperator.lastIndex = pos; + if (keywordAndTSRelationalOperator.test(this.input)) { + const endCh = this.codePointAtPos(keywordAndTSRelationalOperator.lastIndex); + if (!isIdentifierChar(endCh) && endCh !== 92) { + return false; + } + } + return true; + } else if (ch === 92) { + return true; + } else { + return false; + } + } + nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifierAndNotRelationalOperator(nextCh, next); + } + nextTokenIsIdentifierOrStringLiteralOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next) || nextCh === 34 || nextCh === 39; + } }; function isPossiblyLiteralEnum(expression) { if (expression.type !== "MemberExpression") return false; @@ -9886,24 +10412,27 @@ const PlaceholderErrors = ParseErrorEnum`placeholders`({ }); var placeholders = superClass => class PlaceholdersParserMixin extends superClass { parsePlaceholder(expectedNode) { - if (this.match(144)) { + if (this.match(133)) { const node = this.startNode(); this.next(); this.assertNoSpace(); node.name = super.parseIdentifier(true); this.assertNoSpace(); - this.expect(144); + this.expect(133); return this.finishPlaceholder(node, expectedNode); } } finishPlaceholder(node, expectedNode) { - const isFinished = !!(node.expectedNode && node.type === "Placeholder"); - node.expectedNode = expectedNode; - return isFinished ? node : this.finishNode(node, "Placeholder"); + let placeholder = node; + if (!placeholder.expectedNode || !placeholder.type) { + placeholder = this.finishNode(placeholder, "Placeholder"); + } + placeholder.expectedNode = expectedNode; + return placeholder; } getTokenFromCode(code) { if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { - this.finishOp(144, 2); + this.finishOp(133, 2); } else { super.getTokenFromCode(code); } @@ -9919,11 +10448,24 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas super.checkReservedWord(word, startLoc, checkKeywords, isBinding); } } + cloneIdentifier(node) { + const cloned = super.cloneIdentifier(node); + if (cloned.type === "Placeholder") { + cloned.expectedNode = node.expectedNode; + } + return cloned; + } + cloneStringLiteral(node) { + if (node.type === "Placeholder") { + return this.cloneIdentifier(node); + } + return super.cloneStringLiteral(node); + } parseBindingAtom() { return this.parsePlaceholder("Pattern") || super.parseBindingAtom(); } - isValidLVal(type, isParenthesized, binding) { - return type === "Placeholder" || super.isValidLVal(type, isParenthesized, binding); + isValidLVal(type, disallowCallExpression, isParenthesized, binding) { + return type === "Placeholder" || super.isValidLVal(type, disallowCallExpression, isParenthesized, binding); } toAssignable(node, isLHS) { if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { @@ -9936,14 +10478,15 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas if (super.chStartsBindingIdentifier(ch, pos)) { return true; } - const nextToken = this.lookahead(); - if (nextToken.type === 144) { + const next = this.nextTokenStart(); + if (this.input.charCodeAt(next) === 37 && this.input.charCodeAt(next + 1) === 37) { return true; } return false; } verifyBreakContinue(node, isBreak) { - if (node.label && node.label.type === "Placeholder") return; + var _node$label; + if (((_node$label = node.label) == null ? void 0 : _node$label.type) === "Placeholder") return; super.verifyBreakContinue(node, isBreak); } parseExpressionStatement(node, expr) { @@ -9959,8 +10502,9 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas return this.finishNode(stmt, "LabeledStatement"); } this.semicolon(); - node.name = expr.name; - return this.finishPlaceholder(node, "Statement"); + const stmtPlaceholder = node; + stmtPlaceholder.name = expr.name; + return this.finishPlaceholder(stmtPlaceholder, "Statement"); } parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) { return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse); @@ -9974,7 +10518,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas const oldStrict = this.state.strict; const placeholder = this.parsePlaceholder("Identifier"); if (placeholder) { - if (this.match(81) || this.match(144) || this.match(5)) { + if (this.match(81) || this.match(133) || this.match(5)) { node.id = placeholder; } else if (optionalId || !isStatement) { node.id = null; @@ -9993,23 +10537,24 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas parseExport(node, decorators) { const placeholder = this.parsePlaceholder("Identifier"); if (!placeholder) return super.parseExport(node, decorators); + const node2 = node; if (!this.isContextual(98) && !this.match(12)) { - node.specifiers = []; - node.source = null; - node.declaration = this.finishPlaceholder(placeholder, "Declaration"); - return this.finishNode(node, "ExportNamedDeclaration"); + node2.specifiers = []; + node2.source = null; + node2.declaration = this.finishPlaceholder(placeholder, "Declaration"); + return this.finishNode(node2, "ExportNamedDeclaration"); } this.expectPlugin("exportDefaultFrom"); const specifier = this.startNode(); specifier.exported = placeholder; - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - return super.parseExport(node, decorators); + node2.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; + return super.parseExport(node2, decorators); } isExportDefaultSpecifier() { if (this.match(65)) { const next = this.nextTokenStart(); if (this.isUnparsedContextual(next, "from")) { - if (this.input.startsWith(tokenLabelName(144), this.nextTokenStartSince(next + 4))) { + if (this.input.startsWith(tokenLabelName(133), this.nextTokenStartSince(next + 4))) { return true; } } @@ -10058,7 +10603,7 @@ var placeholders = superClass => class PlaceholdersParserMixin extends superClas return this.parsePlaceholder("StringLiteral") || super.parseImportSource(); } assertNoSpace() { - if (this.state.start > this.state.lastTokEndLoc.index) { + if (this.state.start > this.offsetToSourcePos(this.state.lastTokEndLoc.index)) { this.raise(PlaceholderErrors.UnexpectedSpace, this.state.lastTokEndLoc); } } @@ -10072,7 +10617,7 @@ var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { if (tokenIsIdentifier(this.state.type)) { const name = this.parseIdentifierName(); const identifier = this.createIdentifier(node, name); - identifier.type = "V8IntrinsicIdentifier"; + this.castNodeTo(identifier, "V8IntrinsicIdentifier"); if (this.match(10)) { return identifier; } @@ -10084,116 +10629,92 @@ var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass { return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors); } }; -function hasPlugin(plugins, expectedConfig) { - const [expectedName, expectedOptions] = typeof expectedConfig === "string" ? [expectedConfig, {}] : expectedConfig; - const expectedKeys = Object.keys(expectedOptions); - const expectedOptionsIsEmpty = expectedKeys.length === 0; - return plugins.some(p => { - if (typeof p === "string") { - return expectedOptionsIsEmpty && p === expectedName; - } else { - const [pluginName, pluginOptions] = p; - if (pluginName !== expectedName) { - return false; - } - for (const key of expectedKeys) { - if (pluginOptions[key] !== expectedOptions[key]) { - return false; - } - } - return true; - } - }); -} -function getPluginOption(plugins, name, option) { - const plugin = plugins.find(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; - } - }); - if (plugin && Array.isArray(plugin) && plugin.length > 1) { - return plugin[1][option]; - } - return null; -} const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"]; -const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; -function validatePlugins(plugins) { - if (hasPlugin(plugins, "decorators")) { - if (hasPlugin(plugins, "decorators-legacy")) { +function validatePlugins(pluginsMap) { + if (pluginsMap.has("decorators")) { + if (pluginsMap.has("decorators-legacy")) { throw new Error("Cannot use the decorators and decorators-legacy plugin together"); } - const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport"); + const decoratorsBeforeExport = pluginsMap.get("decorators").decoratorsBeforeExport; if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") { throw new Error("'decoratorsBeforeExport' must be a boolean, if specified."); } - const allowCallParenthesized = getPluginOption(plugins, "decorators", "allowCallParenthesized"); + const allowCallParenthesized = pluginsMap.get("decorators").allowCallParenthesized; if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") { throw new Error("'allowCallParenthesized' must be a boolean."); } } - if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { + if (pluginsMap.has("flow") && pluginsMap.has("typescript")) { throw new Error("Cannot combine flow and typescript plugins."); } - if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) { + if (pluginsMap.has("placeholders") && pluginsMap.has("v8intrinsic")) { throw new Error("Cannot combine placeholders and v8intrinsic plugins."); } - if (hasPlugin(plugins, "pipelineOperator")) { - const proposal = getPluginOption(plugins, "pipelineOperator", "proposal"); + if (pluginsMap.has("pipelineOperator")) { + var _pluginsMap$get2; + const proposal = pluginsMap.get("pipelineOperator").proposal; if (!PIPELINE_PROPOSALS.includes(proposal)) { const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); } - const tupleSyntaxIsHash = hasPlugin(plugins, ["recordAndTuple", { - syntaxType: "hash" - }]); if (proposal === "hack") { - if (hasPlugin(plugins, "placeholders")) { + var _pluginsMap$get; + if (pluginsMap.has("placeholders")) { throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); } - if (hasPlugin(plugins, "v8intrinsic")) { + if (pluginsMap.has("v8intrinsic")) { throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); } - const topicToken = getPluginOption(plugins, "pipelineOperator", "topicToken"); + const topicToken = pluginsMap.get("pipelineOperator").topicToken; if (!TOPIC_TOKENS.includes(topicToken)) { const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); } - if (topicToken === "#" && tupleSyntaxIsHash) { - throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); + if (topicToken === "#" && ((_pluginsMap$get = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); } - } else if (proposal === "smart" && tupleSyntaxIsHash) { - throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); + } else if (proposal === "smart" && ((_pluginsMap$get2 = pluginsMap.get("recordAndTuple")) == null ? void 0 : _pluginsMap$get2.syntaxType) === "hash") { + throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple", pluginsMap.get("recordAndTuple")])}\`.`); } } - if (hasPlugin(plugins, "moduleAttributes")) { - { - if (hasPlugin(plugins, "importAssertions") || hasPlugin(plugins, "importAttributes")) { - throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins."); - } - const moduleAttributesVersionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); - if (moduleAttributesVersionPluginOption !== "may-2020") { - throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + if (pluginsMap.has("moduleAttributes")) { + if (pluginsMap.has("deprecatedImportAssert") || pluginsMap.has("importAssertions")) { + throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins."); + } + const moduleAttributesVersionPluginOption = pluginsMap.get("moduleAttributes").version; + if (moduleAttributesVersionPluginOption !== "may-2020") { + throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); + } + } + if (pluginsMap.has("importAssertions")) { + if (pluginsMap.has("deprecatedImportAssert")) { + throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins."); + } + } + if (pluginsMap.has("deprecatedImportAssert")) ;else if (pluginsMap.has("importAttributes") && pluginsMap.get("importAttributes").deprecatedAssertSyntax) { + pluginsMap.set("deprecatedImportAssert", {}); + } + if (pluginsMap.has("recordAndTuple")) { + const syntaxType = pluginsMap.get("recordAndTuple").syntaxType; + if (syntaxType != null) { + const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; + if (!RECORD_AND_TUPLE_SYNTAX_TYPES.includes(syntaxType)) { + throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); } } } - if (hasPlugin(plugins, "importAssertions") && hasPlugin(plugins, "importAttributes")) { - throw new Error("Cannot combine importAssertions and importAttributes plugins."); - } - if (hasPlugin(plugins, "recordAndTuple") && getPluginOption(plugins, "recordAndTuple", "syntaxType") != null && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) { - throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); - } - if (hasPlugin(plugins, "asyncDoExpressions") && !hasPlugin(plugins, "doExpressions")) { + if (pluginsMap.has("asyncDoExpressions") && !pluginsMap.has("doExpressions")) { const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); error.missingPlugins = "doExpressions"; throw error; } - if (hasPlugin(plugins, "optionalChainingAssign") && getPluginOption(plugins, "optionalChainingAssign", "version") !== "2023-07") { + if (pluginsMap.has("optionalChainingAssign") && pluginsMap.get("optionalChainingAssign").version !== "2023-07") { throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'."); } + if (pluginsMap.has("discardBinding") && pluginsMap.get("discardBinding").syntaxType !== "void") { + throw new Error("The 'discardBinding' plugin requires a 'syntaxType' option. Currently the only supported value is 'void'."); + } } const mixinPlugins = { estree, @@ -10204,54 +10725,19 @@ const mixinPlugins = { placeholders }; const mixinPluginNames = Object.keys(mixinPlugins); -const defaultOptions = { - sourceType: "script", - sourceFilename: undefined, - startColumn: 0, - startLine: 1, - allowAwaitOutsideFunction: false, - allowReturnOutsideFunction: false, - allowNewTargetOutsideFunction: false, - allowImportExportEverywhere: false, - allowSuperOutsideMethod: false, - allowUndeclaredExports: false, - plugins: [], - strictMode: null, - ranges: false, - tokens: false, - createImportExpressions: false, - createParenthesizedExpressions: false, - errorRecovery: false, - attachComment: true, - annexB: true -}; -function getOptions(opts) { - if (opts == null) { - return Object.assign({}, defaultOptions); - } - if (opts.annexB != null && opts.annexB !== false) { - throw new Error("The `annexB` option can only be set to `false`."); - } - const options = {}; - for (const key of Object.keys(defaultOptions)) { - var _opts$key; - options[key] = (_opts$key = opts[key]) != null ? _opts$key : defaultOptions[key]; - } - return options; -} class ExpressionParser extends LValParser { - checkProto(prop, isRecord, protoRef, refExpressionErrors) { + checkProto(prop, isRecord, sawProto, refExpressionErrors) { if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { - return; + return sawProto; } const key = prop.key; const name = key.type === "Identifier" ? key.name : key.value; if (name === "__proto__") { if (isRecord) { this.raise(Errors.RecordNoProto, key); - return; + return true; } - if (protoRef.used) { + if (sawProto) { if (refExpressionErrors) { if (refExpressionErrors.doubleProtoLoc === null) { refExpressionErrors.doubleProtoLoc = key.loc.start; @@ -10260,23 +10746,29 @@ class ExpressionParser extends LValParser { this.raise(Errors.DuplicateProto, key); } } - protoRef.used = true; + return true; } + return sawProto; } shouldExitDescending(expr, potentialArrowAt) { - return expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt; + return expr.type === "ArrowFunctionExpression" && this.offsetToSourcePos(expr.start) === potentialArrowAt; } getExpression() { this.enterInitialScopes(); this.nextToken(); + if (this.match(140)) { + throw this.raise(Errors.ParseExpressionEmptyInput, this.state.startLoc); + } const expr = this.parseExpression(); - if (!this.match(139)) { - this.unexpected(); + if (!this.match(140)) { + throw this.raise(Errors.ParseExpressionExpectsEOF, this.state.startLoc, { + unexpected: this.input.codePointAt(this.state.start) + }); } this.finalizeRemainingComments(); expr.comments = this.comments; expr.errors = this.state.errors; - if (this.options.tokens) { + if (this.optionFlags & 256) { expr.tokens = this.tokens; } return expr; @@ -10307,15 +10799,16 @@ class ExpressionParser extends LValParser { parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); } - setOptionalParametersError(refExpressionErrors, resultError) { - var _resultError$loc; - refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc; + setOptionalParametersError(refExpressionErrors) { + refExpressionErrors.optionalParametersLoc = this.state.startLoc; } parseMaybeAssign(refExpressionErrors, afterLeftParse) { const startLoc = this.state.startLoc; - if (this.isContextual(108)) { + const isYield = this.isContextual(108); + if (isYield) { if (this.prodParam.hasYield) { - let left = this.parseYield(); + this.next(); + let left = this.parseYield(startLoc); if (afterLeftParse) { left = afterLeftParse.call(this, left, startLoc); } @@ -10357,18 +10850,29 @@ class ExpressionParser extends LValParser { this.checkDestructuringPrivate(refExpressionErrors); refExpressionErrors.privateKeyLoc = null; } + if (refExpressionErrors.voidPatternLoc != null && refExpressionErrors.voidPatternLoc.index >= startIndex) { + refExpressionErrors.voidPatternLoc = null; + } } else { node.left = left; } this.next(); node.right = this.parseMaybeAssign(); - this.checkLVal(left, { - in: this.finishNode(node, "AssignmentExpression") - }); + this.checkLVal(left, this.finishNode(node, "AssignmentExpression"), undefined, undefined, undefined, undefined, operator === "||=" || operator === "&&=" || operator === "??="); return node; } else if (ownExpressionErrors) { this.checkExpressionErrors(refExpressionErrors, true); } + if (isYield) { + const { + type + } = this.state; + const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { + this.raiseOverwrite(Errors.YieldNotInGeneratorFunction, startLoc); + return this.parseYield(startLoc); + } + } return left; } parseMaybeConditional(refExpressionErrors) { @@ -10392,7 +10896,7 @@ class ExpressionParser extends LValParser { return expr; } parseMaybeUnaryOrPrivate(refExpressionErrors) { - return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); + return this.match(139) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); } parseExprOps(refExpressionErrors) { const startLoc = this.state.startLoc; @@ -10460,18 +10964,19 @@ class ExpressionParser extends LValParser { return this.withTopicBindingContext(() => { return this.parseHackPipeBody(); }); - case "smart": - return this.withTopicBindingContext(() => { - if (this.prodParam.hasYield && this.isContextual(108)) { - throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); - } - return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); - }); case "fsharp": return this.withSoloAwaitPermittingContext(() => { return this.parseFSharpPipelineBody(prec); }); } + if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { + return this.withTopicBindingContext(() => { + if (this.prodParam.hasYield && this.isContextual(108)) { + throw this.raise(Errors.PipeBodyIsTighter, this.state.startLoc); + } + return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc); + }); + } default: return this.parseExprOpBaseRightExpr(op, prec); } @@ -10505,7 +11010,7 @@ class ExpressionParser extends LValParser { parseMaybeUnary(refExpressionErrors, sawUnary) { const startLoc = this.state.startLoc; const isAwait = this.isContextual(96); - if (isAwait && this.isAwaitAllowed()) { + if (isAwait && this.recordAwaitIfAllowed()) { this.next(); const expr = this.parseAwait(startLoc); if (!sawUnary) this.checkExponentialAfterUnary(expr); @@ -10544,7 +11049,7 @@ class ExpressionParser extends LValParser { type } = this.state; const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54); - if (startsExpr && !this.isAmbiguousAwait()) { + if (startsExpr && !this.isAmbiguousPrefixOrIdentifier()) { this.raiseOverwrite(Errors.AwaitNotInAsyncContext, startLoc); return this.parseAwait(startLoc); } @@ -10554,9 +11059,7 @@ class ExpressionParser extends LValParser { parseUpdate(node, update, refExpressionErrors) { if (update) { const updateExpressionNode = node; - this.checkLVal(updateExpressionNode.argument, { - in: this.finishNode(updateExpressionNode, "UpdateExpression") - }); + this.checkLVal(updateExpressionNode.argument, this.finishNode(updateExpressionNode, "UpdateExpression")); return node; } const startLoc = this.state.startLoc; @@ -10568,9 +11071,7 @@ class ExpressionParser extends LValParser { node.prefix = false; node.argument = expr; this.next(); - this.checkLVal(expr, { - in: expr = this.finishNode(node, "UpdateExpression") - }); + this.checkLVal(expr, expr = this.finishNode(node, "UpdateExpression")); } return expr; } @@ -10609,8 +11110,7 @@ class ExpressionParser extends LValParser { if (noCalls) { this.raise(Errors.OptionalChainingNoNew, this.state.startLoc); if (this.lookaheadCharCode() === 40) { - state.stop = true; - return base; + return this.stopParseSubscript(base, state); } } state.optionalChainMember = optional = true; @@ -10623,11 +11123,14 @@ class ExpressionParser extends LValParser { if (computed || optional || this.eat(16)) { return this.parseMember(base, startLoc, state, computed, optional); } else { - state.stop = true; - return base; + return this.stopParseSubscript(base, state); } } } + stopParseSubscript(base, state) { + state.stop = true; + return base; + } parseMember(base, startLoc, state, computed, optional) { const node = this.startNodeAt(startLoc); node.object = base; @@ -10635,7 +11138,7 @@ class ExpressionParser extends LValParser { if (computed) { node.property = this.parseExpression(); this.expect(3); - } else if (this.match(138)) { + } else if (this.match(139)) { if (base.type === "Super") { this.raise(Errors.SuperPrivateField, startLoc); } @@ -10678,9 +11181,9 @@ class ExpressionParser extends LValParser { node.optional = optional; } if (optional) { - node.arguments = this.parseCallExpressionArguments(11); + node.arguments = this.parseCallExpressionArguments(); } else { - node.arguments = this.parseCallExpressionArguments(11, base.type === "Import", base.type !== "Super", node, refExpressionErrors); + node.arguments = this.parseCallExpressionArguments(base.type !== "Super", node, refExpressionErrors); } let finishedNode = this.finishCallExpression(node, optionalChainMember); if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { @@ -10712,26 +11215,12 @@ class ExpressionParser extends LValParser { return this.finishNode(node, "TaggedTemplateExpression"); } atPossibleAsyncArrow(base) { - return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt; - } - expectImportAttributesPlugin() { - if (!this.hasPlugin("importAssertions")) { - this.expectPlugin("importAttributes"); - } + return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.offsetToSourcePos(base.start) === this.state.potentialArrowAt; } finishCallExpression(node, optional) { if (node.callee.type === "Import") { - if (node.arguments.length === 2) { - { - if (!this.hasPlugin("moduleAttributes")) { - this.expectImportAttributesPlugin(); - } - } - } if (node.arguments.length === 0 || node.arguments.length > 2) { - this.raise(Errors.ImportCallArity, node, { - maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1 - }); + this.raise(Errors.ImportCallArity, node); } else { for (const arg of node.arguments) { if (arg.type === "SpreadElement") { @@ -10742,20 +11231,17 @@ class ExpressionParser extends LValParser { } return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); } - parseCallExpressionArguments(close, dynamicImport, allowPlaceholder, nodeForExtra, refExpressionErrors) { + parseCallExpressionArguments(allowPlaceholder, nodeForExtra, refExpressionErrors) { const elts = []; let first = true; const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; this.state.inFSharpPipelineDirectBody = false; - while (!this.eat(close)) { + while (!this.eat(11)) { if (first) { first = false; } else { this.expect(12); - if (this.match(close)) { - if (dynamicImport && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes")) { - this.raise(Errors.ImportCallArgumentTrailingComma, this.state.lastTokStartLoc); - } + if (this.match(11)) { if (nodeForExtra) { this.addTrailingCommaExtraToNode(nodeForExtra); } @@ -10763,7 +11249,7 @@ class ExpressionParser extends LValParser { break; } } - elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder)); + elts.push(this.parseExprListItem(11, false, refExpressionErrors, allowPlaceholder)); } this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; return elts; @@ -10801,10 +11287,10 @@ class ExpressionParser extends LValParser { node = this.startNode(); this.next(); if (this.match(16)) { - return this.parseImportMetaProperty(node); + return this.parseImportMetaPropertyOrPhaseCall(node); } if (this.match(10)) { - if (this.options.createImportExpressions) { + if (this.optionFlags & 512) { return this.parseImportCall(node); } else { return this.finishNode(node, "Import"); @@ -10827,13 +11313,11 @@ class ExpressionParser extends LValParser { this.readRegexp(); return this.parseRegExpLiteral(this.state.value); } - case 134: - return this.parseNumericLiteral(this.state.value); case 135: - return this.parseBigIntLiteral(this.state.value); + return this.parseNumericLiteral(this.state.value); case 136: - return this.parseDecimalLiteral(this.state.value); - case 133: + return this.parseBigIntLiteral(this.state.value); + case 134: return this.parseStringLiteral(this.state.value); case 84: return this.parseNullLiteral(); @@ -10846,19 +11330,9 @@ class ExpressionParser extends LValParser { const canBeArrow = this.state.potentialArrowAt === this.state.start; return this.parseParenAndDistinguishExpression(canBeArrow); } - case 2: - case 1: - { - return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true); - } case 0: { - return this.parseArrayLike(3, true, false, refExpressionErrors); - } - case 6: - case 7: - { - return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + return this.parseArrayLike(3, false, refExpressionErrors); } case 5: { @@ -10887,7 +11361,7 @@ class ExpressionParser extends LValParser { throw this.raise(Errors.UnsupportedBind, callee); } } - case 138: + case 139: { this.raise(Errors.PrivateInExpectedIn, this.state.startLoc, { identifierName: this.state.value @@ -10915,20 +11389,24 @@ class ExpressionParser extends LValParser { if (pipeProposal) { return this.parseTopicReference(pipeProposal); } - this.unexpected(); - break; + throw this.unexpected(); } case 47: { const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { - this.expectOnePlugin(["jsx", "flow", "typescript"]); - } else { - this.unexpected(); + throw this.expectOnePlugin(["jsx", "flow", "typescript"]); } - break; + throw this.unexpected(); } default: + if (type === 137) { + return this.parseDecimalLiteral(this.state.value); + } else if (type === 2 || type === 1) { + return this.parseArrayLike(this.state.type === 2 ? 4 : 3, true); + } else if (type === 6 || type === 7) { + return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true); + } if (tokenIsIdentifier(type)) { if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) { return this.parseModuleExpression(); @@ -10961,7 +11439,7 @@ class ExpressionParser extends LValParser { } return id; } else { - this.unexpected(); + throw this.unexpected(); } } } @@ -10974,9 +11452,8 @@ class ExpressionParser extends LValParser { this.state.end--; this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1); return this.parseTopicReference(pipeProposal); - } else { - this.unexpected(); } + throw this.unexpected(); } parseTopicReference(pipeProposal) { const node = this.startNode(); @@ -10987,12 +11464,19 @@ class ExpressionParser extends LValParser { } finishTopicReference(node, startLoc, pipeProposal, tokenType) { if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) { - const nodeType = pipeProposal === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference"; - if (!this.topicReferenceIsAllowedInCurrentContext()) { - this.raise(pipeProposal === "smart" ? Errors.PrimaryTopicNotAllowed : Errors.PipeTopicUnbound, startLoc); + if (pipeProposal === "hack") { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PipeTopicUnbound, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "TopicReference"); + } else { + if (!this.topicReferenceIsAllowedInCurrentContext()) { + this.raise(Errors.PrimaryTopicNotAllowed, startLoc); + } + this.registerTopicReference(); + return this.finishNode(node, "PipelinePrimaryTopicReference"); } - this.registerTopicReference(); - return this.finishNode(node, nodeType); } else { throw this.raise(Errors.PipeTopicUnconfiguredToken, startLoc, { token: tokenLabelName(tokenType) @@ -11045,10 +11529,14 @@ class ExpressionParser extends LValParser { parseSuper() { const node = this.startNode(); this.next(); - if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) { - this.raise(Errors.SuperNotAllowed, node); - } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) { - this.raise(Errors.UnexpectedSuper, node); + if (this.match(10) && !this.scope.allowDirectSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.SuperNotAllowed, node); + } + } else if (!this.scope.allowSuper) { + if (!(this.optionFlags & 16)) { + this.raise(Errors.UnexpectedSuper, node); + } } if (!this.match(10) && !this.match(0) && !this.match(16)) { this.raise(Errors.UnsupportedSuper, node); @@ -11090,32 +11578,28 @@ class ExpressionParser extends LValParser { } return this.finishNode(node, "MetaProperty"); } - parseImportMetaProperty(node) { - const id = this.createIdentifier(this.startNodeAtNode(node), "import"); + parseImportMetaPropertyOrPhaseCall(node) { this.next(); - if (this.isContextual(101)) { - if (!this.inModule) { - this.raise(Errors.ImportMetaOutsideModule, id); - } - this.sawUnambiguousESM = true; - } else if (this.isContextual(105) || this.isContextual(97)) { + if (this.isContextual(105) || this.isContextual(97)) { const isSource = this.isContextual(105); - if (!isSource) this.unexpected(); this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation"); - if (!this.options.createImportExpressions) { - throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, this.state.startLoc, { - phase: this.state.value - }); - } this.next(); node.phase = isSource ? "source" : "defer"; return this.parseImportCall(node); + } else { + const id = this.createIdentifierAt(this.startNodeAtNode(node), "import", this.state.lastTokStartLoc); + if (this.isContextual(101)) { + if (!this.inModule) { + this.raise(Errors.ImportMetaOutsideModule, id); + } + this.sawUnambiguousESM = true; + } + return this.parseMetaProperty(node, id, "meta"); } - return this.parseMetaProperty(node, id, "meta"); } parseLiteralAtNode(value, type, node) { this.addExtra(node, "rawValue", value); - this.addExtra(node, "raw", this.input.slice(node.start, this.state.end)); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); node.value = value; this.next(); return this.finishNode(node, type); @@ -11137,10 +11621,12 @@ class ExpressionParser extends LValParser { return this.parseLiteral(value, "DecimalLiteral"); } parseRegExpLiteral(value) { - const node = this.parseLiteral(value.value, "RegExpLiteral"); + const node = this.startNode(); + this.addExtra(node, "raw", this.input.slice(this.offsetToSourcePos(node.start), this.state.end)); node.pattern = value.pattern; node.flags = value.flags; - return node; + this.next(); + return this.finishNode(node, "RegExpLiteral"); } parseBooleanLiteral(value) { const node = this.startNode(); @@ -11186,7 +11672,7 @@ class ExpressionParser extends LValParser { break; } } else { - exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem)); + exprList.push(this.parseMaybeAssignAllowInOrVoidPattern(11, refExpressionErrors, this.parseParenItem)); } } const innerEndLoc = this.state.lastTokEndLoc; @@ -11220,7 +11706,7 @@ class ExpressionParser extends LValParser { return this.wrapParenthesis(startLoc, val); } wrapParenthesis(startLoc, expression) { - if (!this.options.createParenthesizedExpressions) { + if (!(this.optionFlags & 1024)) { this.addExtra(expression, "parenthesized", true); this.addExtra(expression, "parenStart", startLoc.index); this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index); @@ -11248,7 +11734,7 @@ class ExpressionParser extends LValParser { const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); this.next(); const metaProp = this.parseMetaProperty(node, meta, "target"); - if (!this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction) { + if (!this.scope.allowNewTarget) { this.raise(Errors.UnexpectedNewTarget, metaProp); } return metaProp; @@ -11303,14 +11789,16 @@ class ExpressionParser extends LValParser { } parseTemplate(isTagged) { const node = this.startNode(); - node.expressions = []; let curElt = this.parseTemplateElement(isTagged); - node.quasis = [curElt]; + const quasis = [curElt]; + const substitutions = []; while (!curElt.tail) { - node.expressions.push(this.parseTemplateSubstitution()); + substitutions.push(this.parseTemplateSubstitution()); this.readTemplateContinuation(); - node.quasis.push(curElt = this.parseTemplateElement(isTagged)); + quasis.push(curElt = this.parseTemplateElement(isTagged)); } + node.expressions = substitutions; + node.quasis = quasis; return this.finishNode(node, "TemplateLiteral"); } parseTemplateSubstitution() { @@ -11322,7 +11810,7 @@ class ExpressionParser extends LValParser { } const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; this.state.inFSharpPipelineDirectBody = false; - const propHash = Object.create(null); + let sawProto = false; let first = true; const node = this.startNode(); node.properties = []; @@ -11342,7 +11830,7 @@ class ExpressionParser extends LValParser { prop = this.parseBindingProperty(); } else { prop = this.parsePropertyDefinition(refExpressionErrors); - this.checkProto(prop, isRecord, propHash, refExpressionErrors); + sawProto = this.checkProto(prop, isRecord, sawProto, refExpressionErrors); } if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { this.raise(Errors.InvalidRecordProperty, prop); @@ -11398,8 +11886,11 @@ class ExpressionParser extends LValParser { let isGenerator = this.eat(55); this.parsePropertyNamePrefixOperator(prop); const containsEsc = this.state.containsEsc; - const key = this.parsePropertyName(prop, refExpressionErrors); + this.parsePropertyName(prop, refExpressionErrors); if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { + const { + key + } = prop; const keyName = key.name; if (keyName === "async" && !this.hasPrecedingLineBreak()) { isAsync = true; @@ -11456,13 +11947,13 @@ class ExpressionParser extends LValParser { parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) { prop.shorthand = false; if (this.eat(14)) { - prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors); - return this.finishNode(prop, "ObjectProperty"); + prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowInOrVoidPattern(8, refExpressionErrors); + return this.finishObjectProperty(prop); } if (!prop.computed && prop.key.type === "Identifier") { this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false); if (isPattern) { - prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); } else if (this.match(29)) { const shorthandAssignLoc = this.state.startLoc; if (refExpressionErrors != null) { @@ -11472,14 +11963,17 @@ class ExpressionParser extends LValParser { } else { this.raise(Errors.InvalidCoverInitializedName, shorthandAssignLoc); } - prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key)); + prop.value = this.parseMaybeDefault(startLoc, this.cloneIdentifier(prop.key)); } else { - prop.value = cloneIdentifier(prop.key); + prop.value = this.cloneIdentifier(prop.key); } prop.shorthand = true; - return this.finishNode(prop, "ObjectProperty"); + return this.finishObjectProperty(prop); } } + finishObjectProperty(node) { + return this.finishNode(node, "ObjectProperty"); + } parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors); if (!node) this.unexpected(); @@ -11500,19 +11994,16 @@ class ExpressionParser extends LValParser { key = this.parseIdentifier(true); } else { switch (type) { - case 134: + case 135: key = this.parseNumericLiteral(value); break; - case 133: + case 134: key = this.parseStringLiteral(value); break; - case 135: + case 136: key = this.parseBigIntLiteral(value); break; - case 136: - key = this.parseDecimalLiteral(value); - break; - case 138: + case 139: { const privateKeyLoc = this.state.startLoc; if (refExpressionErrors != null) { @@ -11526,15 +12017,18 @@ class ExpressionParser extends LValParser { break; } default: + if (type === 137) { + key = this.parseDecimalLiteral(value); + break; + } this.unexpected(); } } prop.key = key; - if (type !== 138) { + if (type !== 139) { prop.computed = false; } } - return prop.key; } initFunction(node, isAsync) { node.id = null; @@ -11544,7 +12038,7 @@ class ExpressionParser extends LValParser { parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { this.initFunction(node, isAsync); node.generator = isGenerator; - this.scope.enter(2 | 16 | (inClassScope ? 64 : 0) | (allowDirectSuper ? 32 : 0)); + this.scope.enter(514 | 16 | (inClassScope ? 576 : 0) | (allowDirectSuper ? 32 : 0)); this.prodParam.enter(functionFlags(isAsync, node.generator)); this.parseFunctionParams(node, isConstructor); const finishedNode = this.parseFunctionBodyAndFinish(node, type, true); @@ -11552,7 +12046,7 @@ class ExpressionParser extends LValParser { this.scope.exit(); return finishedNode; } - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { + parseArrayLike(close, isTuple, refExpressionErrors) { if (isTuple) { this.expectPlugin("recordAndTuple"); } @@ -11565,7 +12059,7 @@ class ExpressionParser extends LValParser { return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); } parseArrowExpression(node, params, isAsync, trailingCommaLoc) { - this.scope.enter(2 | 4); + this.scope.enter(514 | 4); let flags = functionFlags(isAsync, false); if (!this.match(5) && this.prodParam.hasIn) { flags |= 8; @@ -11634,12 +12128,7 @@ class ExpressionParser extends LValParser { type: "FormalParameters" }; for (const param of node.params) { - this.checkLVal(param, { - in: formalParameters, - binding: 5, - checkClashes, - strictModeChanged - }); + this.checkLVal(param, formalParameters, 5, checkClashes, strictModeChanged); } } parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { @@ -11658,11 +12147,11 @@ class ExpressionParser extends LValParser { break; } } - elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors)); + elts.push(this.parseExprListItem(close, allowEmpty, refExpressionErrors)); } return elts; } - parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) { + parseExprListItem(close, allowEmpty, refExpressionErrors, allowPlaceholder) { let elt; if (this.match(12)) { if (!allowEmpty) { @@ -11683,7 +12172,7 @@ class ExpressionParser extends LValParser { this.next(); elt = this.finishNode(node, "ArgumentPlaceholder"); } else { - elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem); + elt = this.parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, this.parseParenItem); } return elt; } @@ -11697,6 +12186,11 @@ class ExpressionParser extends LValParser { node.loc.identifierName = name; return this.finishNode(node, "Identifier"); } + createIdentifierAt(node, name, endLoc) { + node.name = name; + node.loc.identifierName = name; + return this.finishNodeAt(node, "Identifier", endLoc); + } parseIdentifierName(liberal) { let name; const { @@ -11760,12 +12254,12 @@ class ExpressionParser extends LValParser { } } } - isAwaitAllowed() { - if (this.prodParam.hasAwait) return true; - if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) { - return true; + recordAwaitIfAllowed() { + const isAwaitAllowed = this.prodParam.hasAwait; + if (isAwaitAllowed && !this.scope.inFunction) { + this.state.hasTopLevelAwait = true; } - return false; + return isAwaitAllowed; } parseAwait(startLoc) { const node = this.startNodeAt(startLoc); @@ -11773,8 +12267,8 @@ class ExpressionParser extends LValParser { if (this.eat(55)) { this.raise(Errors.ObsoleteAwaitStar, node); } - if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) { - if (this.isAmbiguousAwait()) { + if (!this.scope.inFunction && !(this.optionFlags & 1)) { + if (this.isAmbiguousPrefixOrIdentifier()) { this.ambiguousScriptDifferentAst = true; } else { this.sawUnambiguousESM = true; @@ -11785,24 +12279,23 @@ class ExpressionParser extends LValParser { } return this.finishNode(node, "AwaitExpression"); } - isAmbiguousAwait() { + isAmbiguousPrefixOrIdentifier() { if (this.hasPrecedingLineBreak()) return true; const { type } = this.state; - return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 137 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; + return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 138 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54; } - parseYield() { - const node = this.startNode(); + parseYield(startLoc) { + const node = this.startNodeAt(startLoc); this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, node); - this.next(); let delegating = false; let argument = null; if (!this.hasPrecedingLineBreak()) { delegating = this.eat(55); switch (this.state.type) { case 13: - case 139: + case 140: case 8: case 11: case 3: @@ -11821,14 +12314,21 @@ class ExpressionParser extends LValParser { parseImportCall(node) { this.next(); node.source = this.parseMaybeAssignAllowIn(); - if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { - node.options = null; - } + node.options = null; if (this.eat(12)) { - this.expectImportAttributesPlugin(); if (!this.match(11)) { node.options = this.parseMaybeAssignAllowIn(); - this.eat(12); + if (this.eat(12)) { + this.addTrailingCommaExtraToNode(node.options); + if (!this.match(11)) { + do { + this.parseMaybeAssignAllowIn(); + } while (this.eat(12) && !this.match(11)); + this.raise(Errors.ImportCallArity, node); + } + } + } else { + this.addTrailingCommaExtraToNode(node.source); } } this.expect(11); @@ -11974,6 +12474,24 @@ class ExpressionParser extends LValParser { } return this.finishNode(node, "ModuleExpression"); } + parseVoidPattern(refExpressionErrors) { + this.expectPlugin("discardBinding"); + const node = this.startNode(); + if (refExpressionErrors != null) { + refExpressionErrors.voidPatternLoc = this.state.startLoc; + } + this.next(); + return this.finishNode(node, "VoidPattern"); + } + parseMaybeAssignAllowInOrVoidPattern(close, refExpressionErrors, afterLeftParse) { + if (refExpressionErrors != null && this.match(88)) { + const nextCode = this.lookaheadCharCode(); + if (nextCode === 44 || nextCode === (close === 3 ? 93 : close === 8 ? 125 : 41) || nextCode === 61) { + return this.parseMaybeDefault(this.state.startLoc, this.parseVoidPattern(refExpressionErrors)); + } + } + return this.parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse); + } parsePropertyNamePrefixOperator(prop) {} } const loopLabel = { @@ -11984,107 +12502,105 @@ const loopLabel = { }; const loneSurrogate = /[\uD800-\uDFFF]/u; const keywordRelationalOperator = /in(?:stanceof)?/y; -function babel7CompatTokens(tokens, input) { +function babel7CompatTokens(tokens, input, startIndex) { for (let i = 0; i < tokens.length; i++) { const token = tokens[i]; const { type } = token; if (typeof type === "number") { - { - if (type === 138) { - const { - loc, - start, - value, - end - } = token; - const hashEndPos = start + 1; - const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); - tokens.splice(i, 1, new Token({ - type: getExportedToken(27), - value: "#", + if (type === 139) { + const { + loc, + start, + value, + end + } = token; + const hashEndPos = start + 1; + const hashEndLoc = createPositionWithColumnOffset(loc.start, 1); + tokens.splice(i, 1, new Token({ + type: getExportedToken(27), + value: "#", + start: start, + end: hashEndPos, + startLoc: loc.start, + endLoc: hashEndLoc + }), new Token({ + type: getExportedToken(132), + value: value, + start: hashEndPos, + end: end, + startLoc: hashEndLoc, + endLoc: loc.end + })); + i++; + continue; + } + if (tokenIsTemplate(type)) { + const { + loc, + start, + value, + end + } = token; + const backquoteEnd = start + 1; + const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); + let startToken; + if (input.charCodeAt(start - startIndex) === 96) { + startToken = new Token({ + type: getExportedToken(22), + value: "`", start: start, - end: hashEndPos, + end: backquoteEnd, startLoc: loc.start, - endLoc: hashEndLoc - }), new Token({ - type: getExportedToken(132), - value: value, - start: hashEndPos, + endLoc: backquoteEndLoc + }); + } else { + startToken = new Token({ + type: getExportedToken(8), + value: "}", + start: start, + end: backquoteEnd, + startLoc: loc.start, + endLoc: backquoteEndLoc + }); + } + let templateValue, templateElementEnd, templateElementEndLoc, endToken; + if (type === 24) { + templateElementEnd = end - 1; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); + templateValue = value === null ? null : value.slice(1, -1); + endToken = new Token({ + type: getExportedToken(22), + value: "`", + start: templateElementEnd, end: end, - startLoc: hashEndLoc, + startLoc: templateElementEndLoc, endLoc: loc.end - })); - i++; - continue; - } - if (tokenIsTemplate(type)) { - const { - loc, - start, - value, - end - } = token; - const backquoteEnd = start + 1; - const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1); - let startToken; - if (input.charCodeAt(start) === 96) { - startToken = new Token({ - type: getExportedToken(22), - value: "`", - start: start, - end: backquoteEnd, - startLoc: loc.start, - endLoc: backquoteEndLoc - }); - } else { - startToken = new Token({ - type: getExportedToken(8), - value: "}", - start: start, - end: backquoteEnd, - startLoc: loc.start, - endLoc: backquoteEndLoc - }); - } - let templateValue, templateElementEnd, templateElementEndLoc, endToken; - if (type === 24) { - templateElementEnd = end - 1; - templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1); - templateValue = value === null ? null : value.slice(1, -1); - endToken = new Token({ - type: getExportedToken(22), - value: "`", - start: templateElementEnd, - end: end, - startLoc: templateElementEndLoc, - endLoc: loc.end - }); - } else { - templateElementEnd = end - 2; - templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); - templateValue = value === null ? null : value.slice(1, -2); - endToken = new Token({ - type: getExportedToken(23), - value: "${", - start: templateElementEnd, - end: end, - startLoc: templateElementEndLoc, - endLoc: loc.end - }); - } - tokens.splice(i, 1, startToken, new Token({ - type: getExportedToken(20), - value: templateValue, - start: backquoteEnd, - end: templateElementEnd, - startLoc: backquoteEndLoc, - endLoc: templateElementEndLoc - }), endToken); - i += 2; - continue; + }); + } else { + templateElementEnd = end - 2; + templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2); + templateValue = value === null ? null : value.slice(1, -2); + endToken = new Token({ + type: getExportedToken(23), + value: "${", + start: templateElementEnd, + end: end, + startLoc: templateElementEndLoc, + endLoc: loc.end + }); } + tokens.splice(i, 1, startToken, new Token({ + type: getExportedToken(20), + value: templateValue, + start: backquoteEnd, + end: templateElementEnd, + startLoc: backquoteEndLoc, + endLoc: templateElementEndLoc + }), endToken); + i += 2; + continue; } token.type = getExportedToken(type); } @@ -12093,26 +12609,29 @@ function babel7CompatTokens(tokens, input) { } class StatementParser extends ExpressionParser { parseTopLevel(file, program) { - file.program = this.parseProgram(program); + file.program = this.parseProgram(program, 140, this.options.sourceType === "module" ? "module" : "script"); file.comments = this.comments; - if (this.options.tokens) { - file.tokens = babel7CompatTokens(this.tokens, this.input); + if (this.optionFlags & 256) { + file.tokens = babel7CompatTokens(this.tokens, this.input, this.startIndex); } return this.finishNode(file, "File"); } - parseProgram(program, end = 139, sourceType = this.options.sourceType) { + parseProgram(program, end, sourceType) { program.sourceType = sourceType; program.interpreter = this.parseInterpreterDirective(); this.parseBlockBody(program, true, true, end); - if (this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) { - for (const [localName, at] of Array.from(this.scope.undefinedExports)) { - this.raise(Errors.ModuleExportUndefined, at, { - localName - }); + if (this.inModule) { + if (!(this.optionFlags & 64) && this.scope.undefinedExports.size > 0) { + for (const [localName, at] of Array.from(this.scope.undefinedExports)) { + this.raise(Errors.ModuleExportUndefined, at, { + localName + }); + } } + this.addExtra(program, "topLevelAwait", this.state.hasTopLevelAwait); } let finishedProgram; - if (end === 139) { + if (end === 140) { finishedProgram = this.finishNode(program, "Program"); } else { finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1)); @@ -12120,18 +12639,16 @@ class StatementParser extends ExpressionParser { return finishedProgram; } stmtToDirective(stmt) { - const directive = stmt; - directive.type = "Directive"; - directive.value = directive.expression; - delete directive.expression; - const directiveLiteral = directive.value; + const directive = this.castNodeTo(stmt, "Directive"); + const directiveLiteral = this.castNodeTo(stmt.expression, "DirectiveLiteral"); const expressionValue = directiveLiteral.value; - const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end); + const raw = this.input.slice(this.offsetToSourcePos(directiveLiteral.start), this.offsetToSourcePos(directiveLiteral.end)); const val = directiveLiteral.value = raw.slice(1, -1); this.addExtra(directiveLiteral, "raw", raw); this.addExtra(directiveLiteral, "rawValue", val); this.addExtra(directiveLiteral, "expressionValue", expressionValue); - directiveLiteral.type = "DirectiveLiteral"; + directive.value = directiveLiteral; + delete stmt.expression; return directive; } parseInterpreterDirective() { @@ -12149,6 +12666,48 @@ class StatementParser extends ExpressionParser { } return this.hasFollowingBindingAtom(); } + isUsing() { + if (!this.isContextual(107)) { + return false; + } + return this.nextTokenIsIdentifierOnSameLine(); + } + isForUsing() { + if (!this.isContextual(107)) { + return false; + } + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + if (this.isUnparsedContextual(next, "of")) { + const nextCharAfterOf = this.lookaheadCharCodeSince(next + 2); + if (nextCharAfterOf !== 61 && nextCharAfterOf !== 58 && nextCharAfterOf !== 59) { + return false; + } + } + if (this.chStartsBindingIdentifier(nextCh, next) || this.isUnparsedContextual(next, "void")) { + return true; + } + return false; + } + nextTokenIsIdentifierOnSameLine() { + const next = this.nextTokenInLineStart(); + const nextCh = this.codePointAtPos(next); + return this.chStartsBindingIdentifier(nextCh, next); + } + isAwaitUsing() { + if (!this.isContextual(96)) { + return false; + } + let next = this.nextTokenInLineStart(); + if (this.isUnparsedContextual(next, "using")) { + next = this.nextTokenInLineStartSince(next + 5); + const nextCh = this.codePointAtPos(next); + if (this.chStartsBindingIdentifier(nextCh, next)) { + return true; + } + } + return false; + } chStartsBindingIdentifier(ch, pos) { if (isIdentifierStart(ch)) { keywordRelationalOperator.lastIndex = pos; @@ -12173,34 +12732,13 @@ class StatementParser extends ExpressionParser { const nextCh = this.codePointAtPos(next); return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next); } - hasInLineFollowingBindingIdentifier() { + hasInLineFollowingBindingIdentifierOrBrace() { const next = this.nextTokenInLineStart(); const nextCh = this.codePointAtPos(next); - return this.chStartsBindingIdentifier(nextCh, next); + return nextCh === 123 || this.chStartsBindingIdentifier(nextCh, next); } - startsUsingForOf() { - const { - type, - containsEsc - } = this.lookahead(); - if (type === 102 && !containsEsc) { - return false; - } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) { - this.expectPlugin("explicitResourceManagement"); - return true; - } - } - startsAwaitUsing() { - let next = this.nextTokenInLineStart(); - if (this.isUnparsedContextual(next, "using")) { - next = this.nextTokenInLineStartSince(next + 5); - const nextCh = this.codePointAtPos(next); - if (this.chStartsBindingIdentifier(nextCh, next)) { - this.expectPlugin("explicitResourceManagement"); - return true; - } - } - return false; + allowsUsing() { + return (this.scope.inModule || !this.scope.inTopLevel) && !this.scope.inBareCaseStatement; } parseModuleItem() { return this.parseStatementLike(1 | 2 | 4 | 8); @@ -12229,12 +12767,12 @@ class StatementParser extends ExpressionParser { return this.parseStatementContent(flags, decorators); } parseStatementContent(flags, decorators) { - const starttype = this.state.type; + const startType = this.state.type; const node = this.startNode(); const allowDeclaration = !!(flags & 2); const allowFunctionDeclaration = !!(flags & 4); const topLevel = flags & 1; - switch (starttype) { + switch (startType) { case 60: return this.parseBreakContinueStatement(node, true); case 63: @@ -12265,22 +12803,23 @@ class StatementParser extends ExpressionParser { case 73: return this.parseTryStatement(node); case 96: - if (!this.state.containsEsc && this.startsAwaitUsing()) { - if (!this.isAwaitAllowed()) { - this.raise(Errors.AwaitUsingNotInAsyncContext, node); + if (this.isAwaitUsing()) { + if (!this.allowsUsing()) { + this.raise(Errors.UnexpectedUsingDeclaration, node); } else if (!allowDeclaration) { this.raise(Errors.UnexpectedLexicalDeclaration, node); + } else if (!this.recordAwaitIfAllowed()) { + this.raise(Errors.AwaitUsingNotInAsyncContext, node); } this.next(); return this.parseVarStatement(node, "await using"); } break; case 107: - if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifier()) { + if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifierOrBrace()) { break; } - this.expectPlugin("explicitResourceManagement"); - if (!this.scope.inModule && this.scope.inTopLevel) { + if (!this.allowsUsing()) { this.raise(Errors.UnexpectedUsingDeclaration, this.state.startLoc); } else if (!allowDeclaration) { this.raise(Errors.UnexpectedLexicalDeclaration, this.state.startLoc); @@ -12328,21 +12867,15 @@ class StatementParser extends ExpressionParser { } case 82: { - if (!this.options.allowImportExportEverywhere && !topLevel) { + if (!(this.optionFlags & 8) && !topLevel) { this.raise(Errors.UnexpectedImportExport, this.state.startLoc); } this.next(); let result; - if (starttype === 83) { + if (startType === 83) { result = this.parseImport(node); - if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) { - this.sawUnambiguousESM = true; - } } else { result = this.parseExport(node, decorators); - if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") { - this.sawUnambiguousESM = true; - } } this.assertModuleNodeAllowed(result); return result; @@ -12360,14 +12893,14 @@ class StatementParser extends ExpressionParser { } const maybeName = this.state.value; const expr = this.parseExpression(); - if (tokenIsIdentifier(starttype) && expr.type === "Identifier" && this.eat(14)) { + if (tokenIsIdentifier(startType) && expr.type === "Identifier" && this.eat(14)) { return this.parseLabeledStatement(node, maybeName, expr, flags); } else { return this.parseExpressionStatement(node, expr, decorators); } } assertModuleNodeAllowed(node) { - if (!this.options.allowImportExportEverywhere && !this.inModule) { + if (!(this.optionFlags & 8) && !this.inModule) { this.raise(Errors.ImportOutsideModule, node); } } @@ -12377,7 +12910,8 @@ class StatementParser extends ExpressionParser { } maybeTakeDecorators(maybeDecorators, classNode, exportNode) { if (maybeDecorators) { - if (classNode.decorators && classNode.decorators.length > 0) { + var _classNode$decorators; + if ((_classNode$decorators = classNode.decorators) != null && _classNode$decorators.length) { if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") { this.raise(Errors.DecoratorsBeforeAfterExport, classNode.decorators[0]); } @@ -12424,7 +12958,7 @@ class StatementParser extends ExpressionParser { this.expect(11); expr = this.wrapParenthesis(startLoc, expr); const paramsStartLoc = this.state.startLoc; - node.expression = this.parseMaybeDecoratorArguments(expr); + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) { this.raise(Errors.DecoratorArgumentsOutsideParentheses, paramsStartLoc); } @@ -12433,7 +12967,7 @@ class StatementParser extends ExpressionParser { while (this.eat(16)) { const node = this.startNodeAt(startLoc); node.object = expr; - if (this.match(138)) { + if (this.match(139)) { this.classScope.usePrivateName(this.state.value, this.state.startLoc); node.property = this.parsePrivateName(); } else { @@ -12442,18 +12976,18 @@ class StatementParser extends ExpressionParser { node.computed = false; expr = this.finishNode(node, "MemberExpression"); } - node.expression = this.parseMaybeDecoratorArguments(expr); + node.expression = this.parseMaybeDecoratorArguments(expr, startLoc); } } else { node.expression = this.parseExprSubscripts(); } return this.finishNode(node, "Decorator"); } - parseMaybeDecoratorArguments(expr) { + parseMaybeDecoratorArguments(expr, startLoc) { if (this.eat(10)) { - const node = this.startNodeAtNode(expr); + const node = this.startNodeAt(startLoc); node.callee = expr; - node.arguments = this.parseCallExpressionArguments(11, false); + node.arguments = this.parseCallExpressionArguments(); this.toReferencedList(node.arguments); return this.finishNode(node, "CallExpression"); } @@ -12513,8 +13047,9 @@ class StatementParser extends ExpressionParser { this.next(); this.state.labels.push(loopLabel); let awaitAt = null; - if (this.isAwaitAllowed() && this.eatContextual(96)) { - awaitAt = this.state.lastTokStartLoc; + if (this.isContextual(96) && this.recordAwaitIfAllowed()) { + awaitAt = this.state.startLoc; + this.next(); } this.scope.enter(0); this.expect(10); @@ -12526,15 +13061,15 @@ class StatementParser extends ExpressionParser { } const startsWithLet = this.isContextual(100); { - const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing(); - const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf(); + const startsWithAwaitUsing = this.isAwaitUsing(); + const starsWithUsingDeclaration = startsWithAwaitUsing || this.isForUsing(); const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration; if (this.match(74) || this.match(75) || isLetOrUsing) { const initNode = this.startNode(); let kind; if (startsWithAwaitUsing) { kind = "await using"; - if (!this.isAwaitAllowed()) { + if (!this.recordAwaitIfAllowed()) { this.raise(Errors.AwaitUsingNotInAsyncContext, this.state.startLoc); } this.next(); @@ -12574,9 +13109,7 @@ class StatementParser extends ExpressionParser { this.toAssignable(init, true); const type = isForOf ? "ForOfStatement" : "ForInStatement"; this.checkLVal(init, { - in: { - type - } + type }); return this.parseForIn(node, init, awaitAt); } else { @@ -12599,7 +13132,7 @@ class StatementParser extends ExpressionParser { return this.finishNode(node, "IfStatement"); } parseReturnStatement(node) { - if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) { + if (!this.prodParam.hasReturn) { this.raise(Errors.IllegalReturn, this.state.startLoc); } this.next(); @@ -12617,7 +13150,7 @@ class StatementParser extends ExpressionParser { const cases = node.cases = []; this.expect(5); this.state.labels.push(switchLabel); - this.scope.enter(0); + this.scope.enter(256); let cur; for (let sawDefault; !this.match(8);) { if (this.match(61) || this.match(65)) { @@ -12663,11 +13196,8 @@ class StatementParser extends ExpressionParser { const param = this.parseBindingAtom(); this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0); this.checkLVal(param, { - in: { - type: "CatchClause" - }, - binding: 9 - }); + type: "CatchClause" + }, 9); return param; } parseTryStatement(node) { @@ -12734,7 +13264,7 @@ class StatementParser extends ExpressionParser { for (let i = this.state.labels.length - 1; i >= 0; i--) { const label = this.state.labels[i]; if (label.statementStart === node.start) { - label.statementStart = this.state.start; + label.statementStart = this.sourceToOffsetPos(this.state.start); label.kind = kind; } else { break; @@ -12743,7 +13273,7 @@ class StatementParser extends ExpressionParser { this.state.labels.push({ name: maybeName, kind: kind, - statementStart: this.state.start + statementStart: this.sourceToOffsetPos(this.state.start) }); node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement(); this.state.labels.pop(); @@ -12857,9 +13387,9 @@ class StatementParser extends ExpressionParser { this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { kind: "destructuring" }); - } else if (kind === "const" && !(this.match(58) || this.isContextual(102))) { + } else if ((kind === "const" || kind === "using" || kind === "await using") && !(this.match(58) || this.isContextual(102))) { this.raise(Errors.DeclarationMissingInitializer, this.state.lastTokEndLoc, { - kind: "const" + kind }); } } @@ -12870,12 +13400,18 @@ class StatementParser extends ExpressionParser { } parseVarId(decl, kind) { const id = this.parseBindingAtom(); + if (kind === "using" || kind === "await using") { + if (id.type === "ArrayPattern" || id.type === "ObjectPattern") { + this.raise(Errors.UsingDeclarationHasBindingPattern, id.loc.start); + } + } else { + if (id.type === "VoidPattern") { + this.raise(Errors.UnexpectedVoidPattern, id.loc.start); + } + } this.checkLVal(id, { - in: { - type: "VariableDeclarator" - }, - binding: kind === "var" ? 5 : 8201 - }); + type: "VariableDeclarator" + }, kind === "var" ? 5 : 8201); decl.id = id; } parseAsyncFunctionExpression(node) { @@ -12899,7 +13435,7 @@ class StatementParser extends ExpressionParser { } const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; this.state.maybeInArrowParameters = false; - this.scope.enter(2); + this.scope.enter(514); this.prodParam.enter(functionFlags(isAsync, node.generator)); if (!isDeclaration) { node.id = this.parseFunctionId(); @@ -12944,8 +13480,11 @@ class StatementParser extends ExpressionParser { isClassMethod() { return this.match(10); } + nameIsConstructor(key) { + return key.type === "Identifier" && key.name === "constructor" || key.type === "StringLiteral" && key.value === "constructor"; + } isNonstaticConstructor(method) { - return !method.computed && !method.static && (method.key.name === "constructor" || method.key.value === "constructor"); + return !method.computed && !method.static && this.nameIsConstructor(method.key); } parseClassBody(hadSuperClass, oldStrict) { this.classScope.enter(); @@ -13035,8 +13574,9 @@ class StatementParser extends ExpressionParser { this.parsePropertyNamePrefixOperator(member); if (this.eat(55)) { method.kind = "method"; - const isPrivateName = this.match(138); + const isPrivateName = this.match(139); this.parseClassElementName(method); + this.parsePostMemberNameModifiers(method); if (isPrivateName) { this.pushClassPrivateMethod(classBody, privateMethod, true, false); return; @@ -13047,9 +13587,10 @@ class StatementParser extends ExpressionParser { this.pushClassMethod(classBody, publicMethod, true, false, false, false); return; } - const isContextual = tokenIsIdentifier(this.state.type) && !this.state.containsEsc; - const isPrivate = this.match(138); + const isContextual = !this.state.containsEsc && tokenIsIdentifier(this.state.type); const key = this.parseClassElementName(member); + const maybeContextualKw = isContextual ? key.name : null; + const isPrivate = this.isPrivateName(key); const maybeQuestionTokenStartLoc = this.state.startLoc; this.parsePostMemberNameModifiers(publicMember); if (this.isClassMethod()) { @@ -13078,14 +13619,14 @@ class StatementParser extends ExpressionParser { } else { this.pushClassProperty(classBody, publicProp); } - } else if (isContextual && key.name === "async" && !this.isLineTerminator()) { + } else if (maybeContextualKw === "async" && !this.isLineTerminator()) { this.resetPreviousNodeTrailingComments(key); const isGenerator = this.eat(55); if (publicMember.optional) { this.unexpected(maybeQuestionTokenStartLoc); } method.kind = "method"; - const isPrivate = this.match(138); + const isPrivate = this.match(139); this.parseClassElementName(method); this.parsePostMemberNameModifiers(publicMember); if (isPrivate) { @@ -13096,10 +13637,10 @@ class StatementParser extends ExpressionParser { } this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); } - } else if (isContextual && (key.name === "get" || key.name === "set") && !(this.match(55) && this.isLineTerminator())) { + } else if ((maybeContextualKw === "get" || maybeContextualKw === "set") && !(this.match(55) && this.isLineTerminator())) { this.resetPreviousNodeTrailingComments(key); - method.kind = key.name; - const isPrivate = this.match(138); + method.kind = maybeContextualKw; + const isPrivate = this.match(139); this.parseClassElementName(publicMethod); if (isPrivate) { this.pushClassPrivateMethod(classBody, privateMethod, false, false); @@ -13110,10 +13651,10 @@ class StatementParser extends ExpressionParser { this.pushClassMethod(classBody, publicMethod, false, false, false, false); } this.checkGetterSetterParams(publicMethod); - } else if (isContextual && key.name === "accessor" && !this.isLineTerminator()) { + } else if (maybeContextualKw === "accessor" && !this.isLineTerminator()) { this.expectPlugin("decoratorAutoAccessors"); this.resetPreviousNodeTrailingComments(key); - const isPrivate = this.match(138); + const isPrivate = this.match(139); this.parseClassElementName(publicProp); this.pushClassAccessorProperty(classBody, accessorProp, isPrivate); } else if (this.isLineTerminator()) { @@ -13131,10 +13672,10 @@ class StatementParser extends ExpressionParser { type, value } = this.state; - if ((type === 132 || type === 133) && member.static && value === "prototype") { + if ((type === 132 || type === 134) && member.static && value === "prototype") { this.raise(Errors.StaticPrototype, this.state.startLoc); } - if (type === 138) { + if (type === 139) { if (value === "constructor") { this.raise(Errors.ConstructorClassPrivateField, this.state.startLoc); } @@ -13142,11 +13683,12 @@ class StatementParser extends ExpressionParser { member.key = key; return key; } - return this.parsePropertyName(member); + this.parsePropertyName(member); + return member.key; } parseClassStaticBlock(classBody, member) { var _member$decorators; - this.scope.enter(64 | 128 | 16); + this.scope.enter(576 | 128 | 16); const oldLabels = this.state.labels; this.state.labels = []; this.prodParam.enter(0); @@ -13161,7 +13703,7 @@ class StatementParser extends ExpressionParser { } } pushClassProperty(classBody, prop) { - if (!prop.computed && (prop.key.name === "constructor" || prop.key.value === "constructor")) { + if (!prop.computed && this.nameIsConstructor(prop.key)) { this.raise(Errors.ConstructorClassField, prop.key); } classBody.body.push(this.parseClassProperty(prop)); @@ -13172,11 +13714,8 @@ class StatementParser extends ExpressionParser { this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start); } pushClassAccessorProperty(classBody, prop, isPrivate) { - if (!isPrivate && !prop.computed) { - const key = prop.key; - if (key.name === "constructor" || key.value === "constructor") { - this.raise(Errors.ConstructorClassField, key); - } + if (!isPrivate && !prop.computed && this.nameIsConstructor(prop.key)) { + this.raise(Errors.ConstructorClassField, prop.key); } const node = this.parseClassAccessorProperty(prop); classBody.body.push(node); @@ -13213,7 +13752,7 @@ class StatementParser extends ExpressionParser { return this.finishNode(node, "ClassAccessorProperty"); } parseInitializer(node) { - this.scope.enter(64 | 16); + this.scope.enter(576 | 16); this.expressionScope.enter(newExpressionScope()); this.prodParam.enter(0); node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; @@ -13252,6 +13791,7 @@ class StatementParser extends ExpressionParser { throw this.raise(Errors.UnsupportedDecoratorExport, node); } this.parseExportFrom(node, true); + this.sawUnambiguousESM = true; return this.finishNode(node, "ExportAllDeclaration"); } const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); @@ -13280,6 +13820,7 @@ class StatementParser extends ExpressionParser { } else if (decorators) { throw this.raise(Errors.UnsupportedDecoratorExport, node); } + this.sawUnambiguousESM = true; return this.finishNode(node2, "ExportNamedDeclaration"); } if (this.eat(65)) { @@ -13292,9 +13833,10 @@ class StatementParser extends ExpressionParser { throw this.raise(Errors.UnsupportedDecoratorExport, node); } this.checkExport(node2, true, true); + this.sawUnambiguousESM = true; return this.finishNode(node2, "ExportDefaultDeclaration"); } - this.unexpected(null, 5); + throw this.unexpected(null, 5); } eatExportStar(node) { return this.eat(55); @@ -13312,7 +13854,8 @@ class StatementParser extends ExpressionParser { } maybeParseExportNamespaceSpecifier(node) { if (this.isContextual(93)) { - if (!node.specifiers) node.specifiers = []; + var _ref, _ref$specifiers; + (_ref$specifiers = (_ref = node).specifiers) != null ? _ref$specifiers : _ref.specifiers = []; const specifier = this.startNodeAt(this.state.lastTokStartLoc); this.next(); specifier.exported = this.parseModuleExportName(); @@ -13323,14 +13866,17 @@ class StatementParser extends ExpressionParser { } maybeParseExportNamedSpecifiers(node) { if (this.match(5)) { - if (!node.specifiers) node.specifiers = []; - const isTypeExport = node.exportKind === "type"; - node.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); - node.source = null; - node.declaration = null; + const node2 = node; + if (!node2.specifiers) node2.specifiers = []; + const isTypeExport = node2.exportKind === "type"; + node2.specifiers.push(...this.parseExportSpecifiers(isTypeExport)); + node2.source = null; if (this.hasPlugin("importAssertions")) { - node.assertions = []; + node2.assertions = []; + } else { + node2.attributes = []; } + node2.declaration = null; return true; } return false; @@ -13341,6 +13887,8 @@ class StatementParser extends ExpressionParser { node.source = null; if (this.hasPlugin("importAssertions")) { node.assertions = []; + } else { + node.attributes = []; } node.declaration = this.parseExportDeclaration(node); return true; @@ -13371,7 +13919,7 @@ class StatementParser extends ExpressionParser { } return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true); } - if (this.match(75) || this.match(74) || this.isLet()) { + if (this.match(75) || this.match(74) || this.isLet() || this.isUsing() || this.isAwaitUsing()) { throw this.raise(Errors.UnsupportedDefaultExport, this.state.startLoc); } const res = this.parseMaybeAssignAllowIn(); @@ -13394,10 +13942,9 @@ class StatementParser extends ExpressionParser { return false; } if ((type === 130 || type === 129) && !this.state.containsEsc) { - const { - type: nextType - } = this.lookahead(); - if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) { + const next = this.nextTokenStart(); + const nextChar = this.input.charCodeAt(next); + if (nextChar === 123 || this.chStartsBindingIdentifier(nextChar, next) && !this.input.startsWith("from", next)) { this.expectOnePlugin(["flow", "typescript"]); return false; } @@ -13440,6 +13987,14 @@ class StatementParser extends ExpressionParser { return true; } } + if (this.isUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } + if (this.isAwaitUsing()) { + this.raise(Errors.UsingDeclarationExport, this.state.startLoc); + return true; + } return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction(); } checkExport(node, checkNames, isDefault, isFrom) { @@ -13477,12 +14032,15 @@ class StatementParser extends ExpressionParser { } } } else if (node.declaration) { - if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") { - const id = node.declaration.id; + const decl = node.declaration; + if (decl.type === "FunctionDeclaration" || decl.type === "ClassDeclaration") { + const { + id + } = decl; if (!id) throw new Error("Assertion failure"); this.checkDuplicateExports(node, id.name); - } else if (node.declaration.type === "VariableDeclaration") { - for (const declaration of node.declaration.declarations) { + } else if (decl.type === "VariableDeclaration") { + for (const declaration of decl.declarations) { this.checkDeclaration(declaration.id); } } @@ -13534,7 +14092,7 @@ class StatementParser extends ExpressionParser { if (this.eat(8)) break; } const isMaybeTypeOnly = this.isContextual(130); - const isString = this.match(133); + const isString = this.match(134); const node = this.startNode(); node.local = this.parseModuleExportName(); nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly)); @@ -13545,16 +14103,16 @@ class StatementParser extends ExpressionParser { if (this.eatContextual(93)) { node.exported = this.parseModuleExportName(); } else if (isString) { - node.exported = cloneStringLiteral(node.local); + node.exported = this.cloneStringLiteral(node.local); } else if (!node.exported) { - node.exported = cloneIdentifier(node.local); + node.exported = this.cloneIdentifier(node.local); } return this.finishNode(node, "ExportSpecifier"); } parseModuleExportName() { - if (this.match(133)) { + if (this.match(134)) { const result = this.parseStringLiteral(this.state.value); - const surrogate = result.value.match(loneSurrogate); + const surrogate = loneSurrogate.exec(result.value); if (surrogate) { this.raise(Errors.ModuleExportNameHasLoneSurrogate, result, { surrogateCharCode: surrogate[0].charCodeAt(0) @@ -13650,18 +14208,18 @@ class StatementParser extends ExpressionParser { this.applyImportPhase(node, isExport, null); return null; } - const phaseIdentifier = this.parseIdentifier(true); + const phaseIdentifier = this.startNode(); + const phaseIdentifierName = this.parseIdentifierName(true); const { type } = this.state; const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; if (isImportPhase) { - this.resetPreviousIdentifierLeadingComments(phaseIdentifier); - this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start); + this.applyImportPhase(node, isExport, phaseIdentifierName, phaseIdentifier.loc.start); return null; } else { this.applyImportPhase(node, isExport, null); - return phaseIdentifier; + return this.createIdentifier(phaseIdentifier, phaseIdentifierName); } } isPrecedingIdImportPhase(phase) { @@ -13671,7 +14229,7 @@ class StatementParser extends ExpressionParser { return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12; } parseImport(node) { - if (this.match(133)) { + if (this.match(134)) { return this.parseImportSourceAndAttributes(node); } return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false)); @@ -13693,10 +14251,11 @@ class StatementParser extends ExpressionParser { this.checkImportReflection(node); this.checkJSONModuleImport(node); this.semicolon(); + this.sawUnambiguousESM = true; return this.finishNode(node, "ImportDeclaration"); } parseImportSource() { - if (!this.match(133)) this.unexpected(); + if (!this.match(134)) this.unexpected(); return this.parseExprAtom(); } parseImportSpecifierLocal(node, specifier, type) { @@ -13705,11 +14264,8 @@ class StatementParser extends ExpressionParser { } finishImportSpecifier(specifier, type, bindingType = 8201) { this.checkLVal(specifier.local, { - in: { - type - }, - binding: bindingType - }); + type + }, bindingType); return this.finishNode(specifier, type); } parseImportAttributes() { @@ -13728,13 +14284,13 @@ class StatementParser extends ExpressionParser { }); } attrNames.add(keyName); - if (this.match(133)) { + if (this.match(134)) { node.key = this.parseStringLiteral(keyName); } else { node.key = this.parseIdentifier(true); } this.expect(14); - if (!this.match(133)) { + if (!this.match(134)) { throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); } node.value = this.parseStringLiteral(this.state.value); @@ -13759,7 +14315,7 @@ class StatementParser extends ExpressionParser { } attributes.add(node.key.name); this.expect(14); - if (!this.match(133)) { + if (!this.match(134)) { throw this.raise(Errors.ModuleAttributeInvalidValue, this.state.startLoc); } node.value = this.parseStringLiteral(this.state.value); @@ -13769,38 +14325,30 @@ class StatementParser extends ExpressionParser { } maybeParseImportAttributes(node) { let attributes; - let useWith = false; + var useWith = false; if (this.match(76)) { if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) { return; } this.next(); - { - if (this.hasPlugin("moduleAttributes")) { - attributes = this.parseModuleAttributes(); - } else { - this.expectImportAttributesPlugin(); - attributes = this.parseImportAttributes(); - } + if (this.hasPlugin("moduleAttributes")) { + attributes = this.parseModuleAttributes(); + this.addExtra(node, "deprecatedWithLegacySyntax", true); + } else { + attributes = this.parseImportAttributes(); } useWith = true; } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) { - if (this.hasPlugin("importAttributes")) { - if (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== true) { - this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); - } + if (!this.hasPlugin("deprecatedImportAssert") && !this.hasPlugin("importAssertions")) { + this.raise(Errors.ImportAttributesUseAssert, this.state.startLoc); + } + if (!this.hasPlugin("importAssertions")) { this.addExtra(node, "deprecatedAssertSyntax", true); - } else { - this.expectOnePlugin(["importAttributes", "importAssertions"]); } this.next(); attributes = this.parseImportAttributes(); - } else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) { - attributes = []; } else { - if (this.hasPlugin("moduleAttributes")) { - attributes = []; - } else return; + attributes = []; } if (!useWith && this.hasPlugin("importAssertions")) { node.assertions = attributes; @@ -13844,7 +14392,7 @@ class StatementParser extends ExpressionParser { if (this.eat(8)) break; } const specifier = this.startNode(); - const importedIsString = this.match(133); + const importedIsString = this.match(134); const isMaybeTypeOnly = this.isContextual(130); specifier.imported = this.parseModuleExportName(); const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined); @@ -13865,7 +14413,7 @@ class StatementParser extends ExpressionParser { } this.checkReservedWord(imported.name, specifier.loc.start, true, true); if (!specifier.local) { - specifier.local = cloneIdentifier(imported); + specifier.local = this.cloneIdentifier(imported); } } return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType); @@ -13875,13 +14423,58 @@ class StatementParser extends ExpressionParser { } } class Parser extends StatementParser { - constructor(options, input) { - options = getOptions(options); - super(options, input); - this.options = options; + constructor(options, input, pluginsMap) { + const normalizedOptions = getOptions(options); + super(normalizedOptions, input); + this.options = normalizedOptions; this.initializeScopes(); - this.plugins = pluginsMap(this.options.plugins); - this.filename = options.sourceFilename; + this.plugins = pluginsMap; + this.filename = normalizedOptions.sourceFilename; + this.startIndex = normalizedOptions.startIndex; + let optionFlags = 0; + if (normalizedOptions.allowAwaitOutsideFunction) { + optionFlags |= 1; + } + if (normalizedOptions.allowReturnOutsideFunction) { + optionFlags |= 2; + } + if (normalizedOptions.allowImportExportEverywhere) { + optionFlags |= 8; + } + if (normalizedOptions.allowSuperOutsideMethod) { + optionFlags |= 16; + } + if (normalizedOptions.allowUndeclaredExports) { + optionFlags |= 64; + } + if (normalizedOptions.allowNewTargetOutsideFunction) { + optionFlags |= 4; + } + if (normalizedOptions.allowYieldOutsideFunction) { + optionFlags |= 32; + } + if (normalizedOptions.ranges) { + optionFlags |= 128; + } + if (normalizedOptions.tokens) { + optionFlags |= 256; + } + if (normalizedOptions.createImportExpressions) { + optionFlags |= 512; + } + if (normalizedOptions.createParenthesizedExpressions) { + optionFlags |= 1024; + } + if (normalizedOptions.errorRecovery) { + optionFlags |= 2048; + } + if (normalizedOptions.attachComment) { + optionFlags |= 4096; + } + if (normalizedOptions.annexB) { + optionFlags |= 8192; + } + this.optionFlags = optionFlags; } getScopeHandler() { return ScopeHandler; @@ -13892,20 +14485,12 @@ class Parser extends StatementParser { const program = this.startNode(); this.nextToken(); file.errors = null; - this.parseTopLevel(file, program); - file.errors = this.state.errors; - file.comments.length = this.state.commentsLen; - return file; + const result = this.parseTopLevel(file, program); + result.errors = this.state.errors; + result.comments.length = this.state.commentsLen; + return result; } } -function pluginsMap(plugins) { - const pluginMap = new Map(); - for (const plugin of plugins) { - const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}]; - if (!pluginMap.has(name)) pluginMap.set(name, options || {}); - } - return pluginMap; -} function parse(input, options) { var _options; if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { @@ -13954,23 +14539,40 @@ function generateExportedTokenTypes(internalTokenTypes) { const tokTypes = generateExportedTokenTypes(tt); function getParser(options, input) { let cls = Parser; + const pluginsMap = new Map(); if (options != null && options.plugins) { - validatePlugins(options.plugins); - cls = getParserClass(options.plugins); + for (const plugin of options.plugins) { + let name, opts; + if (typeof plugin === "string") { + name = plugin; + } else { + [name, opts] = plugin; + } + if (!pluginsMap.has(name)) { + pluginsMap.set(name, opts || {}); + } + } + validatePlugins(pluginsMap); + cls = getParserClass(pluginsMap); } - return new cls(options, input); + return new cls(options, input, pluginsMap); } -const parserClassCache = {}; -function getParserClass(pluginsFromOptions) { - const pluginList = mixinPluginNames.filter(name => hasPlugin(pluginsFromOptions, name)); - const key = pluginList.join("/"); - let cls = parserClassCache[key]; +const parserClassCache = new Map(); +function getParserClass(pluginsMap) { + const pluginList = []; + for (const name of mixinPluginNames) { + if (pluginsMap.has(name)) { + pluginList.push(name); + } + } + const key = pluginList.join("|"); + let cls = parserClassCache.get(key); if (!cls) { cls = Parser; for (const plugin of pluginList) { cls = mixinPlugins[plugin](cls); } - parserClassCache[key] = cls; + parserClassCache.set(key, cls); } return cls; } diff --git a/node_modules/@babel/parser/lib/index.js.map b/node_modules/@babel/parser/lib/index.js.map index 0063886..0f73da4 100644 --- a/node_modules/@babel/parser/lib/index.js.map +++ b/node_modules/@babel/parser/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/util/location.ts","../src/parse-error/module-errors.ts","../src/parse-error/to-node-description.ts","../src/parse-error/standard-errors.ts","../src/parse-error/strict-mode-errors.ts","../src/parse-error/pipeline-operator-errors.ts","../src/parse-error.ts","../src/plugins/estree.ts","../src/tokenizer/context.ts","../src/tokenizer/types.ts","../../babel-helper-validator-identifier/src/identifier.ts","../../babel-helper-validator-identifier/src/keyword.ts","../src/util/identifier.ts","../src/util/scope.ts","../src/plugins/flow/scope.ts","../src/parser/base.ts","../src/parser/comments.ts","../src/util/whitespace.ts","../src/tokenizer/state.ts","../../babel-helper-string-parser/src/index.ts","../src/tokenizer/index.ts","../src/util/class-scope.ts","../src/util/expression-scope.ts","../src/util/production-parameter.ts","../src/parser/util.ts","../src/parser/node.ts","../src/plugins/flow/index.ts","../src/plugins/jsx/xhtml.ts","../src/plugins/jsx/index.ts","../src/plugins/typescript/scope.ts","../src/parser/lval.ts","../src/plugins/typescript/index.ts","../src/plugins/placeholders.ts","../src/plugins/v8intrinsic.ts","../src/plugin-utils.ts","../src/options.ts","../src/parser/expression.ts","../src/parser/statement.ts","../src/parser/index.ts","../src/index.ts"],"sourcesContent":["export type Pos = {\n start: number;\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n line: number;\n column: number;\n index: number;\n\n constructor(line: number, col: number, index: number) {\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\n\nexport class SourceLocation {\n start: Position;\n end: Position;\n filename: string;\n identifierName: string | undefined | null;\n\n constructor(start: Position, end?: Position) {\n this.start = start;\n // (may start as null, but initialized later)\n this.end = end;\n }\n}\n\n/**\n * creates a new position with a non-zero column offset from the given position.\n * This function should be only be used when we create AST node out of the token\n * boundaries, such as TemplateElement ends before tt.templateNonTail. This\n * function does not skip whitespaces.\n */\nexport function createPositionWithColumnOffset(\n position: Position,\n columnOffset: number,\n) {\n const { line, column, index } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\nexport default {\n ImportMetaOutsideModule: {\n message: `import.meta may appear only with 'sourceType: \"module\"'`,\n code,\n },\n ImportOutsideModule: {\n message: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n code,\n },\n} satisfies ParseErrorTemplates;\n","const NodeDescriptions = {\n ArrayPattern: \"array destructuring pattern\",\n AssignmentExpression: \"assignment expression\",\n AssignmentPattern: \"assignment expression\",\n ArrowFunctionExpression: \"arrow function expression\",\n ConditionalExpression: \"conditional expression\",\n CatchClause: \"catch clause\",\n ForOfStatement: \"for-of statement\",\n ForInStatement: \"for-in statement\",\n ForStatement: \"for-loop\",\n FormalParameters: \"function parameter list\",\n Identifier: \"identifier\",\n ImportSpecifier: \"import specifier\",\n ImportDefaultSpecifier: \"import default specifier\",\n ImportNamespaceSpecifier: \"import namespace specifier\",\n ObjectPattern: \"object destructuring pattern\",\n ParenthesizedExpression: \"parenthesized expression\",\n RestElement: \"rest element\",\n UpdateExpression: {\n true: \"prefix operation\",\n false: \"postfix operation\",\n },\n VariableDeclarator: \"variable declaration\",\n YieldExpression: \"yield expression\",\n};\n\ntype NodeTypesWithDescriptions = keyof Omit<\n typeof NodeDescriptions,\n \"UpdateExpression\"\n>;\n\ntype NodeWithDescription =\n | {\n type: \"UpdateExpression\";\n prefix: boolean;\n }\n | {\n type: NodeTypesWithDescriptions;\n };\n\n// @ts-expect-error prefix is specified only when type is UpdateExpression\n// eslint-disable-next-line no-confusing-arrow\nconst toNodeDescription = ({ type, prefix }: NodeWithDescription) =>\n type === \"UpdateExpression\"\n ? NodeDescriptions.UpdateExpression[String(prefix) as \"true\" | \"false\"]\n : NodeDescriptions[type];\n\nexport default toNodeDescription;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport type LValAncestor =\n | { type: \"UpdateExpression\"; prefix: boolean }\n | {\n type:\n | \"ArrayPattern\"\n | \"AssignmentExpression\"\n | \"CatchClause\"\n | \"ForOfStatement\"\n | \"FormalParameters\"\n | \"ForInStatement\"\n | \"ForStatement\"\n | \"ImportSpecifier\"\n | \"ImportNamespaceSpecifier\"\n | \"ImportDefaultSpecifier\"\n | \"ParenthesizedExpression\"\n | \"ObjectPattern\"\n | \"RestElement\"\n | \"VariableDeclarator\";\n };\n\nexport default {\n AccessorIsGenerator: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass:\n \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext:\n \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier:\n \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock:\n \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter:\n \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext:\n \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext:\n \"'await' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncFunction: \"'await' is only allowed within async functions.\",\n BadGetterArity: \"A 'get' accessor must not have any formal parameters.\",\n BadSetterArity: \"A 'set' accessor must have exactly one formal parameter.\",\n BadSetterRestParameter:\n \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField:\n \"Classes may not have a private field named '#constructor'.\",\n ConstructorIsAccessor: \"Class constructor may not be an accessor.\",\n ConstructorIsAsync: \"Constructor can't be an async function.\",\n ConstructorIsGenerator: \"Constructor can't be a generator.\",\n DeclarationMissingInitializer: ({\n kind,\n }: {\n kind: \"const\" | \"destructuring\";\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses:\n \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorBeforeExport:\n \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\n DecoratorsBeforeAfterExport:\n \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor:\n \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass:\n \"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.\",\n DecoratorSemicolon: \"Decorators must not be followed by a semicolon.\",\n DecoratorStaticBlock: \"Decorators can't be used with a static block.\",\n DeferImportRequiresNamespace:\n 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport:\n \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n DuplicateConstructor: \"Duplicate constructor in the same class.\",\n DuplicateDefaultExport: \"Only one default export allowed per module.\",\n DuplicateExport: ({ exportName }: { exportName: string }) =>\n `\\`${exportName}\\` has already been exported. Exported identifiers must be unique.`,\n DuplicateProto: \"Redefinition of __proto__ property.\",\n DuplicateRegExpFlags: \"Duplicate regular expression flag.\",\n DynamicImportPhaseRequiresImportExpressions: ({ phase }: { phase: string }) =>\n `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`,\n ElementAfterRest: \"Rest element must be last element.\",\n EscapedCharNotAnIdentifier: \"Invalid Unicode escape.\",\n ExportBindingIsString: ({\n localName,\n exportName,\n }: {\n localName: string;\n exportName: string;\n }) =>\n `A string literal cannot be used as an exported binding without \\`from\\`.\\n- Did you mean \\`export { '${localName}' as '${exportName}' } from 'some-module'\\`?`,\n ExportDefaultFromAsIdentifier:\n \"'from' is not allowed as an identifier after 'export default'.\",\n\n ForInOfLoopInitializer: ({\n type,\n }: {\n type: \"ForInStatement\" | \"ForOfStatement\";\n }) =>\n `'${\n type === \"ForInStatement\" ? \"for-in\" : \"for-of\"\n }' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n\n ForOfAsync: \"The left-hand side of a for-of loop may not be 'async'.\",\n ForOfLet: \"The left-hand side of a for-of loop may not start with 'let'.\",\n GeneratorInSingleStatementContext:\n \"Generators can only be declared at the top level or inside a block.\",\n\n IllegalBreakContinue: ({\n type,\n }: {\n type: \"BreakStatement\" | \"ContinueStatement\";\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n\n IllegalLanguageModeDirective:\n \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportAttributesUseAssert:\n \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.\",\n ImportBindingIsString: ({ importName }: { importName: string }) =>\n `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArgumentTrailingComma:\n \"Trailing comma is disallowed inside import(...) arguments.\",\n ImportCallArity: ({ maxArgumentCount }: { maxArgumentCount: 1 | 2 }) =>\n `\\`import()\\` requires exactly ${\n maxArgumentCount === 1 ? \"one argument\" : \"one or two arguments\"\n }.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault:\n \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding:\n 'Only `import module x from \"./module\"` is valid.',\n IncompatibleRegExpUVFlags:\n \"The 'u' and 'v' regular expression flags cannot be enabled at the same time.\",\n InvalidBigIntLiteral: \"Invalid BigIntLiteral.\",\n InvalidCodePoint: \"Code point out of bounds.\",\n InvalidCoverInitializedName: \"Invalid shorthand property initializer.\",\n InvalidDecimal: \"Invalid decimal.\",\n InvalidDigit: ({ radix }: { radix: number }) =>\n `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({ identifierName }: { identifierName: string }) =>\n `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid optional chaining in the left-hand side of ${toNodeDescription(\n ancestor,\n )}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent:\n \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({ unexpected }: { unexpected: string }) =>\n `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName,\n }: {\n identifierName: string;\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRecordProperty:\n \"Only properties and spread elements are allowed in record definitions.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({ labelName }: { labelName: string }) =>\n `Label '${labelName}' is already declared.`,\n LetInLexicalBinding: \"'let' is disallowed as a lexically bound name.\",\n LineTerminatorBeforeArrow: \"No line break is allowed before '=>'.\",\n MalformedRegExpFlags: \"Invalid regular expression flag.\",\n MissingClassName: \"A class name is required.\",\n MissingEqInAssignment:\n \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({ missingPlugin }: { missingPlugin: [string] }) =>\n `This experimental syntax requires enabling the parser plugin: ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n // FIXME: Would be nice to make this \"missingPlugins\" instead.\n // Also, seems like we can drop the \"(s)\" from the message and just make it \"s\".\n MissingOneOfPlugins: ({ missingPlugin }: { missingPlugin: string[] }) =>\n `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical:\n \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeDifferentFromType:\n \"The only accepted module attribute is `type`.\",\n ModuleAttributeInvalidValue:\n \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({ key }: { key: string }) =>\n `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode,\n }: {\n surrogateCharCode: number;\n }) =>\n `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(\n 16,\n )}'.`,\n ModuleExportUndefined: ({ localName }: { localName: string }) =>\n `Export '${localName}' is not defined.`,\n MultipleDefaultsInSwitch: \"Multiple default clauses.\",\n NewlineAfterThrow: \"Illegal newline after throw.\",\n NoCatchOrFinally: \"Missing catch or finally clause.\",\n NumberIdentifier: \"Identifier directly after number.\",\n NumericSeparatorInEscapeSequence:\n \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar:\n \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew:\n \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate:\n \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor:\n \"'override' modifier cannot appear on a constructor declaration.\",\n ParamDupe: \"Argument name clash.\",\n PatternHasAccessor: \"Object pattern can't contain getter or setter.\",\n PatternHasMethod: \"Object pattern can't contain methods.\",\n PrivateInExpectedIn: ({ identifierName }: { identifierName: string }) =>\n `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Duplicate private name #${identifierName}.`,\n RecordExpressionBarIncorrectEndSyntaxType:\n \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType:\n \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType:\n \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n RecordNoProto: \"'__proto__' is not allowed in Record expressions.\",\n RestTrailingComma: \"Unexpected trailing comma after rest element.\",\n SloppyFunction:\n \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB:\n \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.\",\n SourcePhaseImportRequiresDefault:\n 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperNotAllowed:\n \"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n SuperPrivateField: \"Private fields can't be accessed on super.\",\n TrailingDecorator: \"Decorators must be attached to a class element.\",\n TupleExpressionBarIncorrectEndSyntaxType:\n \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType:\n \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType:\n \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder.\",\n UnexpectedAwaitAfterPipelineBody:\n 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport:\n \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({ keyword }: { keyword: string }) =>\n `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator:\n \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration:\n \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget:\n \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator:\n \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected,\n }: {\n expected?: string | null;\n unexpected?: string | null;\n }) =>\n `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${\n expected ? `, expected \"${expected}\"` : \"\"\n }`,\n UnexpectedTokenUnaryExponentiation:\n \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration:\n \"Using declaration cannot appear in the top level when source type is `script`.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport:\n \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport:\n \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport:\n \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName,\n }: {\n target: string;\n onlyValidPropertyName: string;\n }) =>\n `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator:\n \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator:\n \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper:\n \"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).\",\n UnterminatedComment: \"Unterminated comment.\",\n UnterminatedRegExp: \"Unterminated regular expression.\",\n UnterminatedString: \"Unterminated string constant.\",\n UnterminatedTemplate: \"Unterminated template.\",\n UsingDeclarationHasBindingPattern:\n \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Identifier '${identifierName}' has already been declared.`,\n YieldBindingIdentifier:\n \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n ZeroDigitNumericSeparator:\n \"Numeric separator can not be used after leading 0.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error\";\n\nexport default {\n StrictDelete: \"Deleting local variable in strict mode.\",\n\n // `referenceName` is the StringValue[1] of an IdentifierReference[2], which\n // is represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-IdentifierReference\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArguments: ({ referenceName }: { referenceName: string }) =>\n `Assigning to '${referenceName}' in strict mode.`,\n\n // `bindingName` is the StringValue[1] of a BindingIdentifier[2], which is\n // represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-BindingIdentifier\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArgumentsBinding: ({ bindingName }: { bindingName: string }) =>\n `Binding '${bindingName}' in strict mode.`,\n\n StrictFunction:\n \"In strict mode code, functions can only be declared at top level or inside a block.\",\n\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n\n StrictWith: \"'with' in strict mode.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport const UnparenthesizedPipeBodyDescriptions = new Set([\n \"ArrowFunctionExpression\",\n \"AssignmentExpression\",\n \"ConditionalExpression\",\n \"YieldExpression\",\n] as const);\n\ntype GetSetMemberType> = T extends Set\n ? M\n : unknown;\n\nexport type UnparenthesizedPipeBodyTypes = GetSetMemberType<\n typeof UnparenthesizedPipeBodyDescriptions\n>;\n\nexport default {\n // This error is only used by the smart-mix proposal\n PipeBodyIsTighter:\n \"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.\",\n PipeTopicRequiresHackPipes:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n PipeTopicUnbound:\n \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({ token }: { token: string }) =>\n `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { \"proposal\": \"hack\", \"topicToken\": \"${token}\" }.`,\n PipeTopicUnused:\n \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({ type }: { type: UnparenthesizedPipeBodyTypes }) =>\n `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type,\n })}; please wrap it in parentheses.`,\n\n // Messages whose codes start with “Pipeline” or “PrimaryTopic”\n // are retained for backwards compatibility\n // with the deprecated smart-mix pipe operator proposal plugin.\n // They are subject to removal in a future major version.\n PipelineBodyNoArrow:\n 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression:\n \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression:\n \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused:\n \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed:\n \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n} satisfies ParseErrorTemplates;\n","import { Position } from \"./util/location.ts\";\n\ntype SyntaxPlugin =\n | \"flow\"\n | \"typescript\"\n | \"jsx\"\n | \"pipelineOperator\"\n | \"placeholders\";\n\ntype ParseErrorCode =\n | \"BABEL_PARSER_SYNTAX_ERROR\"\n | \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\n// Babel uses \"normal\" SyntaxErrors for it's errors, but adds some extra\n// functionality. This functionality is defined in the\n// `ParseErrorSpecification` interface below. We may choose to change to someday\n// give our errors their own full-blown class, but until then this allow us to\n// keep all the desirable properties of SyntaxErrors (like their name in stack\n// traces, etc.), and also allows us to punt on any publicly facing\n// class-hierarchy decisions until Babel 8.\ninterface ParseErrorSpecification {\n // Look, these *could* be readonly, but then Flow complains when we initially\n // set them. We could do a whole dance and make a special interface that's not\n // readonly for when we create the error, then cast it to the readonly\n // interface for public use, but the previous implementation didn't have them\n // as readonly, so let's just not worry about it for now.\n code: ParseErrorCode;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n missingPlugin?: string | string[];\n loc: Position;\n details: ErrorDetails;\n\n // We should consider removing this as it now just contains the same\n // information as `loc.index`.\n // pos: number;\n}\n\nexport type ParseError = SyntaxError &\n ParseErrorSpecification;\n\n// By `ParseErrorConstructor`, we mean something like the new-less style\n// `ErrorConstructor`[1], since `ParseError`'s are not themselves actually\n// separate classes from `SyntaxError`'s.\n//\n// 1. https://github.com/microsoft/TypeScript/blob/v4.5.5/lib/lib.es5.d.ts#L1027\nexport type ParseErrorConstructor = (\n loc: Position,\n details: ErrorDetails,\n) => ParseError;\n\ntype ToMessage = (self: ErrorDetails) => string;\n\ntype ParseErrorCredentials = {\n code: string;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n toMessage: ToMessage;\n};\n\nfunction defineHidden(obj: object, key: string, value: unknown) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value,\n });\n}\n\nfunction toParseErrorConstructor({\n toMessage,\n ...properties\n}: ParseErrorCredentials): ParseErrorConstructor {\n return function constructor(loc: Position, details: ErrorDetails) {\n const error = new SyntaxError();\n Object.assign(error, properties, { loc, pos: loc.index });\n if (\"missingPlugin\" in details) {\n Object.assign(error, { missingPlugin: details.missingPlugin });\n }\n\n type Overrides = {\n loc?: Position;\n details?: ErrorDetails;\n };\n defineHidden(error, \"clone\", function clone(overrides: Overrides = {}) {\n const { line, column, index } = overrides.loc ?? loc;\n return constructor(new Position(line, column, index), {\n ...details,\n ...overrides.details,\n });\n });\n\n defineHidden(error, \"details\", details);\n\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get(this: ParseError): string {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value: string) {\n Object.defineProperty(this, \"message\", { value, writable: true });\n },\n });\n\n return error as ParseError;\n };\n}\n\ntype ParseErrorTemplate =\n | string\n | ToMessage\n | { message: string | ToMessage; code?: ParseErrorCode };\n\nexport type ParseErrorTemplates = { [reasonCode: string]: ParseErrorTemplate };\n\n// This is the templated form of `ParseErrorEnum`.\n//\n// Note: We could factor out the return type calculation into something like\n// `ParseErrorConstructor`, and then we could\n// reuse it in the non-templated form of `ParseErrorEnum`, but TypeScript\n// doesn't seem to drill down that far when showing you the computed type of\n// an object in an editor, so we'll leave it inlined for now.\nexport function ParseErrorEnum(a: TemplateStringsArray): <\n T extends ParseErrorTemplates,\n>(\n parseErrorTemplates: T,\n) => {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage }\n ? T[K][\"message\"] extends ToMessage\n ? Parameters[0]\n : {}\n : T[K] extends ToMessage\n ? Parameters[0]\n : {}\n >;\n};\n\nexport function ParseErrorEnum(\n parseErrorTemplates: T,\n syntaxPlugin?: SyntaxPlugin,\n): {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage }\n ? T[K][\"message\"] extends ToMessage\n ? Parameters[0]\n : {}\n : T[K] extends ToMessage\n ? Parameters[0]\n : {}\n >;\n};\n\n// You call `ParseErrorEnum` with a mapping from `ReasonCode`'s to either:\n//\n// 1. a static error message,\n// 2. `toMessage` functions that define additional necessary `details` needed by\n// the `ParseError`, or\n// 3. Objects that contain a `message` of one of the above and overridden `code`\n// and/or `reasonCode`:\n//\n// ParseErrorEnum `optionalSyntaxPlugin` ({\n// ErrorWithStaticMessage: \"message\",\n// ErrorWithDynamicMessage: ({ type } : { type: string }) => `${type}`),\n// ErrorWithOverriddenCodeAndOrReasonCode: {\n// message: ({ type }: { type: string }) => `${type}`),\n// code: \"AN_ERROR_CODE\",\n// ...(BABEL_8_BREAKING ? { } : { reasonCode: \"CustomErrorReasonCode\" })\n// }\n// });\n//\nexport function ParseErrorEnum(\n argument: TemplateStringsArray | ParseErrorTemplates,\n syntaxPlugin?: SyntaxPlugin,\n) {\n // If the first parameter is an array, that means we were called with a tagged\n // template literal. Extract the syntaxPlugin from this, and call again in\n // the \"normalized\" form.\n if (Array.isArray(argument)) {\n return (parseErrorTemplates: ParseErrorTemplates) =>\n ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n\n const ParseErrorConstructors = {} as Record<\n string,\n ParseErrorConstructor\n >;\n\n for (const reasonCode of Object.keys(argument)) {\n const template = (argument as ParseErrorTemplates)[reasonCode];\n const { message, ...rest } =\n typeof template === \"string\"\n ? { message: () => template }\n : typeof template === \"function\"\n ? { message: template }\n : template;\n const toMessage = typeof message === \"string\" ? () => message : message;\n\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage,\n ...(syntaxPlugin ? { syntaxPlugin } : {}),\n ...rest,\n });\n }\n\n return ParseErrorConstructors;\n}\n\nimport ModuleErrors from \"./parse-error/module-errors.ts\";\nimport StandardErrors from \"./parse-error/standard-errors.ts\";\nimport StrictModeErrors from \"./parse-error/strict-mode-errors.ts\";\nimport PipelineOperatorErrors from \"./parse-error/pipeline-operator-errors.ts\";\n\nexport const Errors = {\n ...ParseErrorEnum(ModuleErrors),\n ...ParseErrorEnum(StandardErrors),\n ...ParseErrorEnum(StrictModeErrors),\n ...ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors),\n};\n\nexport type { LValAncestor } from \"./parse-error/standard-errors.ts\";\n","import type { TokenType } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type * as N from \"../types.ts\";\nimport type { Node as NodeType, NodeBase, File } from \"../types.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { BindingFlag } from \"../util/scopeflags.ts\";\n\nconst { defineProperty } = Object;\nconst toUnenumerable = (object: any, key: string) =>\n defineProperty(object, key, { enumerable: false, value: object[key] });\n\nfunction toESTreeLocation(node: any) {\n node.loc.start && toUnenumerable(node.loc.start, \"index\");\n node.loc.end && toUnenumerable(node.loc.end, \"index\");\n\n return node;\n}\n\nexport default (superClass: typeof Parser) =>\n class ESTreeParserMixin extends superClass implements Parser {\n parse(): File {\n const file = toESTreeLocation(super.parse());\n\n if (this.options.tokens) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n\n return file;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseRegExpLiteral({ pattern, flags }): N.EstreeRegExpLiteral {\n let regex: RegExp | null = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (e) {\n // In environments that don't support these flags value will\n // be null as the regex can't be represented natively.\n }\n const node = this.estreeParseLiteral(regex);\n node.regex = { pattern, flags };\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseBigIntLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n let bigInt: BigInt | null;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseDecimalLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/experimental/decimal.md\n // todo: use BigDecimal when node supports it.\n const decimal: null = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n\n return node;\n }\n\n estreeParseLiteral(value: any) {\n // @ts-expect-error ESTree plugin changes node types\n return this.parseLiteral(value, \"Literal\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseStringLiteral(value: any): N.Node {\n return this.estreeParseLiteral(value);\n }\n\n parseNumericLiteral(value: any): any {\n return this.estreeParseLiteral(value);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseNullLiteral(): N.Node {\n return this.estreeParseLiteral(null);\n }\n\n parseBooleanLiteral(value: boolean): N.BooleanLiteral {\n return this.estreeParseLiteral(value);\n }\n\n // Cast a Directive to an ExpressionStatement. Mutates the input Directive.\n directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n const expression = directive.value as any as N.EstreeLiteral;\n delete directive.value;\n\n expression.type = \"Literal\";\n // @ts-expect-error N.EstreeLiteral.raw is not defined.\n expression.raw = expression.extra.raw;\n expression.value = expression.extra.expressionValue;\n\n const stmt = directive as any as N.ExpressionStatement;\n stmt.type = \"ExpressionStatement\";\n stmt.expression = expression;\n // @ts-expect-error N.ExpressionStatement.directive is not defined\n stmt.directive = expression.extra.rawValue;\n\n delete expression.extra;\n\n return stmt;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n if (node != null && this.isObjectProperty(node)) {\n // @ts-expect-error plugin typings\n this.checkDeclaration((node as unknown as N.EstreeProperty).value);\n } else {\n super.checkDeclaration(node);\n }\n }\n\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return (method as any as N.EstreeProperty | N.EstreeMethodDefinition)\n .value.params;\n }\n\n isValidDirective(stmt: N.Statement): boolean {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n typeof stmt.expression.value === \"string\" &&\n !stmt.expression.extra?.parenthesized\n );\n }\n\n parseBlockBody(\n node: N.BlockStatementLike,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n super.parseBlockBody(\n node,\n allowDirectives,\n topLevel,\n end,\n afterBlockParse,\n );\n\n const directiveStatements = node.directives.map(d =>\n this.directiveToStmt(d),\n );\n // @ts-expect-error estree plugin typings\n node.body = directiveStatements.concat(node.body);\n delete node.directives;\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n this.parseMethod(\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n \"ClassMethod\",\n true,\n );\n if (method.typeParameters) {\n // @ts-expect-error mutate AST types\n method.value.typeParameters = method.typeParameters;\n delete method.typeParameters;\n }\n classBody.body.push(method);\n }\n\n parsePrivateName(): any {\n const node = super.parsePrivateName();\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n\n convertPrivateNameToPrivateIdentifier(\n node: N.PrivateName,\n ): N.EstreePrivateIdentifier {\n const name = super.getPrivateNameSV(node);\n node = node as any;\n delete node.id;\n // @ts-expect-error mutate AST types\n node.name = name;\n // @ts-expect-error mutate AST types\n node.type = \"PrivateIdentifier\";\n return node as unknown as N.EstreePrivateIdentifier;\n }\n\n isPrivateName(node: N.Node): boolean {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n\n getPrivateNameSV(node: N.Node): string {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node);\n }\n }\n return node.name;\n }\n\n // @ts-expect-error plugin may override interfaces\n parseLiteral(value: any, type: T[\"type\"]): T {\n const node = super.parseLiteral(value, type);\n // @ts-expect-error mutating AST types\n node.raw = node.extra.raw;\n delete node.extra;\n\n return node;\n }\n\n parseFunctionBody(\n node: N.Function,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n\n // @ts-expect-error plugin may override interfaces\n parseMethod<\n T extends N.ClassPrivateMethod | N.ObjectMethod | N.ClassMethod,\n >(\n node: Undone,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ): N.EstreeMethodDefinition {\n let funcNode = this.startNode();\n funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n funcNode = super.parseMethod(\n // @ts-expect-error todo(flow->ts)\n funcNode,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error mutate AST types\n funcNode.type = \"FunctionExpression\";\n delete funcNode.kind;\n // @ts-expect-error mutate AST types\n node.value = funcNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone,\n \"MethodDefinition\",\n );\n }\n\n parseClassProperty(...args: [N.ClassProperty]): any {\n const propertyNode = super.parseClassProperty(...args) as any;\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as N.EstreePropertyDefinition;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n return propertyNode as N.EstreePropertyDefinition;\n }\n\n parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {\n const propertyNode = super.parseClassPrivateProperty(...args) as any;\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as N.EstreePropertyDefinition;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n propertyNode.computed = false;\n return propertyNode as N.EstreePropertyDefinition;\n }\n\n parseObjectMethod(\n prop: N.ObjectMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n ): N.ObjectMethod | undefined | null {\n const node: N.EstreeProperty = super.parseObjectMethod(\n prop,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n ) as any;\n\n if (node) {\n node.type = \"Property\";\n if ((node as any as N.ClassMethod).kind === \"method\") {\n node.kind = \"init\";\n }\n node.shorthand = false;\n }\n\n return node as any;\n }\n\n parseObjectProperty(\n prop: N.ObjectProperty,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n const node: N.EstreeProperty = super.parseObjectProperty(\n prop,\n startLoc,\n isPattern,\n refExpressionErrors,\n ) as any;\n\n if (node) {\n node.kind = \"init\";\n node.type = \"Property\";\n }\n\n return node as any;\n }\n\n isValidLVal(\n type: string,\n isUnparenthesizedInAssign: boolean,\n binding: BindingFlag,\n ) {\n return type === \"Property\"\n ? \"value\"\n : super.isValidLVal(type, isUnparenthesizedInAssign, binding);\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (node != null && this.isObjectProperty(node)) {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: N.Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (prop.kind === \"get\" || prop.kind === \"set\") {\n this.raise(Errors.PatternHasAccessor, prop.key);\n } else if (prop.method) {\n this.raise(Errors.PatternHasMethod, prop.key);\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n\n finishCallExpression(\n unfinished: Undone,\n optional: boolean,\n ): T {\n const node = super.finishCallExpression(unfinished, optional);\n\n if (node.callee.type === \"Import\") {\n (node as N.Node as N.EstreeImportExpression).type = \"ImportExpression\";\n (node as N.Node as N.EstreeImportExpression).source = node.arguments[0];\n if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n (node as N.Node as N.EstreeImportExpression).options =\n node.arguments[1] ?? null;\n // compatibility with previous ESTree AST\n (node as N.Node as N.EstreeImportExpression).attributes =\n node.arguments[1] ?? null;\n }\n // arguments isn't optional in the type definition\n delete node.arguments;\n // callee isn't optional in the type definition\n delete node.callee;\n }\n\n return node;\n }\n\n toReferencedArguments(\n node:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.EstreeImportExpression,\n /* isParenthesizedExpr?: boolean, */\n ) {\n // ImportExpressions do not have an arguments array.\n if (node.type === \"ImportExpression\") {\n return;\n }\n\n super.toReferencedArguments(node);\n }\n\n parseExport(\n unfinished: Undone,\n decorators: N.Decorator[] | null,\n ) {\n const exportStartLoc = this.state.lastTokStartLoc;\n const node = super.parseExport(unfinished, decorators);\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n // @ts-expect-error mutating AST types\n node.exported = null;\n break;\n\n case \"ExportNamedDeclaration\":\n if (\n node.specifiers.length === 1 &&\n // @ts-expect-error mutating AST types\n node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n ) {\n // @ts-expect-error mutating AST types\n node.type = \"ExportAllDeclaration\";\n // @ts-expect-error mutating AST types\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n\n // fallthrough\n case \"ExportDefaultDeclaration\":\n {\n const { declaration } = node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n declaration.decorators?.length > 0 &&\n // decorator comes before export\n declaration.start === node.start\n ) {\n this.resetStartLocation(\n node,\n // For compatibility with ESLint's keyword-spacing rule, which assumes that an\n // export declaration must start with export.\n // https://github.com/babel/babel/issues/15085\n // Here we reset export declaration's start to be the start of the export token\n exportStartLoc,\n );\n }\n }\n\n break;\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ) {\n const node = super.parseSubscript(base, startLoc, noCalls, state);\n\n if (state.optionalChainMember) {\n // https://github.com/estree/estree/blob/master/es2020.md#chainexpression\n if (\n node.type === \"OptionalMemberExpression\" ||\n node.type === \"OptionalCallExpression\"\n ) {\n node.type = node.type.substring(8); // strip Optional prefix\n }\n if (state.stop) {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNode(chain, \"ChainExpression\");\n }\n } else if (\n node.type === \"MemberExpression\" ||\n node.type === \"CallExpression\"\n ) {\n node.optional = false;\n }\n\n return node;\n }\n\n isOptionalMemberExpression(node: N.Node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n\n hasPropertyAsPrivateName(node: N.Node): boolean {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n\n // @ts-expect-error override interfaces\n isObjectProperty(node: N.Node): boolean {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n\n isObjectMethod(node: N.Node): boolean {\n return node.method || node.kind === \"get\" || node.kind === \"set\";\n }\n\n finishNodeAt(\n node: Undone,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n\n resetStartLocation(node: N.Node, startLoc: Position) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc,\n ): void {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n };\n","// The token context is used in JSX plugin to track\n// jsx tag / jsx text / normal JavaScript expression\n\nexport class TokContext {\n constructor(token: string, preserveSpace?: boolean) {\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n\n token: string;\n preserveSpace: boolean;\n}\n\nconst types: {\n [key: string]: TokContext;\n} = {\n brace: new TokContext(\"{\"), // normal JavaScript expression\n j_oTag: new TokContext(\"...\", true), // JSX expressions\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n types.template = new TokContext(\"`\", true);\n}\n\nexport { types };\n","import { types as tc, type TokContext } from \"./context.ts\";\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between 1) binary\n// expression (<) and JSX Tag start (); 2) object literal and JSX\n// texts. It is set on the `updateContext` function in the JSX plugin.\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n keyword?: string;\n beforeExpr?: boolean;\n startsExpr?: boolean;\n rightAssociative?: boolean;\n isLoop?: boolean;\n isAssign?: boolean;\n prefix?: boolean;\n postfix?: boolean;\n binop?: number | null;\n};\n\n// Internally the tokenizer stores token as a number\nexport type TokenType = number;\n\n// The `ExportedTokenType` is exported via `tokTypes` and accessible\n// when `tokens: true` is enabled. Unlike internal token type, it provides\n// metadata of the tokens.\nexport class ExportedTokenType {\n label: string;\n keyword: string | undefined | null;\n beforeExpr: boolean;\n startsExpr: boolean;\n rightAssociative: boolean;\n isLoop: boolean;\n isAssign: boolean;\n prefix: boolean;\n postfix: boolean;\n binop: number | undefined | null;\n // todo(Babel 8): remove updateContext from exposed token layout\n declare updateContext:\n | ((context: Array) => void)\n | undefined\n | null;\n\n constructor(label: string, conf: TokenOptions = {}) {\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.rightAssociative = !!conf.rightAssociative;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop != null ? conf.binop : null;\n if (!process.env.BABEL_8_BREAKING) {\n this.updateContext = null;\n }\n }\n}\n\n// A map from keyword/keyword-like string value to the token type\nexport const keywords = new Map();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n options.keyword = name;\n const token = createToken(name, options);\n keywords.set(name, token);\n return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n return createToken(name, { beforeExpr, binop });\n}\n\nlet tokenTypeCounter = -1;\nexport const tokenTypes: ExportedTokenType[] = [];\nconst tokenLabels: string[] = [];\nconst tokenBinops: number[] = [];\nconst tokenBeforeExprs: boolean[] = [];\nconst tokenStartsExprs: boolean[] = [];\nconst tokenPrefixes: boolean[] = [];\n\nfunction createToken(name: string, options: TokenOptions = {}): TokenType {\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(name, options));\n\n return tokenTypeCounter;\n}\n\nfunction createKeywordLike(\n name: string,\n options: TokenOptions = {},\n): TokenType {\n ++tokenTypeCounter;\n keywords.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n // In the exported token type, we set the label as \"name\" for backward compatibility with Babel 7\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n\n return tokenTypeCounter;\n}\n\n// For performance the token type helpers depend on the following declarations order.\n// When adding new token types, please also check if the token helpers need update.\n\nexport type InternalTokenTypes = typeof tt;\n\nexport const tt = {\n // Punctuation token types.\n bracketL: createToken(\"[\", { beforeExpr, startsExpr }),\n bracketHashL: createToken(\"#[\", { beforeExpr, startsExpr }),\n bracketBarL: createToken(\"[|\", { beforeExpr, startsExpr }),\n bracketR: createToken(\"]\"),\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", { beforeExpr, startsExpr }),\n braceBarL: createToken(\"{|\", { beforeExpr, startsExpr }),\n braceHashL: createToken(\"#{\", { beforeExpr, startsExpr }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", { beforeExpr, startsExpr }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", { beforeExpr }),\n semi: createToken(\";\", { beforeExpr }),\n colon: createToken(\":\", { beforeExpr }),\n doubleColon: createToken(\"::\", { beforeExpr }),\n dot: createToken(\".\"),\n question: createToken(\"?\", { beforeExpr }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", { beforeExpr }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", { beforeExpr }),\n backQuote: createToken(\"`\", { startsExpr }),\n dollarBraceL: createToken(\"${\", { beforeExpr, startsExpr }),\n // start: isTemplate\n templateTail: createToken(\"...`\", { startsExpr }),\n templateNonTail: createToken(\"...${\", { beforeExpr, startsExpr }),\n // end: isTemplate\n at: createToken(\"@\"),\n hash: createToken(\"#\", { startsExpr }),\n\n // Special hashbang token.\n interpreterDirective: createToken(\"#!...\"),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n // start: isAssign\n eq: createToken(\"=\", { beforeExpr, isAssign }),\n assign: createToken(\"_=\", { beforeExpr, isAssign }),\n slashAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // These are only needed to support % and ^ as a Hack-pipe topic token.\n // When the proposal settles on a token, the others can be merged with\n // tt.assign.\n xorAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n moduloAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // end: isAssign\n\n incDec: createToken(\"++/--\", { prefix, postfix, startsExpr }),\n bang: createToken(\"!\", { beforeExpr, prefix, startsExpr }),\n tilde: createToken(\"~\", { beforeExpr, prefix, startsExpr }),\n\n // More possible topic tokens.\n // When the proposal settles on a token, at least one of these may be removed.\n doubleCaret: createToken(\"^^\", { startsExpr }),\n doubleAt: createToken(\"@@\", { startsExpr }),\n\n // start: isBinop\n pipeline: createBinop(\"|>\", 0),\n nullishCoalescing: createBinop(\"??\", 1),\n logicalOR: createBinop(\"||\", 1),\n logicalAND: createBinop(\"&&\", 2),\n bitwiseOR: createBinop(\"|\", 3),\n bitwiseXOR: createBinop(\"^\", 4),\n bitwiseAND: createBinop(\"&\", 5),\n equality: createBinop(\"==/!=/===/!==\", 6),\n lt: createBinop(\"/<=/>=\", 7),\n gt: createBinop(\"/<=/>=\", 7),\n relational: createBinop(\"/<=/>=\", 7),\n bitShift: createBinop(\"<>/>>>\", 8),\n bitShiftL: createBinop(\"<>/>>>\", 8),\n bitShiftR: createBinop(\"<>/>>>\", 8),\n plusMin: createToken(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n // startsExpr: required by v8intrinsic plugin\n modulo: createToken(\"%\", { binop: 10, startsExpr }),\n // unset `beforeExpr` as it can be `function *`\n star: createToken(\"*\", { binop: 10 }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true,\n }),\n\n // Keywords\n // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n // when new keywords are added\n // start: isLiteralPropertyName\n // start: isKeyword\n _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n // end: isBinop\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", { beforeExpr }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", { beforeExpr }),\n _else: createKeyword(\"else\", { beforeExpr }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", { startsExpr }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", { beforeExpr }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n _this: createKeyword(\"this\", { startsExpr }),\n _super: createKeyword(\"super\", { startsExpr }),\n _class: createKeyword(\"class\", { startsExpr }),\n _extends: createKeyword(\"extends\", { beforeExpr }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", { startsExpr }),\n _null: createKeyword(\"null\", { startsExpr }),\n _true: createKeyword(\"true\", { startsExpr }),\n _false: createKeyword(\"false\", { startsExpr }),\n _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n // start: isLoop\n _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n _for: createKeyword(\"for\", { isLoop }),\n _while: createKeyword(\"while\", { isLoop }),\n // end: isLoop\n // end: isKeyword\n\n // Primary literals\n // start: isIdentifier\n _as: createKeywordLike(\"as\", { startsExpr }),\n _assert: createKeywordLike(\"assert\", { startsExpr }),\n _async: createKeywordLike(\"async\", { startsExpr }),\n _await: createKeywordLike(\"await\", { startsExpr }),\n _defer: createKeywordLike(\"defer\", { startsExpr }),\n _from: createKeywordLike(\"from\", { startsExpr }),\n _get: createKeywordLike(\"get\", { startsExpr }),\n _let: createKeywordLike(\"let\", { startsExpr }),\n _meta: createKeywordLike(\"meta\", { startsExpr }),\n _of: createKeywordLike(\"of\", { startsExpr }),\n _sent: createKeywordLike(\"sent\", { startsExpr }),\n _set: createKeywordLike(\"set\", { startsExpr }),\n _source: createKeywordLike(\"source\", { startsExpr }),\n _static: createKeywordLike(\"static\", { startsExpr }),\n _using: createKeywordLike(\"using\", { startsExpr }),\n _yield: createKeywordLike(\"yield\", { startsExpr }),\n\n // Flow and TypeScript Keywordlike\n _asserts: createKeywordLike(\"asserts\", { startsExpr }),\n _checks: createKeywordLike(\"checks\", { startsExpr }),\n _exports: createKeywordLike(\"exports\", { startsExpr }),\n _global: createKeywordLike(\"global\", { startsExpr }),\n _implements: createKeywordLike(\"implements\", { startsExpr }),\n _intrinsic: createKeywordLike(\"intrinsic\", { startsExpr }),\n _infer: createKeywordLike(\"infer\", { startsExpr }),\n _is: createKeywordLike(\"is\", { startsExpr }),\n _mixins: createKeywordLike(\"mixins\", { startsExpr }),\n _proto: createKeywordLike(\"proto\", { startsExpr }),\n _require: createKeywordLike(\"require\", { startsExpr }),\n _satisfies: createKeywordLike(\"satisfies\", { startsExpr }),\n // start: isTSTypeOperator\n _keyof: createKeywordLike(\"keyof\", { startsExpr }),\n _readonly: createKeywordLike(\"readonly\", { startsExpr }),\n _unique: createKeywordLike(\"unique\", { startsExpr }),\n // end: isTSTypeOperator\n // start: isTSDeclarationStart\n _abstract: createKeywordLike(\"abstract\", { startsExpr }),\n _declare: createKeywordLike(\"declare\", { startsExpr }),\n _enum: createKeywordLike(\"enum\", { startsExpr }),\n _module: createKeywordLike(\"module\", { startsExpr }),\n _namespace: createKeywordLike(\"namespace\", { startsExpr }),\n // start: isFlowInterfaceOrTypeOrOpaque\n _interface: createKeywordLike(\"interface\", { startsExpr }),\n _type: createKeywordLike(\"type\", { startsExpr }),\n // end: isTSDeclarationStart\n _opaque: createKeywordLike(\"opaque\", { startsExpr }),\n // end: isFlowInterfaceOrTypeOrOpaque\n name: createToken(\"name\", { startsExpr }),\n // end: isIdentifier\n\n string: createToken(\"string\", { startsExpr }),\n num: createToken(\"num\", { startsExpr }),\n bigint: createToken(\"bigint\", { startsExpr }),\n decimal: createToken(\"decimal\", { startsExpr }),\n // end: isLiteralPropertyName\n regexp: createToken(\"regexp\", { startsExpr }),\n privateName: createToken(\"#name\", { startsExpr }),\n eof: createToken(\"eof\"),\n\n // jsx plugin\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", { beforeExpr: true }),\n jsxTagStart: createToken(\"jsxTagStart\", { startsExpr: true }),\n jsxTagEnd: createToken(\"jsxTagEnd\"),\n\n // placeholder plugin\n placeholder: createToken(\"%%\", { startsExpr: true }),\n} as const;\n\nexport function tokenIsIdentifier(token: TokenType): boolean {\n return token >= tt._as && token <= tt.name;\n}\n\nexport function tokenKeywordOrIdentifierIsKeyword(token: TokenType): boolean {\n // we can remove the token >= tt._in check when we\n // know a token is either keyword or identifier\n return token <= tt._while;\n}\n\nexport function tokenIsKeywordOrIdentifier(token: TokenType): boolean {\n return token >= tt._in && token <= tt.name;\n}\n\nexport function tokenIsLiteralPropertyName(token: TokenType): boolean {\n return token >= tt._in && token <= tt.decimal;\n}\n\nexport function tokenComesBeforeExpression(token: TokenType): boolean {\n return tokenBeforeExprs[token];\n}\n\nexport function tokenCanStartExpression(token: TokenType): boolean {\n return tokenStartsExprs[token];\n}\n\nexport function tokenIsAssignment(token: TokenType): boolean {\n return token >= tt.eq && token <= tt.moduloAssign;\n}\n\nexport function tokenIsFlowInterfaceOrTypeOrOpaque(token: TokenType): boolean {\n return token >= tt._interface && token <= tt._opaque;\n}\n\nexport function tokenIsLoop(token: TokenType): boolean {\n return token >= tt._do && token <= tt._while;\n}\n\nexport function tokenIsKeyword(token: TokenType): boolean {\n return token >= tt._in && token <= tt._while;\n}\n\nexport function tokenIsOperator(token: TokenType): boolean {\n return token >= tt.pipeline && token <= tt._instanceof;\n}\n\nexport function tokenIsPostfix(token: TokenType): boolean {\n return token === tt.incDec;\n}\n\nexport function tokenIsPrefix(token: TokenType): boolean {\n return tokenPrefixes[token];\n}\n\nexport function tokenIsTSTypeOperator(token: TokenType): boolean {\n return token >= tt._keyof && token <= tt._unique;\n}\n\nexport function tokenIsTSDeclarationStart(token: TokenType): boolean {\n return token >= tt._abstract && token <= tt._type;\n}\n\nexport function tokenLabelName(token: TokenType): string {\n return tokenLabels[token];\n}\n\nexport function tokenOperatorPrecedence(token: TokenType): number {\n return tokenBinops[token];\n}\n\nexport function tokenIsBinaryOperator(token: TokenType): boolean {\n return tokenBinops[token] !== -1;\n}\n\nexport function tokenIsRightAssociative(token: TokenType): boolean {\n return token === tt.exponent;\n}\n\nexport function tokenIsTemplate(token: TokenType): boolean {\n return token >= tt.templateTail && token <= tt.templateNonTail;\n}\n\nexport function getExportedToken(token: TokenType): ExportedTokenType {\n return tokenTypes[token];\n}\n\nexport function isTokenType(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n tokenTypes[tt.braceR].updateContext = context => {\n context.pop();\n };\n\n tokenTypes[tt.braceL].updateContext =\n tokenTypes[tt.braceHashL].updateContext =\n tokenTypes[tt.dollarBraceL].updateContext =\n context => {\n context.push(tc.brace);\n };\n\n tokenTypes[tt.backQuote].updateContext = context => {\n if (context[context.length - 1] === tc.template) {\n context.pop();\n } else {\n context.push(tc.template);\n }\n };\n\n tokenTypes[tt.jsxTagStart].updateContext = context => {\n context.push(tc.j_expr, tc.j_oTag);\n };\n}\n","import * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0898-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","import * as charCodes from \"charcodes\";\nimport { isIdentifierStart } from \"@babel/helper-validator-identifier\";\n\nexport {\n isIdentifierStart,\n isIdentifierChar,\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(\n current: number,\n next: number,\n next2: number,\n): boolean {\n return (\n current === charCodes.atSign &&\n next === charCodes.atSign &&\n isIdentifierStart(next2)\n );\n}\n\n// This is the comprehensive set of JavaScript reserved words\n// If a word is in this set, it could be a reserved word,\n// depending on sourceType/strictMode/binding info. In other words\n// if a word is not in this set, it is not a reserved word under\n// any circumstance.\nconst reservedWordLikeSet = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n // strict\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n // strictBind\n \"eval\",\n \"arguments\",\n // reservedWorkLike\n \"enum\",\n \"await\",\n]);\n\nexport function canBeReservedWord(word: string): boolean {\n return reservedWordLikeSet.has(word);\n}\n","import { ScopeFlag, BindingFlag } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport type * as N from \"../types.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\nexport const enum NameType {\n // var-declared names in the current lexical scope\n Var = 1 << 0,\n // lexically-declared names in the current lexical scope\n Lexical = 1 << 1,\n // lexically-declared FunctionDeclaration names in the current lexical scope\n Function = 1 << 2,\n}\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n flags: ScopeFlag = 0;\n names: Map = new Map();\n firstLexicalName = \"\";\n\n constructor(flags: ScopeFlag) {\n this.flags = flags;\n }\n}\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler {\n parser: Tokenizer;\n scopeStack: Array = [];\n inModule: boolean;\n undefinedExports: Map = new Map();\n\n constructor(parser: Tokenizer, inModule: boolean) {\n this.parser = parser;\n this.inModule = inModule;\n }\n\n get inTopLevel() {\n return (this.currentScope().flags & ScopeFlag.PROGRAM) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & ScopeFlag.FUNCTION) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.SUPER) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.DIRECT_SUPER) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & ScopeFlag.CLASS) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (flags & ScopeFlag.CLASS) > 0 && (flags & ScopeFlag.FUNCTION) === 0;\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.STATIC_BLOCK) {\n return true;\n }\n if (flags & (ScopeFlag.VAR | ScopeFlag.CLASS)) {\n // function body, module body, class property initializers\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & ScopeFlag.FUNCTION) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n\n createScope(flags: ScopeFlag): Scope {\n return new Scope(flags);\n }\n\n enter(flags: ScopeFlag) {\n /*:: +createScope: (flags:ScopeFlag) => IScope; */\n // @ts-expect-error This method will be overwritten by subclasses\n this.scopeStack.push(this.createScope(flags));\n }\n\n exit(): ScopeFlag {\n const scope = this.scopeStack.pop();\n return scope.flags;\n }\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n treatFunctionsAsVarInScope(scope: IScope): boolean {\n return !!(\n scope.flags & (ScopeFlag.FUNCTION | ScopeFlag.STATIC_BLOCK) ||\n (!this.parser.inModule && scope.flags & ScopeFlag.PROGRAM)\n );\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n let scope = this.currentScope();\n if (\n bindingType & BindingFlag.SCOPE_LEXICAL ||\n bindingType & BindingFlag.SCOPE_FUNCTION\n ) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n\n let type = scope.names.get(name) || 0;\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n type = type | NameType.Function;\n } else {\n if (!scope.firstLexicalName) {\n scope.firstLexicalName = name;\n }\n type = type | NameType.Lexical;\n }\n\n scope.names.set(name, type);\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & BindingFlag.SCOPE_VAR) {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n scope = this.scopeStack[i];\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n scope.names.set(name, (scope.names.get(name) || 0) | NameType.Var);\n this.maybeExportDefined(scope, name);\n\n if (scope.flags & ScopeFlag.VAR) break;\n }\n }\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n maybeExportDefined(scope: IScope, name: string) {\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n checkRedeclarationInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n loc: Position,\n ) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, loc, {\n identifierName: name,\n });\n }\n }\n\n isRedeclaredInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (!(bindingType & BindingFlag.KIND_VALUE)) return false;\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n return scope.names.has(name);\n }\n\n const type = scope.names.get(name);\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n return (\n (type & NameType.Lexical) > 0 ||\n (!this.treatFunctionsAsVarInScope(scope) && (type & NameType.Var) > 0)\n );\n }\n\n return (\n ((type & NameType.Lexical) > 0 &&\n // Annex B.3.4\n // https://tc39.es/ecma262/#sec-variablestatements-in-catch-blocks\n !(\n scope.flags & ScopeFlag.SIMPLE_CATCH &&\n scope.firstLexicalName === name\n )) ||\n (!this.treatFunctionsAsVarInScope(scope) &&\n (type & NameType.Function) > 0)\n );\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n const topLevelScope = this.scopeStack[0];\n if (!topLevelScope.names.has(name)) {\n this.undefinedExports.set(name, id.loc.start);\n }\n }\n\n currentScope(): IScope {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n\n currentVarScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.VAR) {\n return flags;\n }\n }\n }\n\n // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n currentThisScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (\n flags & (ScopeFlag.VAR | ScopeFlag.CLASS) &&\n !(flags & ScopeFlag.ARROW)\n ) {\n return flags;\n }\n }\n }\n}\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { NameType, Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, type ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions: Set = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler {\n createScope(flags: ScopeFlag): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (\n bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN &&\n !scope.declareFunctions.has(name)\n ) {\n const type = scope.names.get(name);\n return (type & NameType.Function) > 0 || (type & NameType.Lexical) > 0;\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type { PluginsMap } from \"./index.ts\";\nimport type ScopeHandler from \"../util/scope.ts\";\nimport type ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport type ClassScopeHandler from \"../util/class-scope.ts\";\nimport type ProductionParameterHandler from \"../util/production-parameter.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"../typings.ts\";\nimport type * as N from \"../types.ts\";\n\nexport default class BaseParser {\n // Properties set by constructor in index.js\n declare options: Options;\n declare inModule: boolean;\n declare scope: ScopeHandler;\n declare classScope: ClassScopeHandler;\n declare prodParam: ProductionParameterHandler;\n declare expressionScope: ExpressionScopeHandler;\n declare plugins: PluginsMap;\n declare filename: string | undefined | null;\n // Names of exports store. `default` is stored as a name for both\n // `export default foo;` and `export { foo as default };`.\n declare exportedIdentifiers: Set;\n sawUnambiguousESM: boolean = false;\n ambiguousScriptDifferentAst: boolean = false;\n\n // Initialized by Tokenizer\n declare state: State;\n // input and length are not in state as they are constant and we do\n // not want to ever copy them, which happens if state gets cloned\n declare input: string;\n declare length: number;\n // Comment store for Program.comments\n declare comments: Array;\n\n // This method accepts either a string (plugin name) or an array pair\n // (plugin name and options object). If an options object is given,\n // then each value is non-recursively checked for identity with that\n // plugin’s actual option value.\n hasPlugin(pluginConfig: PluginConfig): boolean {\n if (typeof pluginConfig === \"string\") {\n return this.plugins.has(pluginConfig);\n } else {\n const [pluginName, pluginOptions] = pluginConfig;\n if (!this.hasPlugin(pluginName)) {\n return false;\n }\n const actualOptions = this.plugins.get(pluginName);\n for (const key of Object.keys(\n pluginOptions,\n ) as (keyof typeof pluginOptions)[]) {\n if (actualOptions?.[key] !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n\n getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions,\n >(plugin: PluginName, name: OptionName) {\n return (this.plugins.get(plugin) as null | PluginOptions)?.[\n name\n ];\n }\n}\n","/*:: declare var invariant; */\n\nimport BaseParser from \"./base.ts\";\nimport type { Comment, Node, Identifier } from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { Undone } from \"./node.ts\";\n\n/**\n * A whitespace token containing comments\n */\nexport type CommentWhitespace = {\n /**\n * the start of the whitespace token.\n */\n start: number;\n /**\n * the end of the whitespace token.\n */\n end: number;\n /**\n * the containing comments\n */\n comments: Array;\n /**\n * the immediately preceding AST node of the whitespace token\n */\n leadingNode: Node | null;\n /**\n * the immediately following AST node of the whitespace token\n */\n trailingNode: Node | null;\n /**\n * the innermost AST node containing the whitespace with minimal size (|end - start|)\n */\n containingNode: Node | null;\n};\n\n/**\n * Merge comments with node's trailingComments or assign comments to be\n * trailingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setTrailingComments(node: Undone, comments: Array) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's leadingComments or assign comments to be\n * leadingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setLeadingComments(node: Undone, comments: Array) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's innerComments or assign comments to be\n * innerComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nexport function setInnerComments(\n node: Undone,\n comments?: Array,\n) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\n\n/**\n * Given node and elements array, if elements has non-null element,\n * merge comments to its trailingComments, otherwise merge comments\n * to node's innerComments\n */\nfunction adjustInnerComments(\n node: Undone,\n elements: Array,\n commentWS: CommentWhitespace,\n) {\n let lastElement = null;\n let i = elements.length;\n while (lastElement === null && i > 0) {\n lastElement = elements[--i];\n }\n if (lastElement === null || lastElement.start > commentWS.start) {\n setInnerComments(node, commentWS.comments);\n } else {\n setTrailingComments(lastElement, commentWS.comments);\n }\n}\n\nexport default class CommentsParser extends BaseParser {\n addComment(comment: Comment): void {\n if (this.filename) comment.loc.filename = this.filename;\n const { commentsLen } = this.state;\n if (this.comments.length != commentsLen) this.comments.length = commentsLen;\n this.comments.push(comment);\n this.state.commentsLen++;\n }\n\n /**\n * Given a newly created AST node _n_, attach _n_ to a comment whitespace _w_ if applicable\n * {@see {@link CommentWhitespace}}\n */\n processComment(node: Node): void {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n\n const { start: nodeStart } = node;\n // invariant: for all 0 <= j <= i, let c = commentStack[j], c must satisfy c.end < node.end\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n // by definition of commentWhiteSpace, this implies commentWS.start > nodeStart\n // so node can be a containingNode candidate. At this time we can finalize the comment\n // whitespace, because\n // 1) its leadingNode or trailingNode, if exists, will not change\n // 2) its containingNode have been assigned and will not change because it is the\n // innermost minimal-sized AST node\n commentWS.containingNode = node;\n this.finalizeComment(commentWS);\n commentStack.splice(i, 1);\n } else {\n if (commentEnd === nodeStart) {\n commentWS.trailingNode = node;\n }\n // stop the loop when commentEnd <= nodeStart\n break;\n }\n }\n }\n\n /**\n * Assign the comments of comment whitespaces to related AST nodes.\n * Also adjust innerComments following trailing comma.\n */\n finalizeComment(commentWS: CommentWhitespace) {\n const { comments } = commentWS;\n if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) {\n if (commentWS.leadingNode !== null) {\n setTrailingComments(commentWS.leadingNode, comments);\n }\n if (commentWS.trailingNode !== null) {\n setLeadingComments(commentWS.trailingNode, comments);\n }\n } else {\n /*:: invariant(commentWS.containingNode !== null) */\n const { containingNode: node, start: commentStart } = commentWS;\n if (this.input.charCodeAt(commentStart - 1) === charCodes.comma) {\n // If a commentWhitespace follows a comma and the containingNode allows\n // list structures with trailing comma, merge it to the trailingComment\n // of the last non-null list element\n switch (node.type) {\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n case \"RecordExpression\":\n adjustInnerComments(node, node.properties, commentWS);\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n adjustInnerComments(node, node.arguments, commentWS);\n break;\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ArrowFunctionExpression\":\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n adjustInnerComments(node, node.params, commentWS);\n break;\n case \"ArrayExpression\":\n case \"ArrayPattern\":\n case \"TupleExpression\":\n adjustInnerComments(node, node.elements, commentWS);\n break;\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n adjustInnerComments(node, node.specifiers, commentWS);\n break;\n default: {\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n\n /**\n * Drains remaining commentStack and applies finalizeComment\n * to each comment whitespace. Used only in parseExpression\n * where the top level AST node is _not_ Program\n * {@see {@link CommentsParser#finalizeComment}}\n */\n finalizeRemainingComments() {\n const { commentStack } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node trailing comments. Used in object / class\n * property parsing. We parse `async`, `static`, `set` and `get`\n * as an identifier but may reinterpret it into an async/static/accessor\n * method later. In this case the identifier is not part of the AST and we\n * should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * async /* 1 *​/ function f() {}\n * ```\n * the comment whitespace `/* 1 *​/` has leading node Identifier(async). When\n * we see the function token, we create a Function node and mark `/* 1 *​/` as\n * inner comments. So `/* 1 *​/` should be detached from the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousNodeTrailingComments(node: Node) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node leading comments, assuming that `node` is a\n * single-token node. Used in import phase modifiers parsing. We parse\n * `module` in `import module foo from ...` as an identifier but may\n * reinterpret it into a phase modifier later. In this case the identifier is\n * not part of the AST and we should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * import /* 1 *​/ module a from \"a\";\n * ```\n * the comment whitespace `/* 1 *​/` has trailing node Identifier(module). When\n * we see that `module` is not a default import binding, we mark `/* 1 *​/` as\n * inner comments of the ImportDeclaration. So `/* 1 *​/` should be detached from\n * the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousIdentifierLeadingComments(node: Identifier) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n\n if (commentStack[length - 1].trailingNode === node) {\n commentStack[length - 1].trailingNode = null;\n } else if (length >= 2 && commentStack[length - 2].trailingNode === node) {\n commentStack[length - 2].trailingNode = null;\n }\n }\n\n /**\n * Attach a node to the comment whitespaces right before/after\n * the given range.\n *\n * This is used to properly attach comments around parenthesized\n * expressions as leading/trailing comments of the inner expression.\n */\n takeSurroundingComments(node: Node, start: number, end: number) {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n\n if (commentStart === end) {\n commentWS.leadingNode = node;\n } else if (commentEnd === start) {\n commentWS.trailingNode = node;\n } else if (commentEnd < start) {\n break;\n }\n }\n }\n}\n","import * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n switch (code) {\n case charCodes.lineFeed:\n case charCodes.carriageReturn:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return true;\n\n default:\n return false;\n }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nexport const skipWhiteSpaceInLine =\n /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\n\n// Skip whitespace and single-line comments, including /* no newline here */.\n// After this RegExp matches, its lastIndex points to a line terminator, or\n// the start of multi-line comment (which is effectively a line terminator),\n// or the end of string.\nexport const skipWhiteSpaceToLineBreak = new RegExp(\n // Unfortunately JS doesn't support Perl's atomic /(?>pattern)/ or\n // possessive quantifiers, so we use a trick to prevent backtracking\n // when the look-ahead for line terminator fails.\n \"(?=(\" +\n // Capture the whitespace and comments that should be skipped inside\n // a look-ahead assertion, and then re-match the group as a unit.\n skipWhiteSpaceInLine.source +\n \"))\\\\1\" +\n // Look-ahead for either line terminator, start of multi-line comment,\n // or end of string.\n /(?=[\\n\\r\\u2028\\u2029]|\\/\\*(?!.*?\\*\\/)|$)/.source,\n \"y\", // sticky\n);\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n switch (code) {\n case 0x0009: // CHARACTER TABULATION\n case 0x000b: // LINE TABULATION\n case 0x000c: // FORM FEED\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.oghamSpaceMark:\n case 0x2000: // EN QUAD\n case 0x2001: // EM QUAD\n case 0x2002: // EN SPACE\n case 0x2003: // EM SPACE\n case 0x2004: // THREE-PER-EM SPACE\n case 0x2005: // FOUR-PER-EM SPACE\n case 0x2006: // SIX-PER-EM SPACE\n case 0x2007: // FIGURE SPACE\n case 0x2008: // PUNCTUATION SPACE\n case 0x2009: // THIN SPACE\n case 0x200a: // HAIR SPACE\n case 0x202f: // NARROW NO-BREAK SPACE\n case 0x205f: // MEDIUM MATHEMATICAL SPACE\n case 0x3000: // IDEOGRAPHIC SPACE\n case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n return true;\n\n default:\n return false;\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type { CommentWhitespace } from \"../parser/comments\";\nimport { Position } from \"../util/location.ts\";\n\nimport { types as ct, type TokContext } from \"./context.ts\";\nimport { tt, type TokenType } from \"./types.ts\";\nimport type { Errors } from \"../parse-error.ts\";\nimport type { ParseError } from \"../parse-error.ts\";\n\nexport type DeferredStrictError =\n | typeof Errors.StrictNumericEscape\n | typeof Errors.StrictOctalLiteral;\n\ntype TopicContextState = {\n // When a topic binding has been currently established,\n // then this is 1. Otherwise, it is 0. This is forwards compatible\n // with a future plugin for multiple lexical topics.\n maxNumOfResolvableTopics: number;\n // When a topic binding has been currently established, and if that binding\n // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n // `null`. This is forwards compatible with a future plugin for multiple\n // lexical topics.\n maxTopicIndex: null | 0;\n};\n\nconst enum StateFlags {\n None = 0,\n Strict = 1 << 0,\n maybeInArrowParameters = 1 << 1,\n inType = 1 << 2,\n noAnonFunctionType = 1 << 3,\n hasFlowComment = 1 << 4,\n isAmbientContext = 1 << 5,\n inAbstractClass = 1 << 6,\n inDisallowConditionalTypesContext = 1 << 7,\n soloAwait = 1 << 8,\n inFSharpPipelineDirectBody = 1 << 9,\n canStartJSXElement = 1 << 10,\n containsEsc = 1 << 11,\n}\n\nexport const enum LoopLabelKind {\n Loop = 1,\n Switch = 2,\n}\n\nexport default class State {\n flags: number = StateFlags.canStartJSXElement;\n\n get strict(): boolean {\n return (this.flags & StateFlags.Strict) > 0;\n }\n set strict(value: boolean) {\n if (value) {\n this.flags |= StateFlags.Strict;\n } else {\n this.flags &= ~StateFlags.Strict;\n }\n }\n curLine: number;\n lineStart: number;\n\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n startLoc: Position;\n endLoc: Position;\n\n init({ strictMode, sourceType, startLine, startColumn }: Options): void {\n this.strict =\n strictMode === false\n ? false\n : strictMode === true\n ? true\n : sourceType === \"module\";\n\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(startLine, startColumn, 0);\n }\n\n errors: ParseError[] = [];\n\n // Used to signify the start of a potential arrow function\n potentialArrowAt: number = -1;\n\n // Used to signify the start of an expression which looks like a\n // typed arrow function, but it isn't\n // e.g. a ? (b) : c => d\n // ^\n noArrowAt: number[] = [];\n\n // Used to signify the start of an expression whose params, if it looks like\n // an arrow function, shouldn't be converted to assignable nodes.\n // This is used to defer the validation of typed arrow functions inside\n // conditional expressions.\n // e.g. a ? (b) : c => d\n // ^\n noArrowParamsConversionAt: number[] = [];\n\n // Flags to track\n get maybeInArrowParameters(): boolean {\n return (this.flags & StateFlags.maybeInArrowParameters) > 0;\n }\n set maybeInArrowParameters(value: boolean) {\n if (value) {\n this.flags |= StateFlags.maybeInArrowParameters;\n } else {\n this.flags &= ~StateFlags.maybeInArrowParameters;\n }\n }\n get inType(): boolean {\n return (this.flags & StateFlags.inType) > 0;\n }\n set inType(value: boolean) {\n if (value) {\n this.flags |= StateFlags.inType;\n } else {\n this.flags &= ~StateFlags.inType;\n }\n }\n get noAnonFunctionType(): boolean {\n return (this.flags & StateFlags.noAnonFunctionType) > 0;\n }\n set noAnonFunctionType(value: boolean) {\n if (value) {\n this.flags |= StateFlags.noAnonFunctionType;\n } else {\n this.flags &= ~StateFlags.noAnonFunctionType;\n }\n }\n get hasFlowComment(): boolean {\n return (this.flags & StateFlags.hasFlowComment) > 0;\n }\n set hasFlowComment(value: boolean) {\n if (value) {\n this.flags |= StateFlags.hasFlowComment;\n } else {\n this.flags &= ~StateFlags.hasFlowComment;\n }\n }\n get isAmbientContext(): boolean {\n return (this.flags & StateFlags.isAmbientContext) > 0;\n }\n set isAmbientContext(value: boolean) {\n if (value) {\n this.flags |= StateFlags.isAmbientContext;\n } else {\n this.flags &= ~StateFlags.isAmbientContext;\n }\n }\n get inAbstractClass(): boolean {\n return (this.flags & StateFlags.inAbstractClass) > 0;\n }\n set inAbstractClass(value: boolean) {\n if (value) {\n this.flags |= StateFlags.inAbstractClass;\n } else {\n this.flags &= ~StateFlags.inAbstractClass;\n }\n }\n get inDisallowConditionalTypesContext(): boolean {\n return (this.flags & StateFlags.inDisallowConditionalTypesContext) > 0;\n }\n set inDisallowConditionalTypesContext(value: boolean) {\n if (value) {\n this.flags |= StateFlags.inDisallowConditionalTypesContext;\n } else {\n this.flags &= ~StateFlags.inDisallowConditionalTypesContext;\n }\n }\n\n // For the Hack-style pipelines plugin\n topicContext: TopicContextState = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null,\n };\n\n // For the F#-style pipelines plugin\n get soloAwait(): boolean {\n return (this.flags & StateFlags.soloAwait) > 0;\n }\n set soloAwait(value: boolean) {\n if (value) {\n this.flags |= StateFlags.soloAwait;\n } else {\n this.flags &= ~StateFlags.soloAwait;\n }\n }\n get inFSharpPipelineDirectBody(): boolean {\n return (this.flags & StateFlags.inFSharpPipelineDirectBody) > 0;\n }\n set inFSharpPipelineDirectBody(value: boolean) {\n if (value) {\n this.flags |= StateFlags.inFSharpPipelineDirectBody;\n } else {\n this.flags &= ~StateFlags.inFSharpPipelineDirectBody;\n }\n }\n\n // Labels in scope.\n labels: Array<{\n kind: LoopLabelKind;\n name?: string | null;\n statementStart?: number;\n }> = [];\n\n commentsLen = 0;\n // Comment attachment store\n commentStack: Array = [];\n\n // The current position of the tokenizer in the input.\n pos: number = 0;\n\n // Properties of the current token:\n // Its type\n type: TokenType = tt.eof;\n\n // For tokens that include more information than their type, the value\n value: any = null;\n\n // Its start and end offset\n start: number = 0;\n end: number = 0;\n\n // Position information for the previous token\n // this is initialized when generating the second token.\n lastTokEndLoc: Position = null;\n // this is initialized when generating the second token.\n lastTokStartLoc: Position = null;\n\n // The context stack is used to track whether the apostrophe \"`\" starts\n // or ends a string template\n context: Array = [ct.brace];\n // Used to track whether a JSX element is allowed to form\n get canStartJSXElement(): boolean {\n return (this.flags & StateFlags.canStartJSXElement) > 0;\n }\n set canStartJSXElement(value: boolean) {\n if (value) {\n this.flags |= StateFlags.canStartJSXElement;\n } else {\n this.flags &= ~StateFlags.canStartJSXElement;\n }\n }\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n get containsEsc(): boolean {\n return (this.flags & StateFlags.containsEsc) > 0;\n }\n set containsEsc(value: boolean) {\n if (value) {\n this.flags |= StateFlags.containsEsc;\n } else {\n this.flags &= ~StateFlags.containsEsc;\n }\n }\n\n // Used to track invalid escape sequences in template literals,\n // that must be reported if the template is not tagged.\n firstInvalidTemplateEscapePos: null | Position = null;\n\n // This property is used to track the following errors\n // - StrictNumericEscape\n // - StrictOctalLiteral\n //\n // in a literal that occurs prior to/immediately after a \"use strict\" directive.\n\n // todo(JLHwung): set strictErrors to null and avoid recording string errors\n // after a non-directive is parsed\n strictErrors: Map = new Map();\n\n // Tokens length in token store\n tokensLength: number = 0;\n\n /**\n * When we add a new property, we must manually update the `clone` method\n * @see State#clone\n */\n\n curPosition(): Position {\n return new Position(this.curLine, this.pos - this.lineStart, this.pos);\n }\n\n clone(): State {\n const state = new State();\n state.flags = this.flags;\n state.curLine = this.curLine;\n state.lineStart = this.lineStart;\n state.startLoc = this.startLoc;\n state.endLoc = this.endLoc;\n state.errors = this.errors.slice();\n state.potentialArrowAt = this.potentialArrowAt;\n state.noArrowAt = this.noArrowAt.slice();\n state.noArrowParamsConversionAt = this.noArrowParamsConversionAt.slice();\n state.topicContext = this.topicContext;\n state.labels = this.labels.slice();\n state.commentsLen = this.commentsLen;\n state.commentStack = this.commentStack.slice();\n state.pos = this.pos;\n state.type = this.type;\n state.value = this.value;\n state.start = this.start;\n state.end = this.end;\n state.lastTokEndLoc = this.lastTokEndLoc;\n state.lastTokStartLoc = this.lastTokStartLoc;\n state.context = this.context.slice();\n state.firstInvalidTemplateEscapePos = this.firstInvalidTemplateEscapePos;\n state.strictErrors = this.strictErrors;\n state.tokensLength = this.tokensLength;\n\n return state;\n }\n}\n\nexport type LookaheadState = {\n pos: number;\n value: any;\n type: TokenType;\n start: number;\n end: number;\n context: TokContext[];\n startLoc: Position;\n lastTokEndLoc: Position;\n curLine: number;\n lineStart: number;\n curPosition: () => Position;\n /* Used only in readToken_mult_modulo */\n inType: boolean;\n // These boolean properties are not initialized in createLookaheadState()\n // instead they will only be set by the tokenizer\n containsEsc?: boolean;\n};\n","import * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = input.slice(startPos, pos + 2).match(/^[0-7]+/)!;\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","/*:: declare var invariant; */\n\nimport type { Options } from \"../options.ts\";\nimport {\n Position,\n SourceLocation,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport CommentsParser, { type CommentWhitespace } from \"../parser/comments.ts\";\nimport type * as N from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier.ts\";\nimport {\n tokenIsKeyword,\n tokenLabelName,\n tt,\n keywords as keywordTypes,\n type TokenType,\n} from \"./types.ts\";\nimport type { TokContext } from \"./context.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n} from \"../parse-error.ts\";\nimport {\n lineBreakG,\n isNewLine,\n isWhitespace,\n skipWhiteSpace,\n skipWhiteSpaceInLine,\n} from \"../util/whitespace.ts\";\nimport State from \"./state.ts\";\nimport type { LookaheadState, DeferredStrictError } from \"./state.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { Node } from \"../types.ts\";\n\nimport {\n readInt,\n readCodePoint,\n readStringContents,\n type IntErrorHandlers,\n type CodePointErrorHandlers,\n type StringContentsErrorHandlers,\n} from \"@babel/helper-string-parser\";\n\nimport type { Plugin } from \"../typings.ts\";\n\nfunction buildPosition(pos: number, lineStart: number, curLine: number) {\n return new Position(curLine, pos - lineStart, pos);\n}\n\nconst VALID_REGEX_FLAGS = new Set([\n charCodes.lowercaseG,\n charCodes.lowercaseM,\n charCodes.lowercaseS,\n charCodes.lowercaseI,\n charCodes.lowercaseY,\n charCodes.lowercaseU,\n charCodes.lowercaseD,\n charCodes.lowercaseV,\n]);\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(state: State) {\n this.type = state.type;\n this.value = state.value;\n this.start = state.start;\n this.end = state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n\n declare type: TokenType;\n declare value: any;\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default abstract class Tokenizer extends CommentsParser {\n isLookahead: boolean;\n\n // Token store.\n tokens: Array = [];\n\n constructor(options: Options, input: string) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.comments = [];\n this.isLookahead = false;\n }\n\n pushToken(token: Token | N.Comment) {\n // Pop out invalid tokens trapped by try-catch parsing.\n // Those parsing branches are mainly created by typescript and flow plugins.\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n\n // Move to the next token\n\n next(): void {\n this.checkKeywordEscapes();\n if (this.options.tokens) {\n this.pushToken(new Token(this.state));\n }\n\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n\n eat(type: TokenType): boolean {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Whether current token matches given type\n */\n match(type: TokenType): boolean {\n return this.state.type === type;\n }\n\n /**\n * Create a LookaheadState from current parser state\n */\n createLookaheadState(state: State): LookaheadState {\n return {\n pos: state.pos,\n value: null,\n type: state.type,\n start: state.start,\n end: state.end,\n context: [this.curContext()],\n inType: state.inType,\n startLoc: state.startLoc,\n lastTokEndLoc: state.lastTokEndLoc,\n curLine: state.curLine,\n lineStart: state.lineStart,\n curPosition: state.curPosition,\n };\n }\n\n /**\n * lookahead peeks the next token, skipping changes to token context and\n * comment stack. For performance it returns a limited LookaheadState\n * instead of full parser state.\n *\n * The { column, line } Loc info is not included in lookahead since such usage\n * is rare. Although it may return other location properties e.g. `curLine` and\n * `lineStart`, these properties are not listed in the LookaheadState interface\n * and thus the returned value is _NOT_ reliable.\n *\n * The tokenizer should make best efforts to avoid using any parser state\n * other than those defined in LookaheadState\n */\n lookahead(): LookaheadState {\n const old = this.state;\n // @ts-expect-error For performance we use a simplified tokenizer state structure\n this.state = this.createLookaheadState(old);\n\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n\n const curr = this.state;\n this.state = old;\n return curr;\n }\n\n nextTokenStart(): number {\n return this.nextTokenStartSince(this.state.pos);\n }\n\n nextTokenStartSince(pos: number): number {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n\n lookaheadCharCode(): number {\n return this.input.charCodeAt(this.nextTokenStart());\n }\n\n /**\n * Similar to nextToken, but it will stop at line break when it is seen before the next token\n *\n * @returns {number} position of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n nextTokenInLineStart(): number {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n\n nextTokenInLineStartSince(pos: number): number {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input)\n ? skipWhiteSpaceInLine.lastIndex\n : pos;\n }\n\n /**\n * Similar to lookaheadCharCode, but it will return the char code of line break if it is\n * seen before the next token\n *\n * @returns {number} char code of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n lookaheadInLineCharCode(): number {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n\n codePointAtPos(pos: number): number {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `input` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = this.input.charCodeAt(pos);\n if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) {\n const trail = this.input.charCodeAt(pos);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n return cp;\n }\n\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n setStrict(strict: boolean): void {\n this.state.strict = strict;\n if (strict) {\n // Throw an error for any string decimal escape found before/immediately\n // after a \"use strict\" directive. Strict mode will be set at parse\n // time for any literals that occur after the next node of the strict\n // directive.\n this.state.strictErrors.forEach(([toParseError, at]) =>\n this.raise(toParseError, at),\n );\n this.state.strictErrors.clear();\n }\n }\n\n curContext(): TokContext {\n return this.state.context[this.state.context.length - 1];\n }\n\n // Read a single token, updating the parser object's token-related properties.\n nextToken(): void {\n this.skipSpace();\n this.state.start = this.state.pos;\n if (!this.isLookahead) this.state.startLoc = this.state.curPosition();\n if (this.state.pos >= this.length) {\n this.finishToken(tt.eof);\n return;\n }\n\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n\n // Skips a block comment, whose end is marked by commentEnd.\n // *-/ is used by the Flow plugin, when parsing block comments nested\n // inside Flow comments.\n skipBlockComment(commentEnd: \"*/\" | \"*-/\"): N.CommentBlock | undefined {\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n const start = this.state.pos;\n const end = this.input.indexOf(commentEnd, start + 2);\n if (end === -1) {\n // We have to call this again here because startLoc may not be set...\n // This seems to be for performance reasons:\n // https://github.com/babel/babel/commit/acf2a10899f696a8aaf34df78bf9725b5ea7f2da\n throw this.raise(Errors.UnterminatedComment, this.state.curPosition());\n }\n\n this.state.pos = end + commentEnd.length;\n lineBreakG.lastIndex = start + 2;\n while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) {\n ++this.state.curLine;\n this.state.lineStart = lineBreakG.lastIndex;\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const comment: N.CommentBlock = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start,\n end: end + commentEnd.length,\n loc: new SourceLocation(startLoc, this.state.curPosition()),\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n\n skipLineComment(startSkip: number): N.CommentLine | undefined {\n const start = this.state.pos;\n let startLoc;\n if (!this.isLookahead) startLoc = this.state.curPosition();\n let ch = this.input.charCodeAt((this.state.pos += startSkip));\n if (this.state.pos < this.length) {\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n\n const comment: N.CommentLine = {\n type: \"CommentLine\",\n value,\n start,\n end,\n loc: new SourceLocation(startLoc, this.state.curPosition()),\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n skipSpace(): void {\n const spaceStart = this.state.pos;\n const comments = [];\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.tab:\n ++this.state.pos;\n break;\n case charCodes.carriageReturn:\n if (\n this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n }\n // fall through\n case charCodes.lineFeed:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n\n case charCodes.slash:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case charCodes.asterisk: {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n\n case charCodes.slash: {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n\n default:\n break loop;\n }\n break;\n\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (\n ch === charCodes.dash &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.dash &&\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan &&\n (spaceStart === 0 || this.state.lineStart > spaceStart)\n ) {\n // A `-->` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // `` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n comments?.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.optionFlags & OptionFlags.AnnexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // ` R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue;\n }\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { onInput } from './onInput';\nimport { getActiveItem } from './utils';\nexport function onKeyDown(_ref) {\n var event = _ref.event,\n props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n var triggerScrollIntoView = function triggerScrollIntoView() {\n var nodeItem = props.environment.document.getElementById(\"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId));\n if (nodeItem) {\n if (nodeItem.scrollIntoViewIfNeeded) {\n nodeItem.scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }; // eslint-disable-next-line no-inner-declarations\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }; // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n store.dispatch(event.key, {\n nextActiveItemId: props.defaultActiveItemId\n });\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"sourceIndex\"],\n _excluded6 = [\"sourceIndex\"],\n _excluded7 = [\"item\", \"source\", \"sourceIndex\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getActiveItem, isOrContainsNode, isSamsung } from './utils';\nexport function getPropGetters(_ref) {\n var props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n var inputElement = providedProps.inputElement,\n formElement = providedProps.formElement,\n panelElement = providedProps.panelElement,\n rest = _objectWithoutProperties(providedProps, _excluded2);\n function onMouseDownOrTouchStart(event) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n return _objectSpread({\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove: function onTouchMove(event) {\n if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n return;\n }\n inputElement.blur();\n }\n }, rest);\n };\n var getRootProps = function getRootProps(rest) {\n return _objectSpread({\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\")\n }, rest);\n };\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n event.preventDefault();\n props.onSubmit(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('submit', null);\n (_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();\n },\n onReset: function onReset(event) {\n var _providedProps$inputE2;\n event.preventDefault();\n props.onReset(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('reset', null);\n (_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();\n }\n }, rest);\n };\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n function onFocus(event) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().completion || store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n store.dispatch('focus', null);\n }\n var _ref2 = providedProps || {},\n inputElement = _ref2.inputElement,\n _ref2$maxLength = _ref2.maxLength,\n maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,\n rest = _objectWithoutProperties(_ref2, _excluded4);\n var activeItem = getActiveItem(store.getState());\n var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';\n var shouldFallbackKeyHint = isSamsung(userAgent);\n var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';\n return _objectSpread({\n 'aria-autocomplete': 'both',\n 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? \"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId) : undefined,\n 'aria-controls': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\"),\n value: store.getState().completion || store.getState().query,\n id: \"\".concat(props.id, \"-input\"),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint: enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength: maxLength,\n type: 'search',\n onChange: function onChange(event) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: event.currentTarget.value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(_objectSpread({\n event: event,\n props: props,\n refresh: refresh,\n store: store\n }, setters));\n },\n onFocus: onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: function onClick(event) {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {\n onFocus(event);\n }\n }\n }, rest);\n };\n var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {\n return typeof sourceId !== 'undefined' ? \"\".concat(instanceId, \"-\").concat(sourceId) : instanceId;\n };\n var getLabelProps = function getLabelProps(providedProps) {\n var _ref3 = providedProps || {},\n sourceIndex = _ref3.sourceIndex,\n rest = _objectWithoutProperties(_ref3, _excluded5);\n return _objectSpread({\n htmlFor: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-input\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\")\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref4 = providedProps || {},\n sourceIndex = _ref4.sourceIndex,\n rest = _objectWithoutProperties(_ref4, _excluded6);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-list\")\n }, rest);\n };\n var getPanelProps = function getPanelProps(rest) {\n return _objectSpread({\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n event.preventDefault();\n },\n onMouseLeave: function onMouseLeave() {\n store.dispatch('mouseleave', null);\n }\n }, rest);\n };\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n sourceIndex = providedProps.sourceIndex,\n rest = _objectWithoutProperties(providedProps, _excluded7);\n return _objectSpread({\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-item-\").concat(item.__autocomplete_id),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}","export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n var plugins = _ref.plugins,\n options = _ref.options;\n var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;\n var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};\n return {\n plugins: plugins.map(function (plugin) {\n return {\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || [])\n };\n }),\n options: _objectSpread({\n 'autocomplete-core': Object.keys(options)\n }, extraOptions),\n ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])\n };\n}\nexport function injectMetadata(_ref3) {\n var _environment$navigato, _environment$navigato2;\n var metadata = _ref3.metadata,\n environment = _ref3.environment;\n var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');\n if (isMetadataEnabled) {\n var metadataContainer = environment.document.createElement('meta');\n var headRef = environment.document.querySelector('head');\n metadataContainer.name = 'algolia:metadata';\n setTimeout(function () {\n metadataContainer.content = JSON.stringify(metadata);\n headRef.appendChild(metadataContainer);\n }, 0);\n }\n}","import { getActiveItem } from './utils';\nexport function getCompletion(_ref) {\n var _getActiveItem;\n var state = _ref.state;\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n switch (action.type) {\n case 'setActiveItemId':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\n }\n case 'ArrowDown':\n {\n var nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\n });\n }\n case 'ArrowUp':\n {\n var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\n });\n }\n case 'Escape':\n {\n if (state.isOpen) {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n completion: null\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n status: 'idle',\n query: ''\n });\n }\n case 'focus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId,\n isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({\n state: state\n })\n });\n }\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nexport function createAutocomplete(options) {\n checkOptions(options);\n var subscribers = [];\n var props = getDefaultProps(options, subscribers);\n var store = createStore(stateReducer, props, onStoreStateChange);\n var setters = getAutocompleteSetters({\n store: store\n });\n var propGetters = getPropGetters(_objectSpread({\n props: props,\n refresh: refresh,\n store: store,\n navigator: props.navigator\n }, setters));\n function onStoreStateChange(_ref) {\n var prevState = _ref.prevState,\n state = _ref.state;\n props.onStateChange(_objectSpread({\n prevState: prevState,\n state: state,\n refresh: refresh,\n navigator: props.navigator\n }, setters));\n }\n function refresh() {\n return onInput(_objectSpread({\n event: new Event('input'),\n nextState: {\n isOpen: store.getState().isOpen\n },\n props: props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n if (options.insights && !props.plugins.some(function (plugin) {\n return plugin.name === 'aa.algoliaInsightsPlugin';\n })) {\n var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n props.plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\n navigator: props.navigator,\n refresh: refresh,\n onSelect: function onSelect(fn) {\n subscribers.push({\n onSelect: fn\n });\n },\n onActive: function onActive(fn) {\n subscribers.push({\n onActive: fn\n });\n },\n onResolve: function onResolve(fn) {\n subscribers.push({\n onResolve: fn\n });\n }\n }));\n });\n injectMetadata({\n metadata: getMetadata({\n plugins: props.plugins,\n options: options\n }),\n environment: props.environment\n });\n return _objectSpread(_objectSpread({\n refresh: refresh,\n navigator: props.navigator\n }, propGetters), setters);\n}","import React from 'react';\nexport function AlgoliaLogo(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$searchB = translations.searchByText,\n searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB;\n return /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://www.algolia.com/ref/docsearch/?utm_source=\".concat(window.location.hostname, \"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, searchByText), /*#__PURE__*/React.createElement(\"svg\", {\n width: \"77\",\n height: \"19\",\n \"aria-label\": \"Algolia\",\n role: \"img\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2196.2 500\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}\")), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-1\",\n x: \"1845.88\",\n y: \"104.73\",\n width: \"62.58\",\n height: \"277.9\",\n rx: \"5.9\",\n ry: \"5.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z\"\n })));\n}","import React from 'react';\nimport { AlgoliaLogo } from './AlgoliaLogo';\n\nfunction CommandIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"15\",\n height: \"15\",\n \"aria-label\": props.ariaLabel,\n role: \"img\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"1.2\"\n }, props.children));\n}\n\nexport function Footer(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$selectT = translations.selectText,\n selectText = _translations$selectT === void 0 ? 'to select' : _translations$selectT,\n _translations$selectK = translations.selectKeyAriaLabel,\n selectKeyAriaLabel = _translations$selectK === void 0 ? 'Enter key' : _translations$selectK,\n _translations$navigat = translations.navigateText,\n navigateText = _translations$navigat === void 0 ? 'to navigate' : _translations$navigat,\n _translations$navigat2 = translations.navigateUpKeyAriaLabel,\n navigateUpKeyAriaLabel = _translations$navigat2 === void 0 ? 'Arrow up' : _translations$navigat2,\n _translations$navigat3 = translations.navigateDownKeyAriaLabel,\n navigateDownKeyAriaLabel = _translations$navigat3 === void 0 ? 'Arrow down' : _translations$navigat3,\n _translations$closeTe = translations.closeText,\n closeText = _translations$closeTe === void 0 ? 'to close' : _translations$closeTe,\n _translations$closeKe = translations.closeKeyAriaLabel,\n closeKeyAriaLabel = _translations$closeKe === void 0 ? 'Escape key' : _translations$closeKe,\n _translations$searchB = translations.searchByText,\n searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Logo\"\n }, /*#__PURE__*/React.createElement(AlgoliaLogo, {\n translations: {\n searchByText: searchByText\n }\n })), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"DocSearch-Commands\"\n }, /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: selectKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, selectText)), /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: navigateDownKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 3.5v8M10.5 8.5l-3 3-3-3\"\n }))), /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: navigateUpKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 11.5v-8M10.5 6.5l-3-3-3 3\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, navigateText)), /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: closeKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, closeText))));\n}","import React from 'react';\nexport function Hit(_ref) {\n var hit = _ref.hit,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"a\", {\n href: hit.url\n }, children);\n}","import React from 'react';\nexport function LoadingIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 38 38\",\n stroke: \"currentColor\",\n strokeOpacity: \".5\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n strokeOpacity: \".3\",\n cx: \"18\",\n cy: \"18\",\n r: \"18\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n}","import React from 'react';\nexport function RecentIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13\"\n })));\n}","import React from 'react';\nexport function ResetIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function SelectIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: \"DocSearch-Hit-Select-Icon\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 3v4c0 2-2 4-4 4H2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 17l-6-6 6-6\"\n })));\n}","import React from 'react';\n\nvar LvlIcon = function LvlIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n};\n\nexport function SourceIcon(props) {\n switch (props.type) {\n case 'lvl1':\n return /*#__PURE__*/React.createElement(LvlIcon, null);\n\n case 'content':\n return /*#__PURE__*/React.createElement(ContentIcon, null);\n\n default:\n return /*#__PURE__*/React.createElement(AnchorIcon, null);\n }\n}\n\nfunction AnchorIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}\n\nfunction ContentIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 5H3h14zm0 5H3h14zm0 5H3h14z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function StarIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function ErrorIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0\"\n }));\n}","import React from 'react';\nexport function NoResultsIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2\"\n }));\n}","import React from 'react';\nimport { ErrorIcon } from './icons';\nexport function ErrorScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$titleTe = translations.titleText,\n titleText = _translations$titleTe === void 0 ? 'Unable to fetch results' : _translations$titleTe,\n _translations$helpTex = translations.helpText,\n helpText = _translations$helpTex === void 0 ? 'You might want to check your network connection.' : _translations$helpTex;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-ErrorScreen\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Screen-Icon\"\n }, /*#__PURE__*/React.createElement(ErrorIcon, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Title\"\n }, titleText), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, helpText));\n}","var _excluded = [\"translations\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { NoResultsIcon } from './icons';\nexport function NoResultsScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$noResul = translations.noResultsText,\n noResultsText = _translations$noResul === void 0 ? 'No results for' : _translations$noResul,\n _translations$suggest = translations.suggestedQueryText,\n suggestedQueryText = _translations$suggest === void 0 ? 'Try searching for' : _translations$suggest,\n _translations$reportM = translations.reportMissingResultsText,\n reportMissingResultsText = _translations$reportM === void 0 ? 'Believe this query should return results?' : _translations$reportM,\n _translations$reportM2 = translations.reportMissingResultsLinkText,\n reportMissingResultsLinkText = _translations$reportM2 === void 0 ? 'Let us know.' : _translations$reportM2;\n var searchSuggestions = props.state.context.searchSuggestions;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-NoResults\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Screen-Icon\"\n }, /*#__PURE__*/React.createElement(NoResultsIcon, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Title\"\n }, noResultsText, \" \\\"\", /*#__PURE__*/React.createElement(\"strong\", null, props.state.query), \"\\\"\"), searchSuggestions && searchSuggestions.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-NoResults-Prefill-List\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, suggestedQueryText, \":\"), /*#__PURE__*/React.createElement(\"ul\", null, searchSuggestions.slice(0, 3).reduce(function (acc, search) {\n return [].concat(_toConsumableArray(acc), [/*#__PURE__*/React.createElement(\"li\", {\n key: search\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Prefill\",\n key: search,\n type: \"button\",\n onClick: function onClick() {\n props.setQuery(search.toLowerCase() + ' ');\n props.refresh();\n props.inputRef.current.focus();\n }\n }, search))]);\n }, []))), props.getMissingResultsUrl && /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, \"\".concat(reportMissingResultsText, \" \"), /*#__PURE__*/React.createElement(\"a\", {\n href: props.getMissingResultsUrl({\n query: props.state.query\n }),\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, reportMissingResultsLinkText)));\n}","var _excluded = [\"hit\", \"attribute\", \"tagName\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { createElement } from 'react';\n\nfunction getPropertyByPath(object, path) {\n var parts = path.split('.');\n return parts.reduce(function (prev, current) {\n if (prev !== null && prev !== void 0 && prev[current]) return prev[current];\n return null;\n }, object);\n}\n\nexport function Snippet(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute,\n _ref$tagName = _ref.tagName,\n tagName = _ref$tagName === void 0 ? 'span' : _ref$tagName,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return createElement(tagName, _objectSpread(_objectSpread({}, rest), {}, {\n dangerouslySetInnerHTML: {\n __html: getPropertyByPath(hit, \"_snippetResult.\".concat(attribute, \".value\")) || getPropertyByPath(hit, attribute)\n }\n }));\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport { Snippet } from './Snippet';\nexport function Results(props) {\n if (!props.collection || props.collection.items.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"section\", {\n className: \"DocSearch-Hits\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-source\"\n }, props.title), /*#__PURE__*/React.createElement(\"ul\", props.getListProps(), props.collection.items.map(function (item, index) {\n return /*#__PURE__*/React.createElement(Result, _extends({\n key: [props.title, item.objectID].join(':'),\n item: item,\n index: index\n }, props));\n })));\n}\n\nfunction Result(_ref) {\n var item = _ref.item,\n index = _ref.index,\n renderIcon = _ref.renderIcon,\n renderAction = _ref.renderAction,\n getItemProps = _ref.getItemProps,\n onItemClick = _ref.onItemClick,\n collection = _ref.collection,\n hitComponent = _ref.hitComponent;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isDeleting = _React$useState2[0],\n setIsDeleting = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n isFavoriting = _React$useState4[0],\n setIsFavoriting = _React$useState4[1];\n\n var action = React.useRef(null);\n var Hit = hitComponent;\n\n function runDeleteTransition(cb) {\n setIsDeleting(true);\n action.current = cb;\n }\n\n function runFavoriteTransition(cb) {\n setIsFavoriting(true);\n action.current = cb;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: ['DocSearch-Hit', item.__docsearch_parent && 'DocSearch-Hit--Child', isDeleting && 'DocSearch-Hit--deleting', isFavoriting && 'DocSearch-Hit--favoriting'].filter(Boolean).join(' '),\n onTransitionEnd: function onTransitionEnd() {\n if (action.current) {\n action.current();\n }\n }\n }, getItemProps({\n item: item,\n source: collection.source,\n onClick: function onClick(event) {\n onItemClick(item, event);\n }\n })), /*#__PURE__*/React.createElement(Hit, {\n hit: item\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-Container\"\n }, renderIcon({\n item: item,\n index: index\n }), item.hierarchy[item.type] && item.type === 'lvl1' && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n }), item.content && /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"content\"\n })), item.hierarchy[item.type] && (item.type === 'lvl2' || item.type === 'lvl3' || item.type === 'lvl4' || item.type === 'lvl5' || item.type === 'lvl6') && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"hierarchy.\".concat(item.type)\n }), /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n })), item.type === 'content' && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"content\"\n }), /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n })), renderAction({\n item: item,\n runDeleteTransition: runDeleteTransition,\n runFavoriteTransition: runFavoriteTransition\n }))));\n}","export function groupBy(values, predicate, maxResultsPerGroup) {\n return values.reduce(function (acc, item) {\n var key = predicate(item);\n\n if (!acc.hasOwnProperty(key)) {\n acc[key] = [];\n } // We limit each section to show 5 hits maximum.\n // This acts as a frontend alternative to `distinct`.\n\n\n if (acc[key].length < (maxResultsPerGroup || 5)) {\n acc[key].push(item);\n }\n\n return acc;\n }, {});\n}","export function identity(x) {\n return x;\n}","/**\n * Detect when an event is modified with a special key to let the browser\n * trigger its default behavior.\n */\nexport function isModifierEvent(event) {\n var isMiddleClick = event.button === 1;\n return isMiddleClick || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}","export function noop() {}","var regexHighlightTags = /(|<\\/mark>)/g;\nvar regexHasHighlightTags = RegExp(regexHighlightTags.source);\nexport function removeHighlightTags(hit) {\n var _internalDocSearchHit, _hit$_highlightResult;\n\n var internalDocSearchHit = hit;\n\n if (!internalDocSearchHit.__docsearch_parent && !hit._highlightResult) {\n return hit.hierarchy.lvl0;\n }\n\n var _ref = (internalDocSearchHit.__docsearch_parent ? (_internalDocSearchHit = internalDocSearchHit.__docsearch_parent) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit._highlightResult) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit.hierarchy) === null || _internalDocSearchHit === void 0 ? void 0 : _internalDocSearchHit.lvl0 : (_hit$_highlightResult = hit._highlightResult) === null || _hit$_highlightResult === void 0 || (_hit$_highlightResult = _hit$_highlightResult.hierarchy) === null || _hit$_highlightResult === void 0 ? void 0 : _hit$_highlightResult.lvl0) || {},\n value = _ref.value;\n\n return value && regexHasHighlightTags.test(value) ? value.replace(regexHighlightTags, '') : value;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport { SelectIcon, SourceIcon } from './icons';\nimport { Results } from './Results';\nimport { removeHighlightTags } from './utils';\nexport function ResultsScreen(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown-Container\"\n }, props.state.collections.map(function (collection) {\n if (collection.items.length === 0) {\n return null;\n }\n\n var title = removeHighlightTags(collection.items[0]);\n return /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n key: collection.source.sourceId,\n title: title,\n collection: collection,\n renderIcon: function renderIcon(_ref) {\n var _collection$items;\n\n var item = _ref.item,\n index = _ref.index;\n return /*#__PURE__*/React.createElement(React.Fragment, null, item.__docsearch_parent && /*#__PURE__*/React.createElement(\"svg\", {\n className: \"DocSearch-Hit-Tree\",\n viewBox: \"0 0 24 54\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, item.__docsearch_parent !== ((_collection$items = collection.items[index + 1]) === null || _collection$items === void 0 ? void 0 : _collection$items.__docsearch_parent) ? /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6v21M20 27H8.3\"\n }) : /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6v42M20 27H8.3\"\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(SourceIcon, {\n type: item.type\n })));\n },\n renderAction: function renderAction() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(SelectIcon, null));\n }\n }));\n }), props.resultsFooterComponent && /*#__PURE__*/React.createElement(\"section\", {\n className: \"DocSearch-HitsFooter\"\n }, /*#__PURE__*/React.createElement(props.resultsFooterComponent, {\n state: props.state\n })));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { RecentIcon, ResetIcon, StarIcon } from './icons';\nimport { Results } from './Results';\nexport function StartScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$recentS = translations.recentSearchesTitle,\n recentSearchesTitle = _translations$recentS === void 0 ? 'Recent' : _translations$recentS,\n _translations$noRecen = translations.noRecentSearchesText,\n noRecentSearchesText = _translations$noRecen === void 0 ? 'No recent searches' : _translations$noRecen,\n _translations$saveRec = translations.saveRecentSearchButtonTitle,\n saveRecentSearchButtonTitle = _translations$saveRec === void 0 ? 'Save this search' : _translations$saveRec,\n _translations$removeR = translations.removeRecentSearchButtonTitle,\n removeRecentSearchButtonTitle = _translations$removeR === void 0 ? 'Remove this search from history' : _translations$removeR,\n _translations$favorit = translations.favoriteSearchesTitle,\n favoriteSearchesTitle = _translations$favorit === void 0 ? 'Favorite' : _translations$favorit,\n _translations$removeF = translations.removeFavoriteSearchButtonTitle,\n removeFavoriteSearchButtonTitle = _translations$removeF === void 0 ? 'Remove this search from favorites' : _translations$removeF;\n\n if (props.state.status === 'idle' && props.hasCollections === false) {\n if (props.disableUserPersonalization) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-StartScreen\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, noRecentSearchesText));\n }\n\n if (props.hasCollections === false) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown-Container\"\n }, /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n title: recentSearchesTitle,\n collection: props.state.collections[0],\n renderIcon: function renderIcon() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(RecentIcon, null));\n },\n renderAction: function renderAction(_ref2) {\n var item = _ref2.item,\n runFavoriteTransition = _ref2.runFavoriteTransition,\n runDeleteTransition = _ref2.runDeleteTransition;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: saveRecentSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runFavoriteTransition(function () {\n props.favoriteSearches.add(item);\n props.recentSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(StarIcon, null))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: removeRecentSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(function () {\n props.recentSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(ResetIcon, null))));\n }\n })), /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n title: favoriteSearchesTitle,\n collection: props.state.collections[1],\n renderIcon: function renderIcon() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(StarIcon, null));\n },\n renderAction: function renderAction(_ref3) {\n var item = _ref3.item,\n runDeleteTransition = _ref3.runDeleteTransition;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: removeFavoriteSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(function () {\n props.favoriteSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(ResetIcon, null)));\n }\n })));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { ErrorScreen } from './ErrorScreen';\nimport { NoResultsScreen } from './NoResultsScreen';\nimport { ResultsScreen } from './ResultsScreen';\nimport { StartScreen } from './StartScreen';\nexport var ScreenState = React.memo(function (_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n if (props.state.status === 'error') {\n return /*#__PURE__*/React.createElement(ErrorScreen, {\n translations: translations === null || translations === void 0 ? void 0 : translations.errorScreen\n });\n }\n\n var hasCollections = props.state.collections.some(function (collection) {\n return collection.items.length > 0;\n });\n\n if (!props.state.query) {\n return /*#__PURE__*/React.createElement(StartScreen, _extends({}, props, {\n hasCollections: hasCollections,\n translations: translations === null || translations === void 0 ? void 0 : translations.startScreen\n }));\n }\n\n if (hasCollections === false) {\n return /*#__PURE__*/React.createElement(NoResultsScreen, _extends({}, props, {\n translations: translations === null || translations === void 0 ? void 0 : translations.noResultsScreen\n }));\n }\n\n return /*#__PURE__*/React.createElement(ResultsScreen, props);\n}, function areEqual(_prevProps, nextProps) {\n // We don't update the screen when Autocomplete is loading or stalled to\n // avoid UI flashes:\n // - Empty screen → Results screen\n // - NoResults screen → NoResults screen with another query\n return nextProps.state.status === 'loading' || nextProps.state.status === 'stalled';\n});","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { MAX_QUERY_SIZE } from './constants';\nimport { LoadingIcon } from './icons/LoadingIcon';\nimport { ResetIcon } from './icons/ResetIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nexport function SearchBox(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$resetBu = translations.resetButtonTitle,\n resetButtonTitle = _translations$resetBu === void 0 ? 'Clear the query' : _translations$resetBu,\n _translations$resetBu2 = translations.resetButtonAriaLabel,\n resetButtonAriaLabel = _translations$resetBu2 === void 0 ? 'Clear the query' : _translations$resetBu2,\n _translations$cancelB = translations.cancelButtonText,\n cancelButtonText = _translations$cancelB === void 0 ? 'Cancel' : _translations$cancelB,\n _translations$cancelB2 = translations.cancelButtonAriaLabel,\n cancelButtonAriaLabel = _translations$cancelB2 === void 0 ? 'Cancel' : _translations$cancelB2;\n\n var _props$getFormProps = props.getFormProps({\n inputElement: props.inputRef.current\n }),\n onReset = _props$getFormProps.onReset;\n\n React.useEffect(function () {\n if (props.autoFocus && props.inputRef.current) {\n props.inputRef.current.focus();\n }\n }, [props.autoFocus, props.inputRef]);\n React.useEffect(function () {\n if (props.isFromSelection && props.inputRef.current) {\n props.inputRef.current.select();\n }\n }, [props.isFromSelection, props.inputRef]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"form\", {\n className: \"DocSearch-Form\",\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n },\n onReset: onReset\n }, /*#__PURE__*/React.createElement(\"label\", _extends({\n className: \"DocSearch-MagnifierLabel\"\n }, props.getLabelProps()), /*#__PURE__*/React.createElement(SearchIcon, null)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-LoadingIndicator\"\n }, /*#__PURE__*/React.createElement(LoadingIcon, null)), /*#__PURE__*/React.createElement(\"input\", _extends({\n className: \"DocSearch-Input\",\n ref: props.inputRef\n }, props.getInputProps({\n inputElement: props.inputRef.current,\n autoFocus: props.autoFocus,\n maxLength: MAX_QUERY_SIZE\n }))), /*#__PURE__*/React.createElement(\"button\", {\n type: \"reset\",\n title: resetButtonTitle,\n className: \"DocSearch-Reset\",\n \"aria-label\": resetButtonAriaLabel,\n hidden: !props.state.query\n }, /*#__PURE__*/React.createElement(ResetIcon, null))), /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Cancel\",\n type: \"reset\",\n \"aria-label\": cancelButtonAriaLabel,\n onClick: props.onClose\n }, cancelButtonText));\n}","export var MAX_QUERY_SIZE = 64;","var _excluded = [\"_highlightResult\", \"_snippetResult\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction isLocalStorageSupported() {\n var key = '__TEST_KEY__';\n\n try {\n localStorage.setItem(key, '');\n localStorage.removeItem(key);\n return true;\n } catch (error) {\n return false;\n }\n}\n\nfunction createStorage(key) {\n if (isLocalStorageSupported() === false) {\n return {\n setItem: function setItem() {},\n getItem: function getItem() {\n return [];\n }\n };\n }\n\n return {\n setItem: function setItem(item) {\n return window.localStorage.setItem(key, JSON.stringify(item));\n },\n getItem: function getItem() {\n var item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : [];\n }\n };\n}\n\nexport function createStoredSearches(_ref) {\n var key = _ref.key,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 5 : _ref$limit;\n var storage = createStorage(key);\n var items = storage.getItem().slice(0, limit);\n return {\n add: function add(item) {\n var _ref2 = item,\n _highlightResult = _ref2._highlightResult,\n _snippetResult = _ref2._snippetResult,\n hit = _objectWithoutProperties(_ref2, _excluded);\n\n var isQueryAlreadySaved = items.findIndex(function (x) {\n return x.objectID === hit.objectID;\n });\n\n if (isQueryAlreadySaved > -1) {\n items.splice(isQueryAlreadySaved, 1);\n }\n\n items.unshift(hit);\n items = items.slice(0, limit);\n storage.setItem(items);\n },\n remove: function remove(item) {\n items = items.filter(function (x) {\n return x.objectID !== item.objectID;\n });\n storage.setItem(items);\n },\n getAll: function getAll() {\n return items;\n }\n };\n}","function createBrowserLocalStorageCache(options) {\r\n const namespaceKey = `algoliasearch-client-js-${options.key}`;\r\n // eslint-disable-next-line functional/no-let\r\n let storage;\r\n const getStorage = () => {\r\n if (storage === undefined) {\r\n storage = options.localStorage || window.localStorage;\r\n }\r\n return storage;\r\n };\r\n const getNamespace = () => {\r\n return JSON.parse(getStorage().getItem(namespaceKey) || '{}');\r\n };\r\n const setNamespace = (namespace) => {\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n };\r\n const removeOutdatedCacheItems = () => {\r\n const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;\r\n const namespace = getNamespace();\r\n const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {\r\n return cacheItem.timestamp !== undefined;\r\n }));\r\n setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);\r\n if (!timeToLive)\r\n return;\r\n const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {\r\n const currentTimestamp = new Date().getTime();\r\n const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;\r\n return !isExpired;\r\n }));\r\n setNamespace(filteredNamespaceWithoutExpiredItems);\r\n };\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return Promise.resolve()\r\n .then(() => {\r\n removeOutdatedCacheItems();\r\n const keyAsString = JSON.stringify(key);\r\n return getNamespace()[keyAsString];\r\n })\r\n .then(value => {\r\n return Promise.all([value ? value.value : defaultValue(), value !== undefined]);\r\n })\r\n .then(([value, exists]) => {\r\n return Promise.all([value, exists || events.miss(value)]);\r\n })\r\n .then(([value]) => value);\r\n },\r\n set(key, value) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n namespace[JSON.stringify(key)] = {\r\n timestamp: new Date().getTime(),\r\n value,\r\n };\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n return value;\r\n });\r\n },\r\n delete(key) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n delete namespace[JSON.stringify(key)];\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n });\r\n },\r\n clear() {\r\n return Promise.resolve().then(() => {\r\n getStorage().removeItem(namespaceKey);\r\n });\r\n },\r\n };\r\n}\n\n// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.19.1';\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nconst MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',\r\n transporterStackTrace,\r\n };\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\n/* eslint no-console: 0 */\r\nfunction createConsoleLogger(logLevel) {\r\n return {\r\n debug(message, args) {\r\n if (LogLevelEnum.Debug >= logLevel) {\r\n console.debug(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n info(message, args) {\r\n if (LogLevelEnum.Info >= logLevel) {\r\n console.info(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n error(message, args) {\r\n console.error(message, args);\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createBrowserXhrRequester() {\r\n return {\r\n send(request) {\r\n return new Promise((resolve) => {\r\n const baseRequester = new XMLHttpRequest();\r\n baseRequester.open(request.method, request.url, true);\r\n Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key]));\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n baseRequester.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onreadystatechange = () => {\r\n if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onerror = () => {\r\n // istanbul ignore next\r\n if (baseRequester.status === 0) {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText || 'Network request failed',\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onload = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText,\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n };\r\n baseRequester.send(request.data);\r\n });\r\n },\r\n };\r\n}\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 1,\r\n read: 2,\r\n write: 30,\r\n },\r\n requester: createBrowserXhrRequester(),\r\n logger: createConsoleLogger(LogLevelEnum.Error),\r\n responsesCache: createInMemoryCache(),\r\n requestsCache: createInMemoryCache({ serializable: false }),\r\n hostsCache: createFallbackableCache({\r\n caches: [\r\n createBrowserLocalStorageCache({ key: `${version}-${appId}` }),\r\n createInMemoryCache(),\r\n ],\r\n }),\r\n userAgent: createUserAgent(version).add({\r\n segment: 'Browser',\r\n version: 'lite',\r\n }),\r\n authMode: AuthMode.WithinQueryParameters,\r\n };\r\n return createSearchClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n search: multipleQueries,\r\n searchForFacetValues: multipleSearchForFacetValues,\r\n multipleQueries,\r\n multipleSearchForFacetValues,\r\n customRequest,\r\n initIndex: base => (indexName) => {\r\n return initIndex(base)(indexName, {\r\n methods: { search, searchForFacetValues, findAnswers },\r\n });\r\n },\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = version;\n\nexport default algoliasearch;\n","var _excluded = [\"footer\", \"searchBox\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { createAutocomplete } from '@algolia/autocomplete-core';\nimport React from 'react';\nimport { MAX_QUERY_SIZE } from './constants';\nimport { Footer } from './Footer';\nimport { Hit } from './Hit';\nimport { ScreenState } from './ScreenState';\nimport { SearchBox } from './SearchBox';\nimport { createStoredSearches } from './stored-searches';\nimport { useSearchClient } from './useSearchClient';\nimport { useTouchEvents } from './useTouchEvents';\nimport { useTrapFocus } from './useTrapFocus';\nimport { groupBy, identity, noop, removeHighlightTags, isModifierEvent } from './utils';\nexport function DocSearchModal(_ref) {\n var appId = _ref.appId,\n apiKey = _ref.apiKey,\n indexName = _ref.indexName,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search docs' : _ref$placeholder,\n searchParameters = _ref.searchParameters,\n maxResultsPerGroup = _ref.maxResultsPerGroup,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? noop : _ref$onClose,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? identity : _ref$transformItems,\n _ref$hitComponent = _ref.hitComponent,\n hitComponent = _ref$hitComponent === void 0 ? Hit : _ref$hitComponent,\n _ref$resultsFooterCom = _ref.resultsFooterComponent,\n resultsFooterComponent = _ref$resultsFooterCom === void 0 ? function () {\n return null;\n } : _ref$resultsFooterCom,\n navigator = _ref.navigator,\n _ref$initialScrollY = _ref.initialScrollY,\n initialScrollY = _ref$initialScrollY === void 0 ? 0 : _ref$initialScrollY,\n _ref$transformSearchC = _ref.transformSearchClient,\n transformSearchClient = _ref$transformSearchC === void 0 ? identity : _ref$transformSearchC,\n _ref$disableUserPerso = _ref.disableUserPersonalization,\n disableUserPersonalization = _ref$disableUserPerso === void 0 ? false : _ref$disableUserPerso,\n _ref$initialQuery = _ref.initialQuery,\n initialQueryFromProp = _ref$initialQuery === void 0 ? '' : _ref$initialQuery,\n _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n getMissingResultsUrl = _ref.getMissingResultsUrl,\n _ref$insights = _ref.insights,\n insights = _ref$insights === void 0 ? false : _ref$insights;\n\n var footerTranslations = translations.footer,\n searchBoxTranslations = translations.searchBox,\n screenStateTranslations = _objectWithoutProperties(translations, _excluded);\n\n var _React$useState = React.useState({\n query: '',\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n activeItemId: null,\n status: 'idle'\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n state = _React$useState2[0],\n setState = _React$useState2[1];\n\n var containerRef = React.useRef(null);\n var modalRef = React.useRef(null);\n var formElementRef = React.useRef(null);\n var dropdownRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var snippetLength = React.useRef(10);\n var initialQueryFromSelection = React.useRef(typeof window !== 'undefined' ? window.getSelection().toString().slice(0, MAX_QUERY_SIZE) : '').current;\n var initialQuery = React.useRef(initialQueryFromProp || initialQueryFromSelection).current;\n var searchClient = useSearchClient(appId, apiKey, transformSearchClient);\n var favoriteSearches = React.useRef(createStoredSearches({\n key: \"__DOCSEARCH_FAVORITE_SEARCHES__\".concat(indexName),\n limit: 10\n })).current;\n var recentSearches = React.useRef(createStoredSearches({\n key: \"__DOCSEARCH_RECENT_SEARCHES__\".concat(indexName),\n // We display 7 recent searches and there's no favorites, but only\n // 4 when there are favorites.\n limit: favoriteSearches.getAll().length === 0 ? 7 : 4\n })).current;\n var saveRecentSearch = React.useCallback(function saveRecentSearch(item) {\n if (disableUserPersonalization) {\n return;\n } // We don't store `content` record, but their parent if available.\n\n\n var search = item.type === 'content' ? item.__docsearch_parent : item; // We save the recent search only if it's not favorited.\n\n if (search && favoriteSearches.getAll().findIndex(function (x) {\n return x.objectID === search.objectID;\n }) === -1) {\n recentSearches.add(search);\n }\n }, [favoriteSearches, recentSearches, disableUserPersonalization]);\n var sendItemClickEvent = React.useCallback(function (item) {\n if (!state.context.algoliaInsightsPlugin || !item.__autocomplete_id) return;\n var insightsItem = item;\n var insightsClickParams = {\n eventName: 'Item Selected',\n index: insightsItem.__autocomplete_indexName,\n items: [insightsItem],\n positions: [item.__autocomplete_id],\n queryID: insightsItem.__autocomplete_queryID\n };\n state.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(insightsClickParams);\n }, [state.context.algoliaInsightsPlugin]);\n var autocomplete = React.useMemo(function () {\n return createAutocomplete({\n id: 'docsearch',\n defaultActiveItemId: 0,\n placeholder: placeholder,\n openOnFocus: true,\n initialState: {\n query: initialQuery,\n context: {\n searchSuggestions: []\n }\n },\n insights: insights,\n navigator: navigator,\n onStateChange: function onStateChange(props) {\n setState(props.state);\n },\n getSources: function getSources(_ref2) {\n var query = _ref2.query,\n sourcesState = _ref2.state,\n setContext = _ref2.setContext,\n setStatus = _ref2.setStatus;\n\n if (!query) {\n if (disableUserPersonalization) {\n return [];\n }\n\n return [{\n sourceId: 'recentSearches',\n onSelect: function onSelect(_ref3) {\n var item = _ref3.item,\n event = _ref3.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref4) {\n var item = _ref4.item;\n return item.url;\n },\n getItems: function getItems() {\n return recentSearches.getAll();\n }\n }, {\n sourceId: 'favoriteSearches',\n onSelect: function onSelect(_ref5) {\n var item = _ref5.item,\n event = _ref5.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref6) {\n var item = _ref6.item;\n return item.url;\n },\n getItems: function getItems() {\n return favoriteSearches.getAll();\n }\n }];\n }\n\n var insightsActive = Boolean(insights);\n return searchClient.search([{\n query: query,\n indexName: indexName,\n params: _objectSpread({\n attributesToRetrieve: ['hierarchy.lvl0', 'hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3', 'hierarchy.lvl4', 'hierarchy.lvl5', 'hierarchy.lvl6', 'content', 'type', 'url'],\n attributesToSnippet: [\"hierarchy.lvl1:\".concat(snippetLength.current), \"hierarchy.lvl2:\".concat(snippetLength.current), \"hierarchy.lvl3:\".concat(snippetLength.current), \"hierarchy.lvl4:\".concat(snippetLength.current), \"hierarchy.lvl5:\".concat(snippetLength.current), \"hierarchy.lvl6:\".concat(snippetLength.current), \"content:\".concat(snippetLength.current)],\n snippetEllipsisText: '…',\n highlightPreTag: '',\n highlightPostTag: '',\n hitsPerPage: 20,\n clickAnalytics: insightsActive\n }, searchParameters)\n }]).catch(function (error) {\n // The Algolia `RetryError` happens when all the servers have\n // failed, meaning that there's no chance the response comes\n // back. This is the right time to display an error.\n // See https://github.com/algolia/algoliasearch-client-javascript/blob/2ffddf59bc765cd1b664ee0346b28f00229d6e12/packages/transporter/src/errors/createRetryError.ts#L5\n if (error.name === 'RetryError') {\n setStatus('error');\n }\n\n throw error;\n }).then(function (_ref7) {\n var results = _ref7.results;\n var firstResult = results[0];\n var hits = firstResult.hits,\n nbHits = firstResult.nbHits;\n var sources = groupBy(hits, function (hit) {\n return removeHighlightTags(hit);\n }, maxResultsPerGroup); // We store the `lvl0`s to display them as search suggestions\n // in the \"no results\" screen.\n\n if (sourcesState.context.searchSuggestions.length < Object.keys(sources).length) {\n setContext({\n searchSuggestions: Object.keys(sources)\n });\n }\n\n setContext({\n nbHits: nbHits\n });\n var insightsParams = {};\n\n if (insightsActive) {\n insightsParams = {\n __autocomplete_indexName: indexName,\n __autocomplete_queryID: firstResult.queryID,\n __autocomplete_algoliaCredentials: {\n appId: appId,\n apiKey: apiKey\n }\n };\n }\n\n return Object.values(sources).map(function (items, index) {\n return {\n sourceId: \"hits\".concat(index),\n onSelect: function onSelect(_ref8) {\n var item = _ref8.item,\n event = _ref8.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref9) {\n var item = _ref9.item;\n return item.url;\n },\n getItems: function getItems() {\n return Object.values(groupBy(items, function (item) {\n return item.hierarchy.lvl1;\n }, maxResultsPerGroup)).map(transformItems).map(function (groupedHits) {\n return groupedHits.map(function (item) {\n var parent = null;\n var potentialParent = groupedHits.find(function (siblingItem) {\n return siblingItem.type === 'lvl1' && siblingItem.hierarchy.lvl1 === item.hierarchy.lvl1;\n });\n\n if (item.type !== 'lvl1' && potentialParent) {\n parent = potentialParent;\n }\n\n return _objectSpread(_objectSpread({}, item), {}, {\n __docsearch_parent: parent\n }, insightsParams);\n });\n }).flat();\n }\n };\n });\n });\n }\n });\n }, [indexName, searchParameters, maxResultsPerGroup, searchClient, onClose, recentSearches, favoriteSearches, saveRecentSearch, initialQuery, placeholder, navigator, transformItems, disableUserPersonalization, insights, appId, apiKey]);\n var getEnvironmentProps = autocomplete.getEnvironmentProps,\n getRootProps = autocomplete.getRootProps,\n refresh = autocomplete.refresh;\n useTouchEvents({\n getEnvironmentProps: getEnvironmentProps,\n panelElement: dropdownRef.current,\n formElement: formElementRef.current,\n inputElement: inputRef.current\n });\n useTrapFocus({\n container: containerRef.current\n });\n React.useEffect(function () {\n document.body.classList.add('DocSearch--active');\n return function () {\n var _window$scrollTo, _window;\n\n document.body.classList.remove('DocSearch--active'); // IE11 doesn't support `scrollTo` so we check that the method exists\n // first.\n\n (_window$scrollTo = (_window = window).scrollTo) === null || _window$scrollTo === void 0 ? void 0 : _window$scrollTo.call(_window, 0, initialScrollY);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(function () {\n var isMobileMediaQuery = window.matchMedia('(max-width: 768px)');\n\n if (isMobileMediaQuery.matches) {\n snippetLength.current = 5;\n }\n }, []);\n React.useEffect(function () {\n if (dropdownRef.current) {\n dropdownRef.current.scrollTop = 0;\n }\n }, [state.query]); // We don't focus the input when there's an initial query (i.e. Selection\n // Search) because users rather want to see the results directly, without the\n // keyboard appearing.\n // We therefore need to refresh the autocomplete instance to load all the\n // results, which is usually triggered on focus.\n\n React.useEffect(function () {\n if (initialQuery.length > 0) {\n refresh();\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n }, [initialQuery, refresh]); // We rely on a CSS property to set the modal height to the full viewport height\n // because all mobile browsers don't compute their height the same way.\n // See https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n\n React.useEffect(function () {\n function setFullViewportHeight() {\n if (modalRef.current) {\n var vh = window.innerHeight * 0.01;\n modalRef.current.style.setProperty('--docsearch-vh', \"\".concat(vh, \"px\"));\n }\n }\n\n setFullViewportHeight();\n window.addEventListener('resize', setFullViewportHeight);\n return function () {\n window.removeEventListener('resize', setFullViewportHeight);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef\n }, getRootProps({\n 'aria-expanded': true\n }), {\n className: ['DocSearch', 'DocSearch-Container', state.status === 'stalled' && 'DocSearch-Container--Stalled', state.status === 'error' && 'DocSearch-Container--Errored'].filter(Boolean).join(' '),\n role: \"button\",\n tabIndex: 0,\n onMouseDown: function onMouseDown(event) {\n if (event.target === event.currentTarget) {\n onClose();\n }\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Modal\",\n ref: modalRef\n }, /*#__PURE__*/React.createElement(\"header\", {\n className: \"DocSearch-SearchBar\",\n ref: formElementRef\n }, /*#__PURE__*/React.createElement(SearchBox, _extends({}, autocomplete, {\n state: state,\n autoFocus: initialQuery.length === 0,\n inputRef: inputRef,\n isFromSelection: Boolean(initialQuery) && initialQuery === initialQueryFromSelection,\n translations: searchBoxTranslations,\n onClose: onClose\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown\",\n ref: dropdownRef\n }, /*#__PURE__*/React.createElement(ScreenState, _extends({}, autocomplete, {\n indexName: indexName,\n state: state,\n hitComponent: hitComponent,\n resultsFooterComponent: resultsFooterComponent,\n disableUserPersonalization: disableUserPersonalization,\n recentSearches: recentSearches,\n favoriteSearches: favoriteSearches,\n inputRef: inputRef,\n translations: screenStateTranslations,\n getMissingResultsUrl: getMissingResultsUrl,\n onItemClick: function onItemClick(item, event) {\n // If insights is active, send insights click event\n sendItemClickEvent(item);\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n }\n }))), /*#__PURE__*/React.createElement(\"footer\", {\n className: \"DocSearch-Footer\"\n }, /*#__PURE__*/React.createElement(Footer, {\n translations: footerTranslations\n }))));\n}","import algoliasearch from 'algoliasearch/dist/algoliasearch-lite.esm.browser';\nimport React from 'react';\nimport { version } from './version';\nexport function useSearchClient(appId, apiKey, transformSearchClient) {\n var searchClient = React.useMemo(function () {\n var client = algoliasearch(appId, apiKey);\n client.addAlgoliaAgent('docsearch', version); // Since DocSearch.js relies on DocSearch React with an alias to Preact,\n // we cannot add the `docsearch-react` user agent by default, otherwise\n // it would also be sent on a DocSearch.js integration.\n // We therefore only add the `docsearch-react` user agent if `docsearch.js`\n // is not present.\n\n if (/docsearch.js \\(.*\\)/.test(client.transporter.userAgent.value) === false) {\n client.addAlgoliaAgent('docsearch-react', version);\n }\n\n return transformSearchClient(client);\n }, [appId, apiKey, transformSearchClient]);\n return searchClient;\n}","export var version = '3.5.2';","import React from 'react';\nexport function useTouchEvents(_ref) {\n var getEnvironmentProps = _ref.getEnvironmentProps,\n panelElement = _ref.panelElement,\n formElement = _ref.formElement,\n inputElement = _ref.inputElement;\n React.useEffect(function () {\n if (!(panelElement && formElement && inputElement)) {\n return undefined;\n }\n\n var _getEnvironmentProps = getEnvironmentProps({\n panelElement: panelElement,\n formElement: formElement,\n inputElement: inputElement\n }),\n onTouchStart = _getEnvironmentProps.onTouchStart,\n onTouchMove = _getEnvironmentProps.onTouchMove;\n\n window.addEventListener('touchstart', onTouchStart);\n window.addEventListener('touchmove', onTouchMove);\n return function () {\n window.removeEventListener('touchstart', onTouchStart);\n window.removeEventListener('touchmove', onTouchMove);\n };\n }, [getEnvironmentProps, panelElement, formElement, inputElement]);\n}","import React from 'react';\nexport function useTrapFocus(_ref) {\n var container = _ref.container;\n React.useEffect(function () {\n if (!container) {\n return undefined;\n }\n\n var focusableElements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), input:not([disabled])');\n var firstElement = focusableElements[0];\n var lastElement = focusableElements[focusableElements.length - 1];\n\n function trapFocus(event) {\n if (event.key !== 'Tab') {\n return;\n }\n\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n\n container.addEventListener('keydown', trapFocus);\n return function () {\n container.removeEventListener('keydown', trapFocus);\n };\n }, [container]);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport React from 'react';\nimport { createPortal } from 'react-dom';\nimport { DocSearchButton } from './DocSearchButton';\nimport { DocSearchModal } from './DocSearchModal';\nimport { useDocSearchKeyboardEvents } from './useDocSearchKeyboardEvents';\nexport function DocSearch(props) {\n var _props$translations, _props$translations2;\n\n var searchButtonRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isOpen = _React$useState2[0],\n setIsOpen = _React$useState2[1];\n\n var _React$useState3 = React.useState((props === null || props === void 0 ? void 0 : props.initialQuery) || undefined),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n initialQuery = _React$useState4[0],\n setInitialQuery = _React$useState4[1];\n\n var onOpen = React.useCallback(function () {\n setIsOpen(true);\n }, [setIsOpen]);\n var onClose = React.useCallback(function () {\n setIsOpen(false);\n }, [setIsOpen]);\n var onInput = React.useCallback(function (event) {\n setIsOpen(true);\n setInitialQuery(event.key);\n }, [setIsOpen, setInitialQuery]);\n useDocSearchKeyboardEvents({\n isOpen: isOpen,\n onOpen: onOpen,\n onClose: onClose,\n onInput: onInput,\n searchButtonRef: searchButtonRef\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DocSearchButton, {\n ref: searchButtonRef,\n translations: props === null || props === void 0 || (_props$translations = props.translations) === null || _props$translations === void 0 ? void 0 : _props$translations.button,\n onClick: onOpen\n }), isOpen && createPortal( /*#__PURE__*/React.createElement(DocSearchModal, _extends({}, props, {\n initialScrollY: window.scrollY,\n initialQuery: initialQuery,\n translations: props === null || props === void 0 || (_props$translations2 = props.translations) === null || _props$translations2 === void 0 ? void 0 : _props$translations2.modal,\n onClose: onClose\n })), document.body));\n}","import React from 'react';\n\nfunction isEditingContent(event) {\n var element = event.target;\n var tagName = element.tagName;\n return element.isContentEditable || tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA';\n}\n\nexport function useDocSearchKeyboardEvents(_ref) {\n var isOpen = _ref.isOpen,\n onOpen = _ref.onOpen,\n onClose = _ref.onClose,\n onInput = _ref.onInput,\n searchButtonRef = _ref.searchButtonRef;\n React.useEffect(function () {\n function onKeyDown(event) {\n var _event$key;\n\n function open() {\n // We check that no other DocSearch modal is showing before opening\n // another one.\n if (!document.body.classList.contains('DocSearch--active')) {\n onOpen();\n }\n }\n\n if (event.keyCode === 27 && isOpen || // The `Cmd+K` shortcut both opens and closes the modal.\n // We need to check for `event.key` because it can be `undefined` with\n // Chrome's autofill feature.\n // See https://github.com/paperjs/paper.js/issues/1398\n ((_event$key = event.key) === null || _event$key === void 0 ? void 0 : _event$key.toLowerCase()) === 'k' && (event.metaKey || event.ctrlKey) || // The `/` shortcut opens but doesn't close the modal because it's\n // a character.\n !isEditingContent(event) && event.key === '/' && !isOpen) {\n event.preventDefault();\n\n if (isOpen) {\n onClose();\n } else if (!document.body.classList.contains('DocSearch--active')) {\n open();\n }\n }\n\n if (searchButtonRef && searchButtonRef.current === document.activeElement && onInput) {\n if (/[a-zA-Z0-9]/.test(String.fromCharCode(event.keyCode))) {\n onInput(event);\n }\n }\n }\n\n window.addEventListener('keydown', onKeyDown);\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen, onOpen, onClose, onInput, searchButtonRef]);\n}","import type { DocSearchProps as DocSearchComponentProps } from '@docsearch/react';\nimport { DocSearch, version } from '@docsearch/react';\nimport React, { render } from 'preact/compat';\n\nfunction getHTMLElement(\n value: HTMLElement | string,\n environment: DocSearchProps['environment'] = window\n): HTMLElement {\n if (typeof value === 'string') {\n return environment.document.querySelector(value)!;\n }\n\n return value;\n}\n\ninterface DocSearchProps extends DocSearchComponentProps {\n container: HTMLElement | string;\n environment?: typeof window;\n}\n\nexport function docsearch(props: DocSearchProps) {\n render(\n {\n searchClient.addAlgoliaAgent('docsearch.js', version);\n\n return props.transformSearchClient\n ? props.transformSearchClient(searchClient)\n : searchClient;\n }}\n />,\n getHTMLElement(props.container, props.environment)\n );\n}\n"],"names":["EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","__","__h","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","n","nextValue","action","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useMemo","factory","flushAfterPaintEffects","forEach","t","component","invokeCleanup","invokeEffect","e","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","commitQueue","some","filter","cb","hook","comp","oldArgs","newArgs","arg","f","assign","obj","props","i","shallowDiffers","a","b","initialValue","current","ref","createHandle","concat","context","provider","sub","value","formatter","useDebugValue","ControlKeyIcon","React","createElement","width","height","className","d","strokeWidth","stroke","fill","strokeLinecap","SearchIcon","viewBox","fillRule","strokeLinejoin","_excluded","_extends","Object","target","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","DocSearchButton","forwardRef","_ref","_ref$translations","translations","_translations$buttonT","buttonText","_translations$buttonA","buttonAriaLabel","_useState2","setKey","navigator","platform","Fragment","debounce","fn","time","timerId","undefined","_len","_key","_x","_r","return","_typeof","decycle","seen","Set","process","env","NODE_ENV","has","newSeen","add","map","x","fromEntries","entries","_ref2","flatten","values","reduce","autocompleteId","getItemsCount","collections","sum","collection","items","invariant","condition","message","Error","isPrimitive","isEqual","first","second","_Object$keys","noop","userAgents","segment","version","warnCache","createClickedEvent","item","__autocomplete_indexName","positions","findIndex","objectID","queryID","__autocomplete_queryID","algoliaSource","_excluded2","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","param","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","_getOptions","_ref8","onSelect","_ref9","onActive","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onActiveEvent","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","async","src","onerror","console","error","body","appendChild","cause","loadInsights","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","checkOptions","sanitizedMessage","trim","warn","debug","createInternalCancelablePromise","promise","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getActiveItem","collectionIndex","collectionsCount","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","regex","createStore","onStoreStateChange","list","getState","dispatch","prevState","pendingRequests","cancelablePromise","cancelAll","isEmpty","getDefaultProps","pluginSubscribers","_props$id","plugins","openOnFocus","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","JSON","stringify","maybeSource","sourceId","includes","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigate","location","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","every","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","_request","getItems","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","_excluded3","_excluded4","_excluded5","_excluded6","_excluded7","getPropGetters","getAutocompleteId","instanceId","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","getLabelProps","sourceIndex","htmlFor","getInputProps","_props$environment$na","onFocus","_ref2$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","_onKeyDown","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","stateReducer","_nextState","createAutocomplete","subscribers","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","insightsParams","_plugin$subscribe","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata","AlgoliaLogo","_translations$searchB","searchByText","href","hostname","rel","xmlns","y","rx","ry","CommandIcon","ariaLabel","children","Footer","_translations$selectT","selectText","_translations$selectK","selectKeyAriaLabel","_translations$navigat","navigateText","_translations$navigat2","navigateUpKeyAriaLabel","_translations$navigat3","navigateDownKeyAriaLabel","_translations$closeTe","closeText","_translations$closeKe","closeKeyAriaLabel","Hit","url","LoadingIcon","strokeOpacity","cx","cy","r","attributeName","to","dur","repeatCount","RecentIcon","ResetIcon","SelectIcon","LvlIcon","SourceIcon","ContentIcon","AnchorIcon","StarIcon","ErrorIcon","NoResultsIcon","ErrorScreen","_translations$titleTe","titleText","_translations$helpTex","helpText","NoResultsScreen","_translations$noResul","noResultsText","_translations$suggest","suggestedQueryText","_translations$reportM","reportMissingResultsText","_translations$reportM2","reportMissingResultsLinkText","searchSuggestions","search","toLowerCase","inputRef","getMissingResultsUrl","getPropertyByPath","path","prev","Snippet","attribute","_ref$tagName","tagName","dangerouslySetInnerHTML","__html","Results","title","Result","join","renderIcon","renderAction","onItemClick","hitComponent","_React$useState2","isDeleting","setIsDeleting","_React$useState4","isFavoriting","setIsFavoriting","useRef","__docsearch_parent","onTransitionEnd","hierarchy","runDeleteTransition","runFavoriteTransition","groupBy","predicate","maxResultsPerGroup","identity","isModifierEvent","button","regexHighlightTags","regexHasHighlightTags","RegExp","removeHighlightTags","_internalDocSearchHit","_hit$_highlightResult","internalDocSearchHit","lvl0","replace","ResultsScreen","_collection$items","resultsFooterComponent","StartScreen","_translations$recentS","recentSearchesTitle","_translations$noRecen","noRecentSearchesText","_translations$saveRec","saveRecentSearchButtonTitle","_translations$removeR","removeRecentSearchButtonTitle","_translations$favorit","favoriteSearchesTitle","_translations$removeF","removeFavoriteSearchButtonTitle","hasCollections","disableUserPersonalization","stopPropagation","favoriteSearches","recentSearches","remove","ScreenState","memo","errorScreen","noResultsScreen","startScreen","_prevProps","nextProps","SearchBox","_translations$resetBu","resetButtonTitle","_translations$resetBu2","resetButtonAriaLabel","_translations$cancelB","cancelButtonText","_translations$cancelB2","cancelButtonAriaLabel","isFromSelection","select","hidden","onClose","createStorage","localStorage","setItem","removeItem","isLocalStorageSupported","getItem","parse","createStoredSearches","_ref$limit","limit","storage","_snippetResult","isQueryAlreadySaved","splice","unshift","getAll","createBrowserLocalStorageCache","namespaceKey","getStorage","getNamespace","setNamespace","namespace","removeOutdatedCacheItems","timeToLive","filteredNamespaceWithoutOldFormattedCacheItems","timestamp","filteredNamespaceWithoutExpiredItems","cacheItem","currentTimestamp","Date","getTime","get","defaultValue","events","miss","keyAsString","exists","set","delete","clear","createFallbackableCache","caches","shift","createInMemoryCache","serializable","cache","shuffle","array","Math","floor","random","addMethods","base","methods","encode","format","encodeURIComponent","AuthMode","WithinQueryParameters","WithinHeaders","createMappedRequestOptions","requestOptions","data","queryParameters","cacheable","CallEnum","Read","Write","Any","HostStatusEnum","createStatefulHost","host","lastUpdate","now","createStatelessHost","protocol","accept","MethodEnum","createRetryableOptions","hostsCache","statelessHosts","statelessHost","statefulHosts","hostsUp","isStatefulHostUp","hostsTimeouted","isStatefulHostTimeouted","hostsAvailable","getTimeout","timeoutsCount","baseTimeout","retryableRequest","transporter","stackTrace","serializeData","serializedHeaders","header","serializeHeaders","dataQueryParameters","retry","hosts","pop","transporterStackTrace","stackTraceWithoutCredentials","serializeUrl","connectTimeout","timeouts","connect","responseTimeout","pushToStackTrace","stackFrame","triesLeft","decisions","onSuccess","createDeserializationError","deserializeSuccess","onRetry","isTimedOut","logger","info","stackFrameWithoutCredentials","onFail","createApiError","deserializeFailure","requester","send","outcomes","isNetworkError","isRetryable","retryDecision","reverse","createUserAgent","addedUserAgent","queryParametersAsString","serializeQueryParameters","charAt","substr","parameters","modifiedHeaders","createSearchClient","auth","authMode","credentials","createAuth","requestsCache","responsesCache","read","mappedRequestOptions","createRetryableRequest","reject","write","createTransporter","addAlgoliaAgent","clearCache","customRequest","initIndex","searchIndex","multipleQueries","multipleSearchForFacetValues","facetName","facetQuery","searchForFacetValues","findAnswers","queryLanguages","LogLevelEnum","algoliasearch","logLevel","commonOptions","baseRequester","XMLHttpRequest","setRequestHeader","createTimeout","abort","onreadystatechange","readyState","OPENED","responseText","onload","DocSearchModal","_ref$placeholder","searchParameters","_ref$onClose","_ref$transformItems","transformItems","_ref$hitComponent","_ref$resultsFooterCom","_ref$initialScrollY","initialScrollY","_ref$transformSearchC","transformSearchClient","_ref$disableUserPerso","_ref$initialQuery","initialQuery","initialQueryFromProp","_ref$insights","footerTranslations","footer","searchBoxTranslations","searchBox","screenStateTranslations","containerRef","modalRef","formElementRef","dropdownRef","snippetLength","initialQueryFromSelection","getSelection","client","useSearchClient","saveRecentSearch","useCallback","sendItemClickEvent","insightsItem","insightsClickParams","autocomplete","sourcesState","insightsActive","attributesToRetrieve","attributesToSnippet","snippetEllipsisText","highlightPreTag","highlightPostTag","hitsPerPage","firstResult","nbHits","lvl1","groupedHits","potentialParent","siblingItem","flat","_getEnvironmentProps","addEventListener","removeEventListener","useTouchEvents","focusableElements","querySelectorAll","firstElement","lastElement","trapFocus","useTrapFocus","classList","_window$scrollTo","_window","scrollTo","matchMedia","scrollTop","setFullViewportHeight","vh","innerHeight","style","setProperty","tabIndex","DocSearch","_props$translations","_props$translations2","searchButtonRef","setInitialQuery","onOpen","_event$key","keyCode","element","isContentEditable","isEditingContent","fromCharCode","useDocSearchKeyboardEvents","createPortal","scrollY","modal","docsearch","render","getHTMLElement"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../../../../node_modules/preact/dist/preact.module.js","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../../../node_modules/preact/compat/dist/compat.module.js","../../../docsearch-react/dist/esm/index.js","../../src/docsearch.tsx"],"sourcesContent":["var n,l,u,t,i,o,r,f,e,c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function b(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));M.__r=0}function P(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,w,_=t&&t.__k||v,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=n,i.__b=n.__b+1,o=null,-1!==(f=i.__i=L(i,u,r,s))&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:(f>r?a--:a++,i.__u|=65536))):i=n.__k[t]=null;if(s)for(t=0;t(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.forEach(function(n){n.__e=!0,S(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),S(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),S(this))},k.prototype.render=b,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},M.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{k as Component,b as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function d(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function h(n){return o=1,p(D,n)}function p(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=d(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function _(n,u){var i=d(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function T(n,r){var u=d(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,p as useReducer,A as useRef,h as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as c,createRef as f,cloneElement as l}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useCallback as a,useContext as s,useDebugValue as h,useEffect as v,useId as d,useImperativeHandle as p,useLayoutEffect as m,useMemo as y,useReducer as _,useRef as b,useState as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){this.props=n,this.context=t}function C(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:g(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(E.prototype=new n).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return g(this.props,n)||g(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function w(n){function t(t){if(!(\"ref\"in t))return n(t,null);var e=t.ref;delete t.ref;var r=n(t,e);return t.ref=e,r}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var k=function(n,t){return null==n?null:r(r(n).map(t))},I={map:k,forEach:k,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},N=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);N(n,t,e,r)};var M=e.unmount;function T(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=function(n,t){for(var e in t)n[e]=t[e];return n}({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return T(n,t,e)})),n}function A(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return A(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function L(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function O(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function F(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),M&&M(n)},(D.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=L(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=A(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=T(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var U=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),o(t(V,{context:e.context},n.__v),e.l)}function P(n,e){var r=t(W,{__v:n,i:e});return r.containerInfo=e,r}(F.prototype=new n).__a=function(n){var t=this,e=L(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),U(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){U(n,e,t)})};var j=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,z=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,B=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,H=/[A-Z0-9]/g,Z=\"undefined\"!=typeof document,Y=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function $(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=e.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}e.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={enumerable:!1,configurable:!0,get:function(){return this.class}},tn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var c=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==c||Z&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var f=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===c?c=\"\":\"translate\"===f&&\"no\"===c?c=!1:\"o\"===f[0]&&\"n\"===f[1]?\"ondoubleclick\"===f?i=\"ondblclick\":\"onchange\"!==f||\"input\"!==e&&\"textarea\"!==e||Y(t.type)?\"onfocus\"===f?i=\"onfocusin\":\"onblur\"===f?i=\"onfocusout\":B.test(i)&&(i=f):f=i=\"oninput\":o&&z.test(i)?i=i.replace(H,\"-$&\").toLowerCase():null===c&&(c=void 0),\"oninput\"===f&&u[i=f]&&(i=\"oninputCapture\"),u[i]=c}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",nn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=j,tn&&tn(n)};var en=e.__r;e.__r=function(n){en&&en(n),X=n.__c};var rn=e.diffed;e.diffed=function(n){rn&&rn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),X=null};var un={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value},useCallback:a,useContext:s,useDebugValue:h,useDeferredValue:_n,useEffect:v,useId:d,useImperativeHandle:p,useInsertionEffect:Sn,useLayoutEffect:m,useMemo:y,useReducer:_,useRef:b,useState:S,useSyncExternalStore:En,useTransition:bn}}},on=\"18.3.1\";function cn(n){return t.bind(null,n)}function fn(n){return!!n&&n.$$typeof===j}function ln(n){return fn(n)&&n.type===u}function an(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function sn(n){return fn(n)?l.apply(null,arguments):n}function hn(n){return!!n.__k&&(o(null,n),!0)}function vn(n){return n&&(n.base||1===n.nodeType&&n)||null}var dn=function(n,t){return n(t)},pn=function(n,t){return n(t)},mn=u;function yn(n){n()}function _n(n){return n}function bn(){return[!1,yn]}var Sn=m,gn=fn;function En(n,t){var e=t(),r=S({h:{__:e,v:t}}),u=r[0].h,o=r[1];return m(function(){u.__=e,u.v=t,Cn(u)&&o({h:u})},[n,e,t]),v(function(){return Cn(u)&&o({h:u}),n(function(){Cn(u)&&o({h:u})})},[n]),e}function Cn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var xn={useState:S,useId:d,useReducer:_,useEffect:v,useLayoutEffect:m,useInsertionEffect:Sn,useTransition:bn,useDeferredValue:_n,useSyncExternalStore:En,startTransition:yn,useRef:b,useImperativeHandle:p,useMemo:y,useCallback:a,useContext:s,useDebugValue:h,version:\"18.3.1\",Children:I,render:$,hydrate:q,unmountComponentAtNode:hn,createPortal:P,createElement:t,createContext:c,createFactory:cn,cloneElement:sn,createRef:f,Fragment:u,isValidElement:fn,isElement:gn,isFragment:ln,isMemo:an,findDOMNode:vn,Component:n,PureComponent:E,memo:C,forwardRef:w,flushSync:pn,unstable_batchedUpdates:dn,StrictMode:mn,Suspense:D,SuspenseList:F,lazy:O,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:un};export{I as Children,E as PureComponent,mn as StrictMode,D as Suspense,F as SuspenseList,un as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sn as cloneElement,cn as createFactory,P as createPortal,xn as default,vn as findDOMNode,pn as flushSync,w as forwardRef,q as hydrate,gn as isElement,ln as isFragment,an as isMemo,fn as isValidElement,O as lazy,C as memo,$ as render,yn as startTransition,hn as unmountComponentAtNode,dn as unstable_batchedUpdates,_n as useDeferredValue,Sn as useInsertionEffect,En as useSyncExternalStore,bn as useTransition,on as version};\n//# sourceMappingURL=compat.module.js.map\n","import e,{useState as t,useEffect as r,createElement as n}from\"react\";import{createPortal as o}from\"react-dom\";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],c=a.completion;if(\"root\"===a.tryLoc)return o(\"end\");if(a.tryLoc<=this.prev){var u=n.call(a,\"catchLoc\"),l=n.call(a,\"finallyLoc\");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;_(r)}return o}}throw Error(\"illegal catch attempt\")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=e),h}},t}function S(e,t){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},S(e,t)}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,t)||E(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function w(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,t){if(e){if(\"string\"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}function j(e){var t=\"function\"==typeof Map?new Map:void 0;return j=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf(\"[native code]\")}catch(t){return\"function\"==typeof e}}(e))return e;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(d())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&S(o,r.prototype),o}(e,arguments,p(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),S(r,e)},j(e)}function P(){return e.createElement(\"svg\",{width:\"15\",height:\"15\",className:\"DocSearch-Control-Key-Icon\"},e.createElement(\"path\",{d:\"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953\",strokeWidth:\"1.2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"square\"}))}function I(){return e.createElement(\"svg\",{width:\"20\",height:\"20\",className:\"DocSearch-Search-Icon\",viewBox:\"0 0 20 20\",\"aria-hidden\":\"true\"},e.createElement(\"path\",{d:\"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z\",stroke:\"currentColor\",fill:\"none\",fillRule:\"evenodd\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))}var D=[\"translations\"],k=\"Ctrl\";var A=e.forwardRef((function(n,o){var i=n.translations,a=void 0===i?{}:i,c=g(n,D),u=a.buttonText,l=void 0===u?\"Search\":u,s=a.buttonAriaLabel,f=void 0===s?\"Search\":s,p=O(t(null),2),v=p[0],d=p[1];r((function(){\"undefined\"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?d(\"⌘\"):d(k))}),[]);var h=O(v===k?[k,\"Ctrl\",e.createElement(P,null)]:[\"Meta\",\"Command\",v],3),y=h[0],b=h[1],S=h[2];return e.createElement(\"button\",m({type:\"button\",className:\"DocSearch DocSearch-Button\",\"aria-label\":\"\".concat(f,\" (\").concat(b,\"+K)\")},c,{ref:o}),e.createElement(\"span\",{className:\"DocSearch-Button-Container\"},e.createElement(I,null),e.createElement(\"span\",{className:\"DocSearch-Button-Placeholder\"},l)),e.createElement(\"span\",{className:\"DocSearch-Button-Keys\"},null!==v&&e.createElement(e.Fragment,null,e.createElement(_,{reactsToKey:y},S),e.createElement(_,{reactsToKey:\"k\"},\"K\"))))}));function _(n){var o=n.reactsToKey,i=n.children,a=O(t(!1),2),c=a[0],u=a[1];return r((function(){if(o)return window.addEventListener(\"keydown\",e),window.addEventListener(\"keyup\",t),function(){window.removeEventListener(\"keydown\",e),window.removeEventListener(\"keyup\",t)};function e(e){e.key===o&&u(!0)}function t(e){e.key!==o&&\"Meta\"!==e.key||u(!1)}}),[o]),e.createElement(\"kbd\",{className:c?\"DocSearch-Button-Key DocSearch-Button-Key--pressed\":\"DocSearch-Button-Key\"},i)}function x(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Z(e){for(var t=1;t=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={\"X-Algolia-Application-Id\":i.appId,\"X-Algolia-API-Key\":i.apiKey};e.apply(void 0,[t].concat(z(r),[{headers:a}]))}else e.apply(void 0,[t].concat(z(r)))}return{init:function(t,r){e(\"init\",{appId:t,apiKey:r})},setAuthenticatedUserToken:function(t){e(\"setAuthenticatedUserToken\",t)},setUserToken:function(t){e(\"setUserToken\",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"clickedObjectIDsAfterSearch\",Y(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"clickedObjectIDs\",Y(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,[\"clickedFilters\"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"convertedObjectIDsAfterSearch\",Y(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"convertedObjectIDs\",Y(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,[\"convertedFilters\"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=Q(t,K);return[].concat(z(e),z(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n0&&e.apply(void 0,[\"viewedFilters\"].concat(r))}}}function X(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:[\"autocomplete\"]}}))}function ee(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function te(e){return te=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},te(e)}function re(e){return function(e){if(Array.isArray(e))return ne(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return ne(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===r&&e.constructor&&(r=e.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(e);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ne(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&le({onItemsChange:o,items:r,insights:l,state:t}))}}),0);return{name:\"aa.algoliaInsightsPlugin\",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive,o=!1;function s(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:ie(ie({},c?{clickAnalytics:!0}:{}),e?{userToken:me(e)}:{}),insights:l}})}u(\"addAlgoliaAgent\",\"insights-plugin\"),s(),u(\"onUserTokenChange\",(function(e){o||s(e)})),u(\"getUserToken\",null,(function(e,t){o||s(t)})),u(\"onAuthenticatedUserTokenChange\",(function(e){e?(o=!0,s(e)):(o=!1,u(\"getUserToken\",null,(function(e,t){return s(t)})))})),u(\"getAuthenticatedUserToken\",null,(function(e,t){t&&(o=!0,s(t))})),r((function(e){var t=e.item,r=e.state,n=e.event,o=e.source;ee(t)&&i({state:r,event:n,insights:l,item:t,insightsEvents:[ie({eventName:\"Item Selected\"},H({item:t,items:o.getItems().filter(ee)}))]})})),n((function(e){var t=e.item,r=e.source,n=e.state,o=e.event;ee(t)&&a({state:n,event:o,insights:l,item:t,insightsEvents:[ie({eventName:\"Item Active\"},H({item:t,items:r.getItems().filter(ee)}))]})}))},onStateChange:function(e){var t=e.state;f({state:t})},__autocomplete_pluginOptions:e}}function fe(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(re(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),[\"autocomplete-internal\"],re(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?[\"autocomplete-automatic\"]:[]))}function me(e){return\"number\"==typeof e?e.toString():e}function pe(e,t){var r=t;return{then:function(t,n){return pe(e.then(de(t,r,e),de(n,r,e)),r)},catch:function(t){return pe(e.catch(de(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),pe(e.finally(de(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ve(e){return pe(e,{isCanceled:!1,onCancelList:[]})}function de(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function he(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function ye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ge(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:\"autocomplete-\".concat(N++),plugins:o,initialState:qe({activeItemId:null,query:\"\",completion:null,collections:[],isOpen:!1,status:\"idle\",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Te(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(e.sourceId),\" is not unique.\"));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:q,onResolve:q};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=ge(ge({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return C(e)})).then((function(e){return e.map((function(e){return qe(qe({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:qe({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,\"_blank\",\"noopener\");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,\"_blank\",\"noopener\")}},e.navigator)})}function Be(e){return Be=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Be(e)}function Fe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ue(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var at,ct,ut,lt=null,st=(at=-1,ct=-1,ut=void 0,function(e){var t=++at;return Promise.resolve(e).then((function(e){return ut&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function gt(e){return gt=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},gt(e)}var bt=[\"props\",\"refresh\",\"store\"],St=[\"inputElement\",\"formElement\",\"panelElement\"],Ot=[\"inputElement\"],wt=[\"inputElement\",\"maxLength\"],Et=[\"source\"],jt=[\"item\",\"source\"];function Pt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function It(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function At(e){var t=e.props,r=e.refresh,n=e.store,o=kt(e,bt);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch(\"blur\",null),t.debug||n.pendingRequests.cancelAll())}return It({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},kt(e,St))},getRootProps:function(e){return It({role:\"combobox\",\"aria-expanded\":n.getState().isOpen,\"aria-haspopup\":\"listbox\",\"aria-controls\":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return we(t.id,\"list\",r)})).join(\" \"):void 0,\"aria-labelledby\":we(t.id,\"label\")},e)},getFormProps:function(e){return e.inputElement,It({action:\"\",noValidate:!0,role:\"search\",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(It({event:i,refresh:r,state:n.getState()},o)),n.dispatch(\"submit\",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(It({event:i,refresh:r,state:n.getState()},o)),n.dispatch(\"reset\",null),null===(a=e.inputElement)||void 0===a||a.focus()}},kt(e,Ot))},getLabelProps:function(e){return It({htmlFor:we(t.id,\"input\"),id:we(t.id,\"label\")},e)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(n.getState().query))&&ft(It({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch(\"focus\",null)}var c=e||{};c.inputElement;var u=c.maxLength,l=void 0===u?512:u,s=kt(c,wt),f=Oe(n.getState()),m=function(e){return Boolean(e&&e.match(Ee))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||\"\"),p=t.enterKeyHint||(null!=f&&f.itemUrl&&!m?\"go\":\"search\");return It({\"aria-autocomplete\":\"both\",\"aria-activedescendant\":n.getState().isOpen&&null!==n.getState().activeItemId?we(t.id,\"item-\".concat(n.getState().activeItemId),null==f?void 0:f.source):void 0,\"aria-controls\":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return we(t.id,\"list\",r)})).join(\" \"):void 0,\"aria-labelledby\":we(t.id,\"label\"),value:n.getState().completion||n.getState().query,id:we(t.id,\"input\"),autoComplete:\"off\",autoCorrect:\"off\",autoCapitalize:\"off\",enterKeyHint:p,spellCheck:\"false\",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:\"search\",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&je(e).isComposing?o.setQuery(i):ft(It({event:e,props:t,query:i.slice(0,l),refresh:r,store:n},o))},onCompositionEnd:function(e){ft(It({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:r,store:n},o))},onKeyDown:function(e){je(e).isComposing||function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=yt(e,pt);if(\"ArrowUp\"===t.key||\"ArrowDown\"===t.key){var a=function(){var e=Oe(o.getState()),t=r.environment.document.getElementById(we(r.id,\"item-\".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},c=function(){var e=Oe(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,u=e.source;u.onActive(dt({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?ft(dt({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if(\"Escape\"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if(\"Tab\"===t.key)o.dispatch(\"blur\",null),o.pendingRequests.cancelAll();else if(\"Enter\"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var u=Oe(o.getState()),l=u.item,s=u.itemInputValue,f=u.itemUrl,m=u.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:l,state:o.getState()});ft(dt({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(It({event:e,props:t,refresh:r,store:n},o))},onFocus:a,onBlur:q,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||a(r)}},s)},getPanelProps:function(e){return It({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch(\"mouseleave\",null)}},e)},getListProps:function(e){var r=e||{},n=r.source,o=kt(r,Et);return It({role:\"listbox\",\"aria-labelledby\":we(t.id,\"label\"),id:we(t.id,\"list\",n)},o)},getItemProps:function(e){var i=e.item,a=e.source,c=kt(e,jt);return It({id:we(t.id,\"item-\".concat(i.__autocomplete_id),a),role:\"option\",\"aria-selected\":n.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==n.getState().activeItemId){n.dispatch(\"mousemove\",i.__autocomplete_id);var t=Oe(n.getState());if(null!==n.getState().activeItemId&&t){var a=t.item,c=t.itemInputValue,u=t.itemUrl,l=t.source;l.onActive(It({event:e,item:a,itemInputValue:c,itemUrl:u,refresh:r,source:l,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var c=a.getItemInputValue({item:i,state:n.getState()}),u=a.getItemUrl({item:i,state:n.getState()});(u?Promise.resolve():ft(It({event:e,nextState:{isOpen:!1},props:t,query:c,refresh:r,store:n},o))).then((function(){a.onSelect(It({event:e,item:i,itemInputValue:c,itemUrl:u,refresh:r,source:a,state:n.getState()},o))}))}},c)}}}function _t(e){return _t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_t(e)}function xt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ct(e){for(var t=1;t0&&e.createElement(\"div\",{className:\"DocSearch-NoResults-Prefill-List\"},e.createElement(\"p\",{className:\"DocSearch-Help\"},u,\":\"),e.createElement(\"ul\",null,p.slice(0,3).reduce((function(t,r){return[].concat(w(t),[e.createElement(\"li\",{key:r},e.createElement(\"button\",{className:\"DocSearch-Prefill\",key:r,type:\"button\",onClick:function(){o.setQuery(r.toLowerCase()+\" \"),o.refresh(),o.inputRef.current.focus()}},r))])}),[]))),o.getMissingResultsUrl&&e.createElement(\"p\",{className:\"DocSearch-Help\"},\"\".concat(s,\" \"),e.createElement(\"a\",{href:o.getMissingResultsUrl({query:o.state.query}),target:\"_blank\",rel:\"noopener noreferrer\"},m)))}var sr=[\"hit\",\"attribute\",\"tagName\"];function fr(e,t){return t.split(\".\").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function mr(e){var t=e.hit,r=e.attribute,o=e.tagName,i=void 0===o?\"span\":o,a=g(e,sr);return n(i,y(y({},a),{},{dangerouslySetInnerHTML:{__html:fr(t,\"_snippetResult.\".concat(r,\".value\"))||fr(t,r)}}))}function pr(t){return t.collection&&0!==t.collection.items.length?e.createElement(\"section\",{className:\"DocSearch-Hits\"},e.createElement(\"div\",{className:\"DocSearch-Hit-source\"},t.title),e.createElement(\"ul\",t.getListProps(),t.collection.items.map((function(r,n){return e.createElement(vr,m({key:[t.title,r.objectID].join(\":\"),item:r,index:n},t))})))):null}function vr(t){var r=t.item,n=t.index,o=t.renderIcon,i=t.renderAction,a=t.getItemProps,c=t.onItemClick,u=t.collection,l=t.hitComponent,s=O(e.useState(!1),2),f=s[0],p=s[1],v=O(e.useState(!1),2),d=v[0],h=v[1],y=e.useRef(null),g=l;return e.createElement(\"li\",m({className:[\"DocSearch-Hit\",r.__docsearch_parent&&\"DocSearch-Hit--Child\",f&&\"DocSearch-Hit--deleting\",d&&\"DocSearch-Hit--favoriting\"].filter(Boolean).join(\" \"),onTransitionEnd:function(){y.current&&y.current()}},a({item:r,source:u.source,onClick:function(e){c(r,e)}})),e.createElement(g,{hit:r},e.createElement(\"div\",{className:\"DocSearch-Hit-Container\"},o({item:r,index:n}),r.hierarchy[r.type]&&\"lvl1\"===r.type&&e.createElement(\"div\",{className:\"DocSearch-Hit-content-wrapper\"},e.createElement(mr,{className:\"DocSearch-Hit-title\",hit:r,attribute:\"hierarchy.lvl1\"}),r.content&&e.createElement(mr,{className:\"DocSearch-Hit-path\",hit:r,attribute:\"content\"})),r.hierarchy[r.type]&&(\"lvl2\"===r.type||\"lvl3\"===r.type||\"lvl4\"===r.type||\"lvl5\"===r.type||\"lvl6\"===r.type)&&e.createElement(\"div\",{className:\"DocSearch-Hit-content-wrapper\"},e.createElement(mr,{className:\"DocSearch-Hit-title\",hit:r,attribute:\"hierarchy.\".concat(r.type)}),e.createElement(mr,{className:\"DocSearch-Hit-path\",hit:r,attribute:\"hierarchy.lvl1\"})),\"content\"===r.type&&e.createElement(\"div\",{className:\"DocSearch-Hit-content-wrapper\"},e.createElement(mr,{className:\"DocSearch-Hit-title\",hit:r,attribute:\"content\"}),e.createElement(mr,{className:\"DocSearch-Hit-path\",hit:r,attribute:\"hierarchy.lvl1\"})),i({item:r,runDeleteTransition:function(e){p(!0),y.current=e},runFavoriteTransition:function(e){h(!0),y.current=e}}))))}function dr(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}function hr(e){return e}function yr(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function gr(){}var br=/(|<\\/mark>)/g,Sr=RegExp(br.source);function Or(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0;return o?o.value&&Sr.test(o.value)?o.value.replace(br,\"\"):o.value:e.hierarchy.lvl0}function wr(t){return e.createElement(\"div\",{className:\"DocSearch-Dropdown-Container\"},t.state.collections.map((function(r){if(0===r.items.length)return null;var n=Or(r.items[0]);return e.createElement(pr,m({},t,{key:r.source.sourceId,title:n,collection:r,renderIcon:function(t){var n,o=t.item,i=t.index;return e.createElement(e.Fragment,null,o.__docsearch_parent&&e.createElement(\"svg\",{className:\"DocSearch-Hit-Tree\",viewBox:\"0 0 24 54\"},e.createElement(\"g\",{stroke:\"currentColor\",fill:\"none\",fillRule:\"evenodd\",strokeLinecap:\"round\",strokeLinejoin:\"round\"},o.__docsearch_parent!==(null===(n=r.items[i+1])||void 0===n?void 0:n.__docsearch_parent)?e.createElement(\"path\",{d:\"M8 6v21M20 27H8.3\"}):e.createElement(\"path\",{d:\"M8 6v42M20 27H8.3\"}))),e.createElement(\"div\",{className:\"DocSearch-Hit-icon\"},e.createElement(tr,{type:o.type})))},renderAction:function(){return e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(Xt,null))}}))})),t.resultsFooterComponent&&e.createElement(\"section\",{className:\"DocSearch-HitsFooter\"},e.createElement(t.resultsFooterComponent,{state:t.state})))}var Er=[\"translations\"];function jr(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Er),i=n.recentSearchesTitle,a=void 0===i?\"Recent\":i,c=n.noRecentSearchesText,u=void 0===c?\"No recent searches\":c,l=n.saveRecentSearchButtonTitle,s=void 0===l?\"Save this search\":l,f=n.removeRecentSearchButtonTitle,p=void 0===f?\"Remove this search from history\":f,v=n.favoriteSearchesTitle,d=void 0===v?\"Favorite\":v,h=n.removeFavoriteSearchButtonTitle,y=void 0===h?\"Remove this search from favorites\":h;return\"idle\"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:e.createElement(\"div\",{className:\"DocSearch-StartScreen\"},e.createElement(\"p\",{className:\"DocSearch-Help\"},u)):!1===o.hasCollections?null:e.createElement(\"div\",{className:\"DocSearch-Dropdown-Container\"},e.createElement(pr,m({},o,{title:a,collection:o.state.collections[0],renderIcon:function(){return e.createElement(\"div\",{className:\"DocSearch-Hit-icon\"},e.createElement(Yt,null))},renderAction:function(t){var r=t.item,n=t.runFavoriteTransition,i=t.runDeleteTransition;return e.createElement(e.Fragment,null,e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(\"button\",{className:\"DocSearch-Hit-action-button\",title:s,type:\"submit\",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.add(r),o.recentSearches.remove(r),o.refresh()}))}},e.createElement(or,null))),e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(\"button\",{className:\"DocSearch-Hit-action-button\",title:p,type:\"submit\",onClick:function(e){e.preventDefault(),e.stopPropagation(),i((function(){o.recentSearches.remove(r),o.refresh()}))}},e.createElement($t,null))))}})),e.createElement(pr,m({},o,{title:d,collection:o.state.collections[1],renderIcon:function(){return e.createElement(\"div\",{className:\"DocSearch-Hit-icon\"},e.createElement(or,null))},renderAction:function(t){var r=t.item,n=t.runDeleteTransition;return e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(\"button\",{className:\"DocSearch-Hit-action-button\",title:y,type:\"submit\",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.remove(r),o.refresh()}))}},e.createElement($t,null)))}})))}var Pr=[\"translations\"],Ir=e.memo((function(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Pr);if(\"error\"===o.state.status)return e.createElement(cr,{translations:null==n?void 0:n.errorScreen});var i=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===i?e.createElement(lr,m({},o,{translations:null==n?void 0:n.noResultsScreen})):e.createElement(wr,o):e.createElement(jr,m({},o,{hasCollections:i,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return\"loading\"===t.state.status||\"stalled\"===t.state.status})),Dr=[\"translations\"];function kr(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Dr),i=n.resetButtonTitle,a=void 0===i?\"Clear the query\":i,c=n.resetButtonAriaLabel,u=void 0===c?\"Clear the query\":c,l=n.cancelButtonText,s=void 0===l?\"Cancel\":l,f=n.cancelButtonAriaLabel,p=void 0===f?\"Cancel\":f,v=n.searchInputLabel,d=void 0===v?\"Search\":v,h=o.getFormProps({inputElement:o.inputRef.current}).onReset;return e.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),e.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),e.createElement(e.Fragment,null,e.createElement(\"form\",{className:\"DocSearch-Form\",onSubmit:function(e){e.preventDefault()},onReset:h},e.createElement(\"label\",m({className:\"DocSearch-MagnifierLabel\"},o.getLabelProps()),e.createElement(I,null),e.createElement(\"span\",{className:\"DocSearch-VisuallyHiddenForAccessibility\"},d)),e.createElement(\"div\",{className:\"DocSearch-LoadingIndicator\"},e.createElement(Gt,null)),e.createElement(\"input\",m({className:\"DocSearch-Input\",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),e.createElement(\"button\",{type:\"reset\",title:a,className:\"DocSearch-Reset\",\"aria-label\":u,hidden:!o.state.query},e.createElement($t,null))),e.createElement(\"button\",{className:\"DocSearch-Cancel\",type:\"reset\",\"aria-label\":p,onClick:o.onClose},s))}var Ar=[\"_highlightResult\",\"_snippetResult\"];function _r(e){return!1===function(){var e=\"__TEST_KEY__\";try{return localStorage.setItem(e,\"\"),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function xr(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=_r(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var r=g(t,Ar),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function Cr(e){var t,r=\"algolia-client-js-\".concat(e.key);function n(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(n().getItem(r)||\"{}\")}function i(e){n().setItem(r,JSON.stringify(e))}return{get:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r,n,a;return r=e.timeToLive?1e3*e.timeToLive:null,n=o(),i(a=Object.fromEntries(Object.entries(n).filter((function(e){return void 0!==O(e,2)[1].timestamp})))),r&&i(Object.fromEntries(Object.entries(a).filter((function(e){var t=O(e,2)[1],n=(new Date).getTime();return!(t.timestamp+r2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return O(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return Nr({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return Nr({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return Nr({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return Nr({caches:t}).clear()}))}}}function Tr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=n();return a.then((function(e){return o.miss(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Lr(e){var t=e.algoliaAgents,r=e.client,n=e.version,o=function(e){var t={value:\"Algolia for JavaScript (\".concat(e,\")\"),add:function(e){var r=\"; \".concat(e.segment).concat(void 0!==e.version?\" (\".concat(e.version,\")\"):\"\");return-1===t.value.indexOf(r)&&(t.value=\"\".concat(t.value).concat(r)),t}};return t}(n).add({segment:r,version:n});return t.forEach((function(e){return o.add(e)})),o}var Rr=12e4;function qr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"up\",r=Date.now();return y(y({},e),{},{status:t,lastUpdate:r,isUp:function(){return\"up\"===t||Date.now()-r>Rr},isTimedOut:function(){return\"timed out\"===t&&Date.now()-r<=Rr}})}var Mr=function(){function e(t,r){var n;return l(this,e),f(n=u(this,e,[t]),\"name\",\"AlgoliaError\"),r&&(n.name=r),n}return v(e,j(Error)),s(e)}(),Hr=function(){function e(t,r,n){var o;return l(this,e),f(o=u(this,e,[t,n]),\"stackTrace\",void 0),o.stackTrace=r,o}return v(e,Mr),s(e)}(),Br=function(){function e(t){return l(this,e),u(this,e,[\"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.\",t,\"RetryError\"])}return v(e,Hr),s(e)}(),Fr=function(){function e(t,r,n){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"ApiError\";return l(this,e),f(o=u(this,e,[t,n,i]),\"status\",void 0),o.status=r,o}return v(e,Hr),s(e)}(),Ur=function(){function e(t,r){var n;return l(this,e),f(n=u(this,e,[t,\"DeserializationError\"]),\"response\",void 0),n.response=r,n}return v(e,Mr),s(e)}(),Kr=function(){function e(t,r,n,o){var i;return l(this,e),f(i=u(this,e,[t,r,o,\"DetailedApiError\"]),\"error\",void 0),i.error=n,i}return v(e,Fr),s(e)}();function Vr(e,t,r){var n,o=(n=r,Object.keys(n).filter((function(e){return void 0!==n[e]})).sort().map((function(e){return\"\".concat(e,\"=\").concat(encodeURIComponent(\"[object Array]\"===Object.prototype.toString.call(n[e])?n[e].join(\",\"):n[e]).replace(/\\+/g,\"%20\"))})).join(\"&\")),i=\"\".concat(e.protocol,\"://\").concat(e.url).concat(e.port?\":\".concat(e.port):\"\",\"/\").concat(\"/\"===t.charAt(0)?t.substring(1):t);return o.length&&(i+=\"?\".concat(o)),i}function zr(e,t){if(\"GET\"!==e.method&&(void 0!==e.data||void 0!==t.data)){var r=Array.isArray(e.data)?e.data:y(y({},e.data),t.data);return JSON.stringify(r)}}function Jr(e,t,r){var n=y(y(y({Accept:\"application/json\"},e),t),r),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}function Qr(e){try{return JSON.parse(e.content)}catch(t){throw new Ur(t.message,e)}}function Wr(e,t){var r=e.content,n=e.status;try{var o=JSON.parse(r);return\"error\"in o?new Kr(o.message,n,o.error,t):new Fr(o.message,n,t)}catch(e){}return new Fr(r,n,t)}function Zr(e){return e.map((function(e){return Gr(e)}))}function Gr(e){var t=e.request.headers[\"x-algolia-api-key\"]?{\"x-algolia-api-key\":\"*****\"}:{};return y(y({},e),{},{request:y(y({},e.request),{},{headers:y(y({},e.request.headers),t)})})}var Yr=[\"appId\",\"apiKey\",\"authMode\",\"algoliaAgents\"],$r=[\"params\"],Xr=\"5.14.2\";function en(e){return[{url:\"\".concat(e,\"-dsn.algolia.net\"),accept:\"read\",protocol:\"https\"},{url:\"\".concat(e,\".algolia.net\"),accept:\"write\",protocol:\"https\"}].concat(function(e){for(var t=e,r=e.length-1;r>0;r--){var n=Math.floor(Math.random()*(r+1)),o=e[r];t[r]=e[n],t[n]=o}return t}([{url:\"\".concat(e,\"-1.algolianet.com\"),accept:\"readWrite\",protocol:\"https\"},{url:\"\".concat(e,\"-2.algolianet.com\"),accept:\"readWrite\",protocol:\"https\"},{url:\"\".concat(e,\"-3.algolianet.com\"),accept:\"readWrite\",protocol:\"https\"}]))}function tn(e){var t=e.appId,r=e.apiKey,n=e.authMode,o=e.algoliaAgents,i=g(e,Yr),a=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"WithinHeaders\",n={\"x-algolia-api-key\":t,\"x-algolia-application-id\":e};return{headers:function(){return\"WithinHeaders\"===r?n:{}},queryParameters:function(){return\"WithinQueryParameters\"===r?n:{}}}}(t,r,n),u=function(e){var t=e.hosts,r=e.hostsCache,n=e.baseHeaders,o=e.logger,i=e.baseQueryParameters,a=e.algoliaAgent,u=e.timeouts,l=e.requester,s=e.requestsCache,f=e.responsesCache;function m(e){return p.apply(this,arguments)}function p(){return(p=c(b().mark((function e(t){var n,o,i,a,c;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return r.get(e,(function(){return Promise.resolve(qr(e))}))})));case 2:return n=e.sent,o=n.filter((function(e){return e.isUp()})),i=n.filter((function(e){return e.isTimedOut()})),a=[].concat(w(o),w(i)),c=a.length>0?a:t,e.abrupt(\"return\",{hosts:c,getTimeout:function(e,t){return(0===i.length&&0===e?1:i.length+3+e)*t}});case 8:case\"end\":return e.stop()}}),e)})))).apply(this,arguments)}function v(e,t){return d.apply(this,arguments)}function d(){return d=c(b().mark((function e(s,f){var p,v,d,h,g,S,O,E,j,P,I,D,k,A=arguments;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p=!(A.length>2&&void 0!==A[2])||A[2],v=[],d=zr(s,f),h=Jr(n,s.headers,f.headers),g=\"GET\"===s.method?y(y({},s.data),f.data):{},S=y(y(y({},i),s.queryParameters),g),a.value&&(S[\"x-algolia-agent\"]=a.value),f&&f.queryParameters)for(O=0,E=Object.keys(f.queryParameters);O1&&void 0!==arguments[1]?arguments[1]:{},r=e.useReadTransporter||\"GET\"===e.method;if(!r)return v(e,t,r);var o=function(){return v(e,t)};if(!0!==(t.cacheable||e.cacheable))return o();var a={request:e,requestOptions:t,transporter:{queryParameters:i,headers:n}};return f.get(a,(function(){return s.get(a,(function(){return s.set(a,o()).then((function(e){return Promise.all([s.delete(a),e])}),(function(e){return Promise.all([s.delete(a),Promise.reject(e)])})).then((function(e){var t=O(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.set(a,e)}})},requestsCache:s,responsesCache:f}}(y(y({hosts:en(t)},i),{},{algoliaAgent:Lr({algoliaAgents:o,client:\"Lite\",version:Xr}),baseHeaders:y(y({\"content-type\":\"text/plain\"},a.headers()),i.baseHeaders),baseQueryParameters:y(y({},a.queryParameters()),i.baseQueryParameters)}));return{transporter:u,appId:t,clearCache:function(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then((function(){}))},get _ua(){return u.algoliaAgent.value},addAlgoliaAgent:function(e,t){u.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;n&&\"WithinHeaders\"!==n?u.baseQueryParameters[\"x-algolia-api-key\"]=t:u.baseHeaders[\"x-algolia-api-key\"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var r=e.path,n=e.parameters,o=e.body;if(!r)throw new Error(\"Parameter `path` is required when calling `customPost`.\");var i={method:\"POST\",path:\"/{path}\".replace(\"{path}\",r),queryParameters:n||{},headers:{},data:o||{}};return u.request(i,t)},getRecommendations:function(e,t){e&&Array.isArray(e)&&(e={requests:e});if(!e)throw new Error(\"Parameter `getRecommendationsParams` is required when calling `getRecommendations`.\");if(!e.requests)throw new Error(\"Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.\");var r={method:\"POST\",path:\"/1/indexes/*/recommendations\",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(r,t)},search:function(e,t){if(e&&Array.isArray(e)){var r={requests:e.map((function(e){var t=e.params,r=g(e,$r);return\"facet\"===r.type?y(y(y({},r),t),{},{type:\"facet\"}):y(y(y({},r),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=r}if(!e)throw new Error(\"Parameter `searchMethodParams` is required when calling `search`.\");if(!e.requests)throw new Error(\"Parameter `searchMethodParams.requests` is required when calling `search`.\");var n={method:\"POST\",path:\"/1/indexes/*/queries\",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(n,t)}}}var rn=\"3.8.2\";function nn(t,r,n){return e.useMemo((function(){var e=function(e,t,r){if(!e||\"string\"!=typeof e)throw new Error(\"`appId` is missing.\");if(!t||\"string\"!=typeof t)throw new Error(\"`apiKey` is missing.\");return tn(y({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),e)},i=o(e.connectTimeout,\"Connection timeout\");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(i),n=o(e.responseTimeout,\"Socket timeout\"))},r.onerror=function(){0===r.status&&(clearTimeout(i),clearTimeout(n),t({content:r.responseText||\"Network request failed\",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(i),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:\"Browser\"}],authMode:\"WithinQueryParameters\",responsesCache:Tr(),requestsCache:Tr({serializable:!1}),hostsCache:Nr({caches:[Cr({key:\"\".concat(Xr,\"-\").concat(e)}),Tr()]})},r))}(t,r);return e.addAlgoliaAgent(\"docsearch\",rn),!1===/docsearch.js \\(.*\\)/.test(e.transporter.algoliaAgent.value)&&e.addAlgoliaAgent(\"docsearch-react\",rn),n(e)}),[t,r,n])}var on=[\"footer\",\"searchBox\"];function an(t){var r=t.appId,n=t.apiKey,o=t.indexName,i=t.placeholder,a=void 0===i?\"Search docs\":i,c=t.searchParameters,u=t.maxResultsPerGroup,l=t.onClose,s=void 0===l?gr:l,f=t.transformItems,p=void 0===f?hr:f,v=t.hitComponent,d=void 0===v?Zt:v,h=t.resultsFooterComponent,b=void 0===h?function(){return null}:h,S=t.navigator,w=t.initialScrollY,E=void 0===w?0:w,j=t.transformSearchClient,P=void 0===j?hr:j,I=t.disableUserPersonalization,D=void 0!==I&&I,k=t.initialQuery,A=void 0===k?\"\":k,_=t.translations,x=void 0===_?{}:_,C=t.getMissingResultsUrl,N=t.insights,T=void 0!==N&&N,L=x.footer,R=x.searchBox,q=g(x,on),M=O(e.useState({query:\"\",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:\"idle\"}),2),H=M[0],B=M[1],F=e.useRef(null),U=e.useRef(null),K=e.useRef(null),V=e.useRef(null),z=e.useRef(null),J=e.useRef(10),Q=e.useRef(\"undefined\"!=typeof window?window.getSelection().toString().slice(0,64):\"\").current,W=e.useRef(A||Q).current,Z=nn(r,n,P),G=e.useRef(xr({key:\"__DOCSEARCH_FAVORITE_SEARCHES__\".concat(o),limit:10})).current,Y=e.useRef(xr({key:\"__DOCSEARCH_RECENT_SEARCHES__\".concat(o),limit:0===G.getAll().length?7:4})).current,$=e.useCallback((function(e){if(!D){var t=\"content\"===e.type?e.__docsearch_parent:e;t&&-1===G.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Y.add(t)}}),[G,Y,D]),X=e.useCallback((function(e){if(H.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:\"Item Selected\",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};H.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[H.context.algoliaInsightsPlugin]),ee=e.useMemo((function(){return zt({id:\"docsearch\",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:W,context:{searchSuggestions:[]}},insights:T,navigator:S,onStateChange:function(e){B(e.state)},getSources:function(e){var t=e.query,i=e.state,a=e.setContext,l=e.setStatus;if(!t)return D?[]:[{sourceId:\"recentSearches\",onSelect:function(e){var t=e.item,r=e.event;$(t),yr(r)||s()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}},{sourceId:\"favoriteSearches\",onSelect:function(e){var t=e.item,r=e.event;$(t),yr(r)||s()},getItemUrl:function(e){return e.item.url},getItems:function(){return G.getAll()}}];var f=Boolean(T);return Z.search({requests:[y({query:t,indexName:o,attributesToRetrieve:[\"hierarchy.lvl0\",\"hierarchy.lvl1\",\"hierarchy.lvl2\",\"hierarchy.lvl3\",\"hierarchy.lvl4\",\"hierarchy.lvl5\",\"hierarchy.lvl6\",\"content\",\"type\",\"url\"],attributesToSnippet:[\"hierarchy.lvl1:\".concat(J.current),\"hierarchy.lvl2:\".concat(J.current),\"hierarchy.lvl3:\".concat(J.current),\"hierarchy.lvl4:\".concat(J.current),\"hierarchy.lvl5:\".concat(J.current),\"hierarchy.lvl6:\".concat(J.current),\"content:\".concat(J.current)],snippetEllipsisText:\"…\",highlightPreTag:\"\",highlightPostTag:\"\",hitsPerPage:20,clickAnalytics:f},c)]}).catch((function(e){throw\"RetryError\"===e.name&&l(\"error\"),e})).then((function(e){var t=e.results[0],c=t.hits,l=t.nbHits,m=dr(c,(function(e){return Or(e)}),u);i.context.searchSuggestions.length0&&(ne(),z.current&&z.current.focus())}),[W,ne]),e.useEffect((function(){function e(){if(U.current){var e=.01*window.innerHeight;U.current.style.setProperty(\"--docsearch-vh\",\"\".concat(e,\"px\"))}}return e(),window.addEventListener(\"resize\",e),function(){window.removeEventListener(\"resize\",e)}}),[]),e.createElement(\"div\",m({ref:F},re({\"aria-expanded\":!0}),{className:[\"DocSearch\",\"DocSearch-Container\",\"stalled\"===H.status&&\"DocSearch-Container--Stalled\",\"error\"===H.status&&\"DocSearch-Container--Errored\"].filter(Boolean).join(\" \"),role:\"button\",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&s()}}),e.createElement(\"div\",{className:\"DocSearch-Modal\",ref:U},e.createElement(\"header\",{className:\"DocSearch-SearchBar\",ref:K},e.createElement(kr,m({},ee,{state:H,autoFocus:0===W.length,inputRef:z,isFromSelection:Boolean(W)&&W===Q,translations:R,onClose:s}))),e.createElement(\"div\",{className:\"DocSearch-Dropdown\",ref:V},e.createElement(Ir,m({},ee,{indexName:o,state:H,hitComponent:d,resultsFooterComponent:b,disableUserPersonalization:D,recentSearches:Y,favoriteSearches:G,inputRef:z,translations:q,getMissingResultsUrl:C,onItemClick:function(e,t){X(e),$(e),yr(t)||s()}}))),e.createElement(\"footer\",{className:\"DocSearch-Footer\"},e.createElement(Wt,{translations:L}))))}function cn(t){var r=t.isOpen,n=t.onOpen,o=t.onClose,i=t.onInput,a=t.searchButtonRef;e.useEffect((function(){function e(e){var t;if(\"Escape\"===e.code&&r||\"k\"===(null===(t=e.key)||void 0===t?void 0:t.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,r=t.tagName;return t.isContentEditable||\"INPUT\"===r||\"SELECT\"===r||\"TEXTAREA\"===r}(e)&&\"/\"===e.key&&!r)return e.preventDefault(),void(r?o():document.body.classList.contains(\"DocSearch--active\")||n());a&&a.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener(\"keydown\",e),function(){window.removeEventListener(\"keydown\",e)}}),[r,n,o,i,a])}function un(t){var r,n,i=e.useRef(null),a=O(e.useState(!1),2),c=a[0],u=a[1],l=O(e.useState((null==t?void 0:t.initialQuery)||void 0),2),s=l[0],f=l[1],p=e.useCallback((function(){u(!0)}),[u]),v=e.useCallback((function(){u(!1),f(null==t?void 0:t.initialQuery)}),[u,t.initialQuery]);return cn({isOpen:c,onOpen:p,onClose:v,onInput:e.useCallback((function(e){u(!0),f(e.key)}),[u,f]),searchButtonRef:i}),e.createElement(e.Fragment,null,e.createElement(A,{ref:i,translations:null==t||null===(r=t.translations)||void 0===r?void 0:r.button,onClick:p}),c&&o(e.createElement(an,m({},t,{initialScrollY:window.scrollY,initialQuery:s,translations:null==t||null===(n=t.translations)||void 0===n?void 0:n.modal,onClose:v})),document.body))}export{un as DocSearch,A as DocSearchButton,an as DocSearchModal,cn as useDocSearchKeyboardEvents,rn as version};\n","import type { DocSearchProps as DocSearchComponentProps } from '@docsearch/react';\nimport { DocSearch, version } from '@docsearch/react';\nimport React, { render } from 'preact/compat';\n\nfunction getHTMLElement(value: HTMLElement | string, environment: DocSearchProps['environment'] = window): HTMLElement {\n if (typeof value === 'string') {\n return environment.document.querySelector(value)!;\n }\n\n return value;\n}\n\ninterface DocSearchProps extends DocSearchComponentProps {\n container: HTMLElement | string;\n environment?: typeof window;\n}\n\nexport function docsearch(props: DocSearchProps): void {\n render(\n {\n searchClient.addAlgoliaAgent('docsearch.js', version);\n\n return props.transformSearchClient ? props.transformSearchClient(searchClient) : searchClient;\n }}\n />,\n getHTMLElement(props.container, props.environment),\n );\n}\n"],"names":["h","v","p","t","r","u","i","o","f","c","n","e","__b","a","__r","diffed","l","__c","m","unmount","s","__","d","__h","__H","length","push","D","__N","setState","filter","every","call","this","forEach","props","shouldComponentUpdate","componentWillUpdate","__e","y","__s","C","_","A","T","current","F","concat","q","x","context","sub","value","P","useDebugValue","g","__v","__m","j","shift","__P","z","B","__k","requestAnimationFrame","w","some","k","clearTimeout","cancelAnimationFrame","setTimeout","Array","done","Promise","resolve","then","arguments","apply","_typeof","TypeError","ReferenceError","Reflect","construct","constructor","Object","defineProperty","writable","Symbol","toPrimitive","String","enumerable","configurable","assign","bind","hasOwnProperty","setPrototypeOf","getPrototypeOf","__proto__","prototype","create","S","Boolean","valueOf","keys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","includes","propertyIsEnumerable","b","iterator","asyncIterator","toStringTag","type","arg","wrap","O","E","_invoke","I","__await","Error","method","delegate","sent","_sent","dispatchException","abrupt","return","resultName","next","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","reset","isNaN","displayName","isGeneratorFunction","name","mark","awrap","AsyncIterator","async","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","delegateYield","isArray","from","toString","test","Map","Function","indexOf","has","get","set","createElement","width","height","className","strokeWidth","stroke","fill","strokeLinecap","viewBox","fillRule","strokeLinejoin","forwardRef","translations","buttonText","buttonAriaLabel","navigator","platform","ref","Fragment","reactsToKey","children","window","addEventListener","removeEventListener","key","reduce","N","collections","items","L","R","M","segment","version","H","item","index","__autocomplete_indexName","positions","findIndex","objectID","queryID","__autocomplete_queryID","algoliaSource","U","K","V","J","Q","W","Z","G","Y","map","objectIDs","X","ee","te","re","ne","oe","ie","ae","ce","ue","le","onItemsChange","insights","state","insightsEvents","eventName","se","viewedObjectIDs","fe","onSelect","clickedObjectIDsAfterSearch","onActive","__autocomplete_clickAnalytics","insightsClient","insightsInitParams","AlgoliaAnalyticsObject","queue","document","src","onerror","console","error","body","appendChild","partial","split","Number","__autocomplete_algoliaCredentials","appId","apiKey","headers","init","setAuthenticatedUserToken","setUserToken","clickedObjectIDs","clickedFilters","convertedObjectIDsAfterSearch","convertedObjectIDs","convertedFilters","payload","viewedFilters","$","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","userToken","me","event","source","getItems","onStateChange","__autocomplete_pluginOptions","__automaticInsights","pe","de","finally","onCancelList","cancel","isCanceled","ve","he","ye","ge","be","Se","Oe","activeItemId","collection","itemInputValue","getItemInputValue","itemUrl","getItemUrl","we","sourceId","join","replace","Ee","je","nativeEvent","Pe","Ie","De","Ae","_e","xe","Ce","Ne","Le","Re","qe","Me","Be","Fe","Ue","Ke","Ve","ze","Je","Qe","We","Ze","Ge","execute","$e","searchClient","requesterId","requests","find","all","et","tt","rt","nt","ot","at","ct","ut","lt","st","ft","nextState","query","refresh","store","environment","setCollections","setIsOpen","setQuery","setActiveItemId","setStatus","defaultActiveItemId","openOnFocus","getState","shouldPanelOpen","pendingRequests","add","stallThreshold","getSources","queries","params","transformResponse","_automaticInsights","results","hits","facetHits","label","count","_highlightResult","highlighted","onResolve","JSON","stringify","plugins","reshape","sourcesBySourceId","sources","mt","pt","vt","dt","ht","gt","bt","St","Ot","wt","Et","jt","Pt","It","Dt","kt","_t","xt","Ct","Nt","Tt","options","__autocomplete_metadata","userAgents","ua","Lt","Rt","qt","Mt","Ht","Bt","status","nextActiveItemId","debug","Ft","Ut","Kt","Vt","zt","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","id","initialState","onSubmit","onReset","__default","navigate","location","navigateNewTab","open","focus","navigateNewWindow","He","dispatch","prevState","cancelAll","isEmpty","__autocomplete_id","getEnvironmentProps","inputElement","formElement","panelElement","target","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","role","getFormProps","action","noValidate","preventDefault","getLabelProps","htmlFor","getInputProps","maxLength","match","userAgent","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","isComposing","onCompositionEnd","onKeyDown","getElementById","scrollIntoViewIfNeeded","scrollIntoView","metaKey","ctrlKey","shiftKey","altKey","onFocus","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","onMouseMove","At","Event","metadata","querySelector","content","Jt","searchByText","href","hostname","rel","xmlns","rx","ry","Qt","ariaLabel","Wt","selectText","selectKeyAriaLabel","navigateText","navigateUpKeyAriaLabel","navigateDownKeyAriaLabel","closeText","closeKeyAriaLabel","Zt","hit","url","Gt","strokeOpacity","transform","cx","cy","attributeName","to","dur","repeatCount","Yt","$t","Xt","er","tr","nr","rr","or","ir","ar","cr","titleText","helpText","ur","lr","noResultsText","suggestedQueryText","reportMissingResultsText","reportMissingResultsLinkText","searchSuggestions","toLowerCase","inputRef","getMissingResultsUrl","sr","fr","mr","attribute","tagName","dangerouslySetInnerHTML","__html","pr","title","vr","renderIcon","renderAction","onItemClick","hitComponent","useState","useRef","__docsearch_parent","onTransitionEnd","hierarchy","runDeleteTransition","runFavoriteTransition","dr","hr","yr","button","gr","br","Sr","RegExp","Or","lvl0","wr","resultsFooterComponent","Er","jr","recentSearchesTitle","noRecentSearchesText","saveRecentSearchButtonTitle","removeRecentSearchButtonTitle","favoriteSearchesTitle","removeFavoriteSearchButtonTitle","hasCollections","disableUserPersonalization","stopPropagation","favoriteSearches","recentSearches","remove","Pr","Ir","memo","errorScreen","noResultsScreen","startScreen","Dr","kr","resetButtonTitle","resetButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","searchInputLabel","useEffect","isFromSelection","select","hidden","onClose","Ar","xr","limit","localStorage","setItem","removeItem","getItem","parse","_snippetResult","splice","unshift","getAll","Cr","miss","timeToLive","fromEntries","entries","timestamp","Date","getTime","delete","clear","Nr","caches","Tr","serializable","Lr","algoliaAgents","client","Rr","qr","now","lastUpdate","isUp","isTimedOut","Mr","Hr","stackTrace","Br","Fr","Ur","response","Kr","Vr","sort","encodeURIComponent","protocol","port","substring","zr","data","Jr","Accept","Qr","message","Wr","Zr","Gr","request","Yr","$r","Xr","en","accept","Math","floor","random","rn","on","an","indexName","searchParameters","maxResultsPerGroup","transformItems","initialScrollY","transformSearchClient","initialQuery","footer","searchBox","getSelection","useMemo","authMode","queryParameters","hosts","hostsCache","baseHeaders","logger","baseQueryParameters","algoliaAgent","timeouts","requester","requestsCache","responsesCache","getTimeout","path","connectTimeout","connect","responseTimeout","read","write","host","triesLeft","send","info","useReadTransporter","cacheable","requestOptions","transporter","reject","clearCache","addAlgoliaAgent","setClientApiKey","searchForHits","search","searchForFacets","customPost","parameters","getRecommendations","facet","maxFacetHits","facetQuery","XMLHttpRequest","setRequestHeader","abort","onreadystatechange","readyState","OPENED","responseText","onload","nn","useCallback","attributesToRetrieve","attributesToSnippet","snippetEllipsisText","highlightPreTag","highlightPostTag","hitsPerPage","nbHits","lvl1","flat","container","querySelectorAll","classList","scrollTo","matchMedia","matches","scrollTop","innerHeight","style","setProperty","tabIndex","un","onOpen","onInput","searchButtonRef","code","isContentEditable","fromCharCode","keyCode","scrollY","modal","docsearch","render","React","DocSearch","_extends","undefined"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/node_modules/@docsearch/js/dist/umd/index.js b/node_modules/@docsearch/js/dist/umd/index.js index f6c4bc6..15566de 100644 --- a/node_modules/@docsearch/js/dist/umd/index.js +++ b/node_modules/@docsearch/js/dist/umd/index.js @@ -1,3 +1,3 @@ -/*! @docsearch/js 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).docsearch=t()}(this,(function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],c=!0,a=!1;try{for(n=n.call(e);!(c=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);c=!0);}catch(e){a=!0,o=e}finally{try{c||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||u(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||u(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){if(e){if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n3)for(n=[n],i=3;i0?O(m.type,m.props,m.key,null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(p=g[s])||p&&m.key==p.key&&m.type===p.type)g[s]=void 0;else for(f=0;f<_;f++){if((p=g[f])&&m.key==p.key&&m.type===p.type){g[f]=void 0;break}p=null}q(e,m,p=p||d,o,i,c,a,u,l),v=m.__e,(f=m.ref)&&p.ref!=f&&(b||(b=[]),p.ref&&b.push(p.ref,null,m),b.push(f,m.__c||v,m)),null!=v?(null==y&&(y=v),"function"==typeof m.type&&null!=m.__k&&m.__k===p.__k?m.__d=u=k(m,u,e):u=C(e,m,p,g,v,u),l||"option"!==n.type?"function"==typeof n.type&&(n.__d=u):e.value=""):u&&p.__e==u&&u.parentNode!=e&&(u=w(p))}for(n.__e=y,s=_;s--;)null!=g[s]&&("function"==typeof n.type&&null!=g[s].__e&&g[s].__e==n.__d&&(n.__d=w(r,s+1)),U(g[s],g[s]));if(b)for(s=0;s3)for(n=[n],i=3;i=n.__.length&&n.__.push({}),n.__[e]}function ne(e){return $=1,re(pe,e)}function re(e,t,n){var r=te(K++,2);return r.t=e,r.__c||(r.__=[n?n(t):pe(void 0,t),function(e){var t=r.t(r.__[0],e);r.__[0]!==t&&(r.__=[t,r.__[1]],r.__c.setState({}))}],r.__c=z),r.__}function oe(e,t){var n=te(K++,3);!s.__s&&fe(n.__H,t)&&(n.__=e,n.__H=t,z.__H.__h.push(n))}function ie(e,t){var n=te(K++,4);!s.__s&&fe(n.__H,t)&&(n.__=e,n.__H=t,z.__h.push(n))}function ce(e,t){var n=te(K++,7);return fe(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function ae(){Q.forEach((function(e){if(e.__P)try{e.__H.__h.forEach(le),e.__H.__h.forEach(se),e.__H.__h=[]}catch(t){e.__H.__h=[],s.__e(t,e.__v)}})),Q=[]}s.__b=function(e){z=null,Z&&Z(e)},s.__r=function(e){Y&&Y(e),K=0;var t=(z=e.__c).__H;t&&(t.__h.forEach(le),t.__h.forEach(se),t.__h=[])},s.diffed=function(e){G&&G(e);var t=e.__c;t&&t.__H&&t.__H.__h.length&&(1!==Q.push(t)&&J===s.requestAnimationFrame||((J=s.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),ue&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);ue&&(t=requestAnimationFrame(n))})(ae)),z=void 0},s.__c=function(e,t){t.some((function(e){try{e.__h.forEach(le),e.__h=e.__h.filter((function(e){return!e.__||se(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],s.__e(n,e.__v)}})),X&&X(e,t)},s.unmount=function(e){ee&&ee(e);var t=e.__c;if(t&&t.__H)try{t.__H.__.forEach(le)}catch(e){s.__e(e,t.__v)}};var ue="function"==typeof requestAnimationFrame;function le(e){var t=z;"function"==typeof e.__c&&e.__c(),z=t}function se(e){var t=z;e.__c=e.__(),z=t}function fe(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function pe(e,t){return"function"==typeof t?t(e):t}function me(e,t){for(var n in t)e[n]=t[n];return e}function ve(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}function de(e){this.props=e}(de.prototype=new j).isPureReactComponent=!0,de.prototype.shouldComponentUpdate=function(e,t){return ve(this.props,e)||ve(this.state,t)};var he=s.__b;s.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),he&&he(e)};var ye="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var be=function(e,t){return null==e?null:A(A(e).map(t))},ge={map:be,forEach:be,count:function(e){return e?A(e).length:0},only:function(e){var t=A(e);if(1!==t.length)throw"Children.only";return t[0]},toArray:A},_e=s.__e;function Oe(){this.__u=0,this.t=null,this.__b=null}function Se(e){var t=e.__.__c;return t&&t.__e&&t.__e(e)}function je(){this.u=null,this.o=null}s.__e=function(e,t,n){if(e.then)for(var r,o=t;o=o.__;)if((r=o.__c)&&r.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),r.__c(e,t);_e(e,t,n)},(Oe.prototype=new j).__c=function(e,t){var n=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var o=Se(r.__v),i=!1,c=function(){i||(i=!0,n.componentWillUnmount=n.__c,o?o(a):a())};n.__c=n.componentWillUnmount,n.componentWillUnmount=function(){c(),n.__c&&n.__c()};var a=function(){if(!--r.__u){if(r.state.__e){var e=r.state.__e;r.__v.__k[0]=function e(t,n,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)})),t.__c&&t.__c.__P===n&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},u=!0===t.__h;r.__u++||u||r.setState({__e:r.__b=r.__v.__k[0]}),e.then(c,c)},Oe.prototype.componentWillUnmount=function(){this.t=[]},Oe.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),t.__c.__H=null),null!=(t=me({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=n),t.__c=null),t.__k=t.__k&&t.__k.map((function(t){return e(t,n,r)}))),t}(this.__b,n,r.__O=r.__P)}this.__b=null}var o=t.__e&&_(S,null,e.fallback);return o&&(o.__h=null),[_(S,null,t.__e?null:e.children),o]};var we=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(e)}}),B(_(Ee,{context:t.context},e.__v),t.l)):t.l&&t.componentWillUnmount()}function Ie(e,t){return _(Pe,{__v:e,i:t})}(je.prototype=new j).__e=function(e){var t=this,n=Se(t.__v),r=t.o.get(e);return r[0]++,function(o){var i=function(){t.props.revealOrder?(r.push(o),we(t,e,r)):o()};n?n(i):i()}},je.prototype.render=function(e){this.u=null,this.o=new Map;var t=A(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},je.prototype.componentDidUpdate=je.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){we(e,n,t)}))};var De="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,ke=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Ae=function(e){return("undefined"!=typeof Symbol&&"symbol"==n(Symbol())?/fil|che|rad/i:/fil|che|ra/i).test(e)};function Ce(e,t,n){return null==t.__k&&(t.textContent=""),B(e,t),"function"==typeof n&&n(),e?e.__c:null}j.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(j.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var xe=s.event;function Ne(){}function Te(){return this.cancelBubble}function Re(){return this.defaultPrevented}s.event=function(e){return xe&&(e=xe(e)),e.persist=Ne,e.isPropagationStopped=Te,e.isDefaultPrevented=Re,e.nativeEvent=e};var qe,Le={configurable:!0,get:function(){return this.class}},Me=s.vnode;s.vnode=function(e){var t=e.type,n=e.props,r=n;if("string"==typeof t){for(var o in r={},n){var i=n[o];"value"===o&&"defaultValue"in n&&null==i||("defaultValue"===o&&"value"in n&&null==n.value?o="value":"download"===o&&!0===i?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+t)&&!Ae(n.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():ke.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===i&&(i=void 0),r[o]=i)}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=A(n.children).forEach((function(e){e.props.selected=-1!=r.value.indexOf(e.props.value)}))),"select"==t&&null!=r.defaultValue&&(r.value=A(n.children).forEach((function(e){e.props.selected=r.multiple?-1!=r.defaultValue.indexOf(e.props.value):r.defaultValue==e.props.value}))),e.props=r}t&&n.class!=n.className&&(Le.enumerable="className"in n,null!=n.className&&(r.class=n.className),Object.defineProperty(r,"className",Le)),e.$$typeof=De,Me&&Me(e)};var He=s.__r;s.__r=function(e){He&&He(e),qe=e.__c};var Ue={ReactCurrentDispatcher:{current:{readContext:function(e){return qe.__n[e.__c].props.value}}}};"object"==("undefined"==typeof performance?"undefined":n(performance))&&"function"==typeof performance.now&&performance.now.bind(performance);function Fe(e){return!!e&&e.$$typeof===De}var Be={useState:ne,useReducer:re,useEffect:oe,useLayoutEffect:ie,useRef:function(e){return $=5,ce((function(){return{current:e}}),[])},useImperativeHandle:function(e,t,n){$=6,ie((function(){"function"==typeof e?e(t()):e&&(e.current=t())}),null==n?n:n.concat(e))},useMemo:ce,useCallback:function(e,t){return $=8,ce((function(){return e}),t)},useContext:function(e){var t=z.context[e.__c],n=te(K++,9);return n.__c=e,t?(null==n.__&&(n.__=!0,t.sub(z)),t.props.value):e.__},useDebugValue:function(e,t){s.useDebugValue&&s.useDebugValue(t?t(e):e)},version:"16.8.0",Children:ge,render:Ce,hydrate:function(e,t,n){return V(e,t),"function"==typeof n&&n(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(B(null,e),!0)},createPortal:Ie,createElement:_,createContext:function(e,t){var n={__c:t="__cC"+v++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=[],(r={})[t]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(P)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(e){return _.bind(null,e)},cloneElement:function(e){return Fe(e)?W.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:S,isValidElement:Fe,findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:j,PureComponent:de,memo:function(e,t){function n(e){var n=this.props.ref,r=n==e.ref;return!r&&n&&(n.call?n(null):n.current=null),t?!t(this.props,e)||!r:ve(this.props,e)}function r(t){return this.shouldComponentUpdate=n,_(e,t)}return r.displayName="Memo("+(e.displayName||e.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(e){function t(t,r){var o=me({},t);return delete o.ref,e(o,(r=t.ref||r)&&("object"!=n(r)||"current"in r)?r:null)}return t.$$typeof=ye,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:S,Suspense:Oe,SuspenseList:je,lazy:function(e){var t,n,r;function o(o){if(t||(t=e()).then((function(e){n=e.default||e}),(function(e){r=e})),r)throw r;if(!n)throw t;return _(n,o)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Ue};function Ve(){return Be.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},Be.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function We(){return Be.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},Be.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var Ke=["translations"];function ze(){return ze=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Ze="Ctrl";var Ye=Be.forwardRef((function(e,t){var n=e.translations,r=void 0===n?{}:n,o=Qe(e,Ke),i=r.buttonText,c=void 0===i?"Search":i,a=r.buttonAriaLabel,u=void 0===a?"Search":a,l=Je(ne(null),2),s=l[0],f=l[1];return oe((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("⌘"):f(Ze))}),[]),Be.createElement("button",ze({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),Be.createElement("span",{className:"DocSearch-Button-Container"},Be.createElement(We,null),Be.createElement("span",{className:"DocSearch-Button-Placeholder"},c)),Be.createElement("span",{className:"DocSearch-Button-Keys"},null!==s&&Be.createElement(Be.Fragment,null,Be.createElement("kbd",{className:"DocSearch-Button-Key"},s===Ze?Be.createElement(Ve,null):s),Be.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))}));function Ge(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ht(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,c={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(pt(n),[{headers:c}]))}else e.apply(void 0,[t].concat(pt(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",gt(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",gt(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",gt(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",gt(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=vt(t,st);return[].concat(pt(e),pt(bt(ht(ht({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function Ot(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function St(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function jt(e){return jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jt(e)}function wt(e){return function(e){if(Array.isArray(e))return Et(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Et(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Et(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Et(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&Ct({onItemsChange:r,items:n,insights:a,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;c("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:a}}),n((function(e){var t=e.item,n=e.state,r=e.event;St(t)&&o({state:n,event:r,insights:a,item:t,insightsEvents:[It({eventName:"Item Selected"},ct({item:t,items:u.current}))]})})),r((function(e){var t=e.item,n=e.state,r=e.event;St(t)&&i({state:n,event:r,insights:a,item:t,insightsEvents:[It({eventName:"Item Active"},ct({item:t,items:u.current}))]})}))},onStateChange:function(e){var t=e.state;l({state:t})},__autocomplete_pluginOptions:e}}function Nt(e,t){var n=t;return{then:function(t,r){return Nt(e.then(Rt(t,n,e),Rt(r,n,e)),n)},catch:function(t){return Nt(e.catch(Rt(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),Nt(e.finally(Rt(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Tt(e){return Nt(e,{isCanceled:!1,onCancelList:[]})}function Rt(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function qt(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function Lt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mt(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(et++),plugins:o,initialState:tn({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(Gt(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:ot,onResolve:ot};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=Mt(Mt({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return Xe(e)})).then((function(e){return e.map((function(e){return tn(tn({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:tn({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function on(e){return on="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},on(e)}function cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function an(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var En,Pn,In,Dn=null,kn=(En=-1,Pn=-1,In=void 0,function(e){var t=++En;return Promise.resolve(e).then((function(e){return In&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ln(e){return Ln="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ln(e)}var Mn=["props","refresh","store"],Hn=["inputElement","formElement","panelElement"],Un=["inputElement"],Fn=["inputElement","maxLength"],Bn=["sourceIndex"],Vn=["sourceIndex"],Wn=["item","source","sourceIndex"];function Kn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function zn(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Qn(e){var t=e.props,n=e.refresh,r=e.store,o=$n(e,Mn),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function c(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return zn({onTouchStart:c,onMouseDown:c,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},$n(e,Hn))},getRootProps:function(e){return zn({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return zn({action:"",noValidate:!0,role:"search",onSubmit:function(i){var c;i.preventDefault(),t.onSubmit(zn({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(c=e.inputElement)||void 0===c||c.blur()},onReset:function(i){var c;i.preventDefault(),t.onReset(zn({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(c=e.inputElement)||void 0===c||c.focus()}},$n(e,Un))},getLabelProps:function(e){var n=e||{},r=n.sourceIndex,o=$n(n,Bn);return zn({htmlFor:"".concat(i(t.id,r),"-input"),id:"".concat(i(t.id,r),"-label")},o)},getInputProps:function(e){var i;function c(e){(t.openOnFocus||Boolean(r.getState().query))&&An(zn({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{},u=(a.inputElement,a.maxLength),l=void 0===u?512:u,s=$n(a,Fn),f=Ft(r.getState()),p=function(e){return Boolean(e&&e.match(Bt))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=null!=f&&f.itemUrl&&!p?"go":"search";return zn({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){An(zn({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=qn(e,xn);if("ArrowUp"===t.key||"ArrowDown"===t.key){var c=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},a=function(){var e=Ft(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,c=e.itemInputValue,a=e.itemUrl,u=e.source;u.onActive(Tn({event:t,item:n,itemInputValue:c,itemUrl:a,refresh:r,source:u,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?An(Tn({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(c,0)})):(o.dispatch(t.key,{}),a(),c())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var u=Ft(o.getState()),l=u.item,s=u.itemInputValue,f=u.itemUrl,p=u.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(p.onSelect(Tn({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:f,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(p.onSelect(Tn({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:f,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return p.onSelect(Tn({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),void n.navigator.navigate({itemUrl:f,item:l,state:o.getState()});An(Tn({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){p.onSelect(Tn({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i))}))}}}(zn({event:e,props:t,refresh:n,store:r},o))},onFocus:c,onBlur:ot,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||c(n)}},s)},getPanelProps:function(e){return zn({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.sourceIndex,o=$n(n,Vn);return zn({role:"listbox","aria-labelledby":"".concat(i(t.id,r),"-label"),id:"".concat(i(t.id,r),"-list")},o)},getItemProps:function(e){var c=e.item,a=e.source,u=e.sourceIndex,l=$n(e,Wn);return zn({id:"".concat(i(t.id,u),"-item-").concat(c.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===c.__autocomplete_id,onMouseMove:function(e){if(c.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",c.__autocomplete_id);var t=Ft(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,a=t.itemInputValue,u=t.itemUrl,l=t.source;l.onActive(zn({event:e,item:i,itemInputValue:a,itemUrl:u,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=a.getItemInputValue({item:c,state:r.getState()}),u=a.getItemUrl({item:c,state:r.getState()});(u?Promise.resolve():An(zn({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:n,store:r},o))).then((function(){a.onSelect(zn({event:e,item:c,itemInputValue:i,itemUrl:u,refresh:n,source:a,state:r.getState()},o))}))}},l)}}}function Zn(e){return Zn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Zn(e)}function Yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Gn(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function xr(e){var t=e.translations,n=void 0===t?{}:t,r=Cr(e,Dr),o=n.noResultsText,i=void 0===o?"No results for":o,c=n.suggestedQueryText,a=void 0===c?"Try searching for":c,u=n.reportMissingResultsText,l=void 0===u?"Believe this query should return results?":u,s=n.reportMissingResultsLinkText,f=void 0===s?"Let us know.":s,p=r.state.context.searchSuggestions;return Be.createElement("div",{className:"DocSearch-NoResults"},Be.createElement("div",{className:"DocSearch-Screen-Icon"},Be.createElement(Pr,null)),Be.createElement("p",{className:"DocSearch-Title"},i,' "',Be.createElement("strong",null,r.state.query),'"'),p&&p.length>0&&Be.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},Be.createElement("p",{className:"DocSearch-Help"},a,":"),Be.createElement("ul",null,p.slice(0,3).reduce((function(e,t){return[].concat(kr(e),[Be.createElement("li",{key:t},Be.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){r.setQuery(t.toLowerCase()+" "),r.refresh(),r.inputRef.current.focus()}},t))])}),[]))),r.getMissingResultsUrl&&Be.createElement("p",{className:"DocSearch-Help"},"".concat(l," "),Be.createElement("a",{href:r.getMissingResultsUrl({query:r.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var Nr=["hit","attribute","tagName"];function Tr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Rr(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Mr(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Hr(e){var t=e.hit,n=e.attribute,r=e.tagName;return _(void 0===r?"span":r,Rr(Rr({},Lr(e,Nr)),{},{dangerouslySetInnerHTML:{__html:Mr(t,"_snippetResult.".concat(n,".value"))||Mr(t,n)}}))}function Ur(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,i=[],c=!0,a=!1;try{for(n=n.call(e);!(c=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);c=!0);}catch(e){a=!0,o=e}finally{try{c||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Fr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fr(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n|<\/mark>)/g,Zr=RegExp(Qr.source);function Yr(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=((r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0)||{}).value;return o&&Zr.test(o)?o.replace(Qr,""):o}function Gr(){return Gr=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ro(e){var t=e.translations,n=void 0===t?{}:t,r=no(e,eo),o=n.recentSearchesTitle,i=void 0===o?"Recent":o,c=n.noRecentSearchesText,a=void 0===c?"No recent searches":c,u=n.saveRecentSearchButtonTitle,l=void 0===u?"Save this search":u,s=n.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,p=n.favoriteSearchesTitle,m=void 0===p?"Favorite":p,v=n.removeFavoriteSearchButtonTitle,d=void 0===v?"Remove this search from favorites":v;return"idle"===r.state.status&&!1===r.hasCollections?r.disableUserPersonalization?null:Be.createElement("div",{className:"DocSearch-StartScreen"},Be.createElement("p",{className:"DocSearch-Help"},a)):!1===r.hasCollections?null:Be.createElement("div",{className:"DocSearch-Dropdown-Container"},Be.createElement(Vr,to({},r,{title:i,collection:r.state.collections[0],renderIcon:function(){return Be.createElement("div",{className:"DocSearch-Hit-icon"},Be.createElement(yr,null))},renderAction:function(e){var t=e.item,n=e.runFavoriteTransition,o=e.runDeleteTransition;return Be.createElement(Be.Fragment,null,Be.createElement("div",{className:"DocSearch-Hit-action"},Be.createElement("button",{className:"DocSearch-Hit-action-button",title:l,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){r.favoriteSearches.add(t),r.recentSearches.remove(t),r.refresh()}))}},Be.createElement(wr,null))),Be.createElement("div",{className:"DocSearch-Hit-action"},Be.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){r.recentSearches.remove(t),r.refresh()}))}},Be.createElement(br,null))))}})),Be.createElement(Vr,to({},r,{title:m,collection:r.state.collections[1],renderIcon:function(){return Be.createElement("div",{className:"DocSearch-Hit-icon"},Be.createElement(wr,null))},renderAction:function(e){var t=e.item,n=e.runDeleteTransition;return Be.createElement("div",{className:"DocSearch-Hit-action"},Be.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){r.favoriteSearches.remove(t),r.refresh()}))}},Be.createElement(br,null)))}})))}var oo=["translations"];function io(){return io=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ao=Be.memo((function(e){var t=e.translations,n=void 0===t?{}:t,r=co(e,oo);if("error"===r.state.status)return Be.createElement(Ir,{translations:null==n?void 0:n.errorScreen});var o=r.state.collections.some((function(e){return e.items.length>0}));return r.state.query?!1===o?Be.createElement(xr,io({},r,{translations:null==n?void 0:n.noResultsScreen})):Be.createElement(Xr,r):Be.createElement(ro,io({},r,{hasCollections:o,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),uo=["translations"];function lo(){return lo=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function fo(e){var t=e.translations,n=void 0===t?{}:t,r=so(e,uo),o=n.resetButtonTitle,i=void 0===o?"Clear the query":o,c=n.resetButtonAriaLabel,a=void 0===c?"Clear the query":c,u=n.cancelButtonText,l=void 0===u?"Cancel":u,s=n.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,p=r.getFormProps({inputElement:r.inputRef.current}).onReset;return Be.useEffect((function(){r.autoFocus&&r.inputRef.current&&r.inputRef.current.focus()}),[r.autoFocus,r.inputRef]),Be.useEffect((function(){r.isFromSelection&&r.inputRef.current&&r.inputRef.current.select()}),[r.isFromSelection,r.inputRef]),Be.createElement(Be.Fragment,null,Be.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:p},Be.createElement("label",lo({className:"DocSearch-MagnifierLabel"},r.getLabelProps()),Be.createElement(We,null)),Be.createElement("div",{className:"DocSearch-LoadingIndicator"},Be.createElement(hr,null)),Be.createElement("input",lo({className:"DocSearch-Input",ref:r.inputRef},r.getInputProps({inputElement:r.inputRef.current,autoFocus:r.autoFocus,maxLength:64}))),Be.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":a,hidden:!r.state.query},Be.createElement(br,null))),Be.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:r.onClose},l))}var po=["_highlightResult","_snippetResult"];function mo(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function vo(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function ho(e){var t=e.key,n=e.limit,r=void 0===n?5:n,o=vo(t),i=o.getItem().slice(0,r);return{add:function(e){var t=e,n=(t._highlightResult,t._snippetResult,mo(t,po)),c=i.findIndex((function(e){return e.objectID===n.objectID}));c>-1&&i.splice(c,1),i.unshift(n),i=i.slice(0,r),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}var yo=["facetName","facetQuery"];function bo(e){var t,n="algoliasearch-client-js-".concat(e.key),r=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},o=function(){return JSON.parse(r().getItem(n)||"{}")},i=function(e){r().setItem(n,JSON.stringify(e))},a=function(){var t=e.timeToLive?1e3*e.timeToLive:null,n=o(),r=Object.fromEntries(Object.entries(n).filter((function(e){return void 0!==c(e,2)[1].timestamp})));if(i(r),t){var a=Object.fromEntries(Object.entries(r).filter((function(e){var n=c(e,2)[1],r=(new Date).getTime();return!(n.timestamp+t2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){a();var t=JSON.stringify(e);return o()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=c(e,2),r=t[0],o=t[1];return Promise.all([r,o||n.miss(r)])})).then((function(e){return c(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},r().setItem(n,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=o();delete t[JSON.stringify(e)],r().setItem(n,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){r().removeItem(n)}))}}}function go(e){var t=a(e.caches),n=t.shift();return void 0===n?{get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,n.miss(e)])})).then((function(e){return c(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,o).catch((function(){return go({caches:t}).get(e,r,o)}))},set:function(e,r){return n.set(e,r).catch((function(){return go({caches:t}).set(e,r)}))},delete:function(e){return n.delete(e).catch((function(){return go({caches:t}).delete(e)}))},clear:function(){return n.clear().catch((function(){return go({caches:t}).clear()}))}}}function _o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(n);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var c=r(),a=o&&o.miss||function(){return Promise.resolve()};return c.then((function(e){return a(e)})).then((function(){return c}))},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Oo(e){for(var t=e.length-1;t>0;t--){var n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function So(e,t){return t?(Object.keys(t).forEach((function(n){e[n]=t[n](e)})),e):e}function jo(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}var Io={Read:1,Write:2,Any:3},Do=1,ko=2,Ao=3,Co=12e4;function xo(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Do;return t(t({},e),{},{status:n,lastUpdate:Date.now()})}function No(e){return"string"==typeof e?{protocol:"https",url:e,accept:Io.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Io.Any}}var To="GET",Ro="POST";function qo(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(xo(t))}))}))).then((function(e){var n=e.filter((function(e){return function(e){return e.status===Do||Date.now()-e.lastUpdate>Co}(e)})),r=e.filter((function(e){return function(e){return e.status===Ao&&Date.now()-e.lastUpdate<=Co}(e)})),o=[].concat(a(n),a(r));return{getTimeout:function(e,t){return(0===r.length&&0===e?1:r.length+3+e)*t},statelessHosts:o.length>0?o.map((function(e){return No(e)})):t}}))}function Lo(e,n,r,o){var i=[],c=function(e,n){if(e.method===To||void 0===e.data&&void 0===n.data)return;var r=Array.isArray(e.data)?e.data:t(t({},e.data),n.data);return JSON.stringify(r)}(r,o),u=function(e,n){var r=t(t({},e.headers),n.headers),o={};return Object.keys(r).forEach((function(e){var t=r[e];o[e.toLowerCase()]=t})),o}(e,o),l=r.method,s=r.method!==To?{}:t(t({},r.data),o.data),f=t(t(t({"x-algolia-agent":e.userAgent.value},e.queryParameters),s),o.queryParameters),p=0,m=function t(n,a){var s=n.pop();if(void 0===s)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Fo(i)};var m={data:c,headers:u,method:l,url:Ho(s,r.path,f),connectTimeout:a(p,e.timeouts.connect),responseTimeout:a(p,o.timeout)},v=function(e){var t={request:m,response:e,host:s,triesLeft:n.length};return i.push(t),t},d={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(r){var o=v(r);return r.isTimedOut&&p++,Promise.all([e.logger.info("Retryable failure",Bo(o)),e.hostsCache.set(s,xo(s,r.isTimedOut?Ao:ko))]).then((function(){return t(n,a)}))},onFail:function(e){throw v(e),function(e,t){var n=e.content,r=e.status,o=n;try{o=JSON.parse(n).message}catch(e){}return function(e,t,n){return{name:"ApiError",message:e,status:t,transporterStackTrace:n}}(o,r,t)}(e,Fo(i))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,n=e.status;return!t&&0==~~n}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,d)}))};return qo(e.hostsCache,n).then((function(e){return m(a(e.statelessHosts).reverse(),e.getTimeout)}))}function Mo(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}function Ho(e,t,n){var r=Uo(n),o="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return r.length&&(o+="?".concat(r)),o}function Uo(e){return Object.keys(e).map((function(t){return jo("%s=%s",t,(n=e[t],"[object Object]"===Object.prototype.toString.call(n)||"[object Array]"===Object.prototype.toString.call(n)?JSON.stringify(e[t]):e[t]));var n})).join("&")}function Fo(e){return e.map((function(e){return Bo(e)}))}function Bo(e){var n=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return t(t({},e),{},{request:t(t({},e.request),{},{headers:t(t({},e.request.headers),n)})})}var Vo=function(e){var n=e.appId,r=function(e,t,n){var r={"x-algolia-api-key":n,"x-algolia-application-id":t};return{headers:function(){return e===Eo.WithinHeaders?r:{}},queryParameters:function(){return e===Eo.WithinQueryParameters?r:{}}}}(void 0!==e.authMode?e.authMode:Eo.WithinHeaders,n,e.apiKey),o=function(e){var t=e.hostsCache,n=e.logger,r=e.requester,o=e.requestsCache,i=e.responsesCache,a=e.timeouts,u=e.userAgent,l=e.hosts,s=e.queryParameters,f={hostsCache:t,logger:n,requester:r,requestsCache:o,responsesCache:i,timeouts:a,userAgent:u,headers:e.headers,queryParameters:s,hosts:l.map((function(e){return No(e)})),read:function(e,t){var n=Po(t,f.timeouts.read),r=function(){return Lo(f,f.hosts.filter((function(e){return 0!=(e.accept&Io.Read)})),e,n)};if(!0!==(void 0!==n.cacheable?n.cacheable:e.cacheable))return r();var o={request:e,mappedRequestOptions:n,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(function(){return f.requestsCache.get(o,(function(){return f.requestsCache.set(o,r()).then((function(e){return Promise.all([f.requestsCache.delete(o),e])}),(function(e){return Promise.all([f.requestsCache.delete(o),Promise.reject(e)])})).then((function(e){var t=c(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(o,e)}})},write:function(e,t){return Lo(f,f.hosts.filter((function(e){return 0!=(e.accept&Io.Write)})),e,Po(t,f.timeouts.write))}};return f}(t(t({hosts:[{url:"".concat(n,"-dsn.algolia.net"),accept:Io.Read},{url:"".concat(n,".algolia.net"),accept:Io.Write}].concat(Oo([{url:"".concat(n,"-1.algolianet.com")},{url:"".concat(n,"-2.algolianet.com")},{url:"".concat(n,"-3.algolianet.com")}]))},e),{},{headers:t(t(t({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:t(t({},r.queryParameters()),e.queryParameters)})),i={transporter:o,appId:n,addAlgoliaAgent:function(e,t){o.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then((function(){}))}};return So(i,e.methods)},Wo=function(e){return function(t,n){return t.method===To?e.transporter.read(t,n):e.transporter.write(t,n)}},Ko=function(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={transporter:e.transporter,appId:e.appId,indexName:t};return So(r,n.methods)}},zo=function(e){return function(n,r){var o=n.map((function(e){return t(t({},e),{},{params:Uo(e.params||{})})}));return e.transporter.read({method:Ro,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)}},Jo=function(e){return function(n,r){return Promise.all(n.map((function(n){var o=n.params,c=o.facetName,a=o.facetQuery,u=i(o,yo);return Ko(e)(n.indexName,{methods:{searchForFacetValues:Zo}}).searchForFacetValues(c,a,t(t({},r),u))})))}},$o=function(e){return function(t,n,r){return e.transporter.read({method:Ro,path:jo("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:n},cacheable:!0},r)}},Qo=function(e){return function(t,n){return e.transporter.read({method:Ro,path:jo("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n)}},Zo=function(e){return function(t,n,r){return e.transporter.read({method:Ro,path:jo("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},r)}},Yo=1,Go=2,Xo=3;function ei(e,n,r){var o,i={appId:e,apiKey:n,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return n.setRequestHeader(t,e.headers[t])}));var r,o=function(e,r){return setTimeout((function(){n.abort(),t({status:0,content:r,isTimedOut:!0})}),1e3*e)},i=o(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(i),r=o(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(i),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(i),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))}},logger:(o=Xo,{debug:function(e,t){return Yo>=o&&console.debug(e,t),Promise.resolve()},info:function(e,t){return Go>=o&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:_o(),requestsCache:_o({serializable:!1}),hostsCache:go({caches:[bo({key:"".concat(wo,"-").concat(e)}),_o()]}),userAgent:Mo(wo).add({segment:"Browser",version:"lite"}),authMode:Eo.WithinQueryParameters};return Vo(t(t(t({},i),r),{},{methods:{search:zo,searchForFacetValues:Jo,multipleQueries:zo,multipleSearchForFacetValues:Jo,customRequest:Wo,initIndex:function(e){return function(t){return Ko(e)(t,{methods:{search:Qo,searchForFacetValues:Zo,findAnswers:$o}})}}}}))}ei.version=wo;var ti="3.5.2";var ni=["footer","searchBox"];function ri(){return ri=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function si(e){var t=e.appId,n=e.apiKey,r=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,c=e.searchParameters,a=e.maxResultsPerGroup,u=e.onClose,l=void 0===u?$r:u,s=e.transformItems,f=void 0===s?zr:s,p=e.hitComponent,m=void 0===p?dr:p,v=e.resultsFooterComponent,d=void 0===v?function(){return null}:v,h=e.navigator,y=e.initialScrollY,b=void 0===y?0:y,g=e.transformSearchClient,_=void 0===g?zr:g,O=e.disableUserPersonalization,S=void 0!==O&&O,j=e.initialQuery,w=void 0===j?"":j,E=e.translations,P=void 0===E?{}:E,I=e.getMissingResultsUrl,D=e.insights,k=void 0!==D&&D,A=P.footer,C=P.searchBox,x=li(P,ni),N=ai(Be.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=N[0],R=N[1],q=Be.useRef(null),L=Be.useRef(null),M=Be.useRef(null),H=Be.useRef(null),U=Be.useRef(null),F=Be.useRef(10),B=Be.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,V=Be.useRef(w||B).current,W=function(e,t,n){return Be.useMemo((function(){var r=ei(e,t);return r.addAlgoliaAgent("docsearch",ti),!1===/docsearch.js \(.*\)/.test(r.transporter.userAgent.value)&&r.addAlgoliaAgent("docsearch-react",ti),n(r)}),[e,t,n])}(t,n,_),K=Be.useRef(ho({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(r),limit:10})).current,z=Be.useRef(ho({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(r),limit:0===K.getAll().length?7:4})).current,J=Be.useCallback((function(e){if(!S){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===K.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&z.add(t)}}),[K,z,S]),$=Be.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}}),[T.context.algoliaInsightsPlugin]),Q=Be.useMemo((function(){return fr({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:k,navigator:h,onStateChange:function(e){R(e.state)},getSources:function(e){var o=e.query,i=e.state,u=e.setContext,s=e.setStatus;if(!o)return S?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),Jr(n)||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return z.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),Jr(n)||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return K.getAll()}}];var p=Boolean(k);return W.search([{query:o,indexName:r,params:ii({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(F.current),"hierarchy.lvl2:".concat(F.current),"hierarchy.lvl3:".concat(F.current),"hierarchy.lvl4:".concat(F.current),"hierarchy.lvl5:".concat(F.current),"hierarchy.lvl6:".concat(F.current),"content:".concat(F.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:p},c)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results[0],c=o.hits,s=o.nbHits,m=Kr(c,(function(e){return Yr(e)}),a);i.context.searchSuggestions.length0&&(G(),U.current&&U.current.focus())}),[V,G]),Be.useEffect((function(){function e(){if(L.current){var e=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),Be.createElement("div",ri({ref:q},Y({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&l()}}),Be.createElement("div",{className:"DocSearch-Modal",ref:L},Be.createElement("header",{className:"DocSearch-SearchBar",ref:M},Be.createElement(fo,ri({},Q,{state:T,autoFocus:0===V.length,inputRef:U,isFromSelection:Boolean(V)&&V===B,translations:C,onClose:l}))),Be.createElement("div",{className:"DocSearch-Dropdown",ref:H},Be.createElement(ao,ri({},Q,{indexName:r,state:T,hitComponent:m,resultsFooterComponent:d,disableUserPersonalization:S,recentSearches:z,favoriteSearches:K,inputRef:U,translations:x,getMissingResultsUrl:I,onItemClick:function(e,t){$(e),J(e),Jr(t)||l()}}))),Be.createElement("footer",{className:"DocSearch-Footer"},Be.createElement(vr,{translations:A}))))}function fi(){return fi=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:window;return"string"==typeof e?t.document.querySelector(e):e}(e.container,e.environment))}})); +/*! @docsearch/js 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).docsearch=t()}(this,(function(){"use strict";function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;t2&&(c.children=arguments.length>3?n.call(arguments,2):r),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===c[a]&&(c[a]=e.defaultProps[a]);return b(e,c,o,i,null)}function b(e,t,n,i,a){var c={type:e,props:t,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==a?++o:a,__i:-1,__u:0};return null==a&&null!=r.vnode&&r.vnode(c),c}function S(e){return e.children}function O(e,t){this.props=e,this.context=t}function w(e,t){if(null==t)return e.__?w(e.__,e.__i+1):null;for(var n;tt&&i.sort(u));P.__r=0}function I(e,t,n,r,o,i,a,c,u,l,s){var f,p,h,y,_,g=r&&r.__k||v,O=t.length;for(n.__d=u,function(e,t,n){var r,o,i,a,c,u=t.length,l=n.length,s=l,f=0;for(e.__k=[],r=0;r0?b(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=e,o.__b=e.__b+1,i=null,-1!==(c=o.__i=C(o,n,a,s))&&(s--,(i=n[c])&&(i.__u|=131072)),null==i||null===i.__v?(-1==c&&f--,"function"!=typeof o.type&&(o.__u|=65536)):c!==a&&(c==a-1?f--:c==a+1?f++:(c>a?f--:f++,o.__u|=65536))):o=e.__k[r]=null;if(s)for(r=0;r(null==u||131072&u.__u?0:1))for(;a>=0||c=0){if((u=t[a])&&!(131072&u.__u)&&o==u.key&&i===u.type)return a;a--}if(c2&&(u.children=arguments.length>3?n.call(arguments,2):r),b(e.type,u,o||e.key,i||e.ref,null)}n=v.slice,r={__e:function(e,t,n,r){for(var o,i,a;t=t.__;)if((o=t.__c)&&!o.__)try{if((i=o.constructor)&&null!=i.getDerivedStateFromError&&(o.setState(i.getDerivedStateFromError(e)),a=o.__d),null!=o.componentDidCatch&&(o.componentDidCatch(e,r||{}),a=o.__d),a)return o.__E=o}catch(t){e=t}throw e}},o=0,O.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=y({},this.state),"function"==typeof e&&(e=e(y({},n),this.props)),e&&y(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),j(this))},O.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),j(this))},O.prototype.render=S,i=[],c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,u=function(e,t){return e.__v.__b-t.__v.__b},P.__r=0,l=0,s=N(!1),f=N(!0),p=0;var V,K,W,z,J=0,Q=[],$=r,Z=$.__b,G=$.__r,Y=$.diffed,X=$.__c,ee=$.unmount,te=$.__;function ne(e,t){$.__h&&$.__h(K,e,J||t),J=0;var n=K.__H||(K.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function re(e){return J=1,oe(be,e)}function oe(e,t,n){var r=ne(V++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):be(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);t!==n&&(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=K,!K.u)){var o=function(e,t,n){if(!r.__c.__H)return!0;var o=r.__c.__H.__.filter((function(e){return!!e.__c}));if(o.every((function(e){return!e.__N})))return!i||i.call(this,e,t,n);var a=!1;return o.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(a=!0)}})),!(!a&&r.__c.props===e)&&(!i||i.call(this,e,t,n))};K.u=!0;var i=K.shouldComponentUpdate,a=K.componentWillUpdate;K.componentWillUpdate=function(e,t,n){if(this.__e){var r=i;i=void 0,o(e,t,n),i=r}a&&a.call(this,e,t,n)},K.shouldComponentUpdate=o}return r.__N||r.__}function ie(e,t){var n=ne(V++,3);!$.__s&&ge(n.__H,t)&&(n.__=e,n.i=t,K.__H.__h.push(n))}function ae(e,t){var n=ne(V++,4);!$.__s&&ge(n.__H,t)&&(n.__=e,n.i=t,K.__h.push(n))}function ce(e){return J=5,le((function(){return{current:e}}),[])}function ue(e,t,n){J=6,ae((function(){return"function"==typeof e?(e(t()),function(){return e(null)}):e?(e.current=t(),function(){return e.current=null}):void 0}),null==n?n:n.concat(e))}function le(e,t){var n=ne(V++,7);return ge(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function se(e,t){return J=8,le((function(){return e}),t)}function fe(e){var t=K.context[e.__c],n=ne(V++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(K)),t.props.value):e.__}function pe(e,t){$.useDebugValue&&$.useDebugValue(t?t(e):e)}function me(){var e=ne(V++,11);if(!e.__){for(var t=K.__v;null!==t&&!t.__m&&null!==t.__;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__}function ve(){for(var e;e=Q.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ye),e.__H.__h.forEach(_e),e.__H.__h=[]}catch(t){e.__H.__h=[],$.__e(t,e.__v)}}$.__b=function(e){K=null,Z&&Z(e)},$.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),te&&te(e,t)},$.__r=function(e){G&&G(e),V=0;var t=(K=e.__c).__H;t&&(W===K?(t.__h=[],K.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.i=e.__N=void 0}))):(t.__h.forEach(ye),t.__h.forEach(_e),t.__h=[],V=0)),W=K},$.diffed=function(e){Y&&Y(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Q.push(t)&&z===$.requestAnimationFrame||((z=$.requestAnimationFrame)||de)(ve)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.i=void 0}))),W=K=null},$.__c=function(e,t){t.some((function(e){try{e.__h.forEach(ye),e.__h=e.__h.filter((function(e){return!e.__||_e(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],$.__e(n,e.__v)}})),X&&X(e,t)},$.unmount=function(e){ee&&ee(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{ye(e)}catch(e){t=e}})),n.__H=void 0,t&&$.__e(t,n.__v))};var he="function"==typeof requestAnimationFrame;function de(e){var t,n=function(){clearTimeout(r),he&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,100);he&&(t=requestAnimationFrame(n))}function ye(e){var t=K,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),K=t}function _e(e){var t=K;e.__c=e.__(),K=t}function ge(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function be(e,t){return"function"==typeof t?t(e):t}function Se(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var r in t)if("__source"!==r&&e[r]!==t[r])return!0;return!1}function Oe(e,t){this.props=e,this.context=t}(Oe.prototype=new O).isPureReactComponent=!0,Oe.prototype.shouldComponentUpdate=function(e,t){return Se(this.props,e)||Se(this.state,t)};var we=r.__b;r.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),we&&we(e)};var Ee="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var je=function(e,t){return null==e?null:D(D(e).map(t))},Pe={map:je,forEach:je,count:function(e){return e?D(e).length:0},only:function(e){var t=D(e);if(1!==t.length)throw"Children.only";return t[0]},toArray:D},Ie=r.__e;r.__e=function(e,t,n,r){if(e.then)for(var o,i=t;i=i.__;)if((o=i.__c)&&o.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),o.__c(e,t);Ie(e,t,n,r)};var ke=r.unmount;function De(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),e.__c.__H=null),null!=(e=function(e,t){for(var n in t)e[n]=t[n];return e}({},e)).__c&&(e.__c.__P===n&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map((function(e){return De(e,t,n)}))),e}function Ce(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map((function(e){return Ce(e,t,n)})),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function xe(){this.__u=0,this.t=null,this.__b=null}function Ae(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function Ne(){this.u=null,this.o=null}r.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),ke&&ke(e)},(xe.prototype=new O).__c=function(e,t){var n=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var o=Ae(r.__v),i=!1,a=function(){i||(i=!0,n.__R=null,o?o(c):c())};n.__R=a;var c=function(){if(! --r.__u){if(r.state.__a){var e=r.state.__a;r.__v.__k[0]=Ce(e,e.__c.__P,e.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(a,a)},xe.prototype.componentWillUnmount=function(){this.t=[]},xe.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=De(this.__b,n,r.__O=r.__P)}this.__b=null}var o=t.__a&&g(S,null,e.fallback);return o&&(o.__u&=-33),[g(S,null,t.__a?null:e.children),o]};var Te=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(e)}}),U(g(Re,{context:t.context},e.__v),t.l)}function qe(e,t){var n=g(Le,{__v:e,i:t});return n.containerInfo=t,n}(Ne.prototype=new O).__a=function(e){var t=this,n=Ae(t.__v),r=t.o.get(e);return r[0]++,function(o){var i=function(){t.props.revealOrder?(r.push(o),Te(t,e,r)):o()};n?n(i):i()}},Ne.prototype.render=function(e){this.u=null,this.o=new Map;var t=D(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},Ne.prototype.componentDidUpdate=Ne.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){Te(e,n,t)}))};var Me="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,He=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Ue=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Fe=/[A-Z0-9]/g,Be="undefined"!=typeof document,Ve=function(e){return("undefined"!=typeof Symbol&&"symbol"==t(Symbol())?/fil|che|rad/:/fil|che|ra/).test(e)};function Ke(e,t,n){return null==t.__k&&(t.textContent=""),U(e,t),"function"==typeof n&&n(),e?e.__c:null}O.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(O.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var We=r.event;function ze(){}function Je(){return this.cancelBubble}function Qe(){return this.defaultPrevented}r.event=function(e){return We&&(e=We(e)),e.persist=ze,e.isPropagationStopped=Je,e.isDefaultPrevented=Qe,e.nativeEvent=e};var $e,Ze={enumerable:!1,configurable:!0,get:function(){return this.class}},Ge=r.vnode;r.vnode=function(e){"string"==typeof e.type&&function(e){var t=e.props,n=e.type,r={},o=-1===n.indexOf("-");for(var i in t){var a=t[i];if(!("value"===i&&"defaultValue"in t&&null==a||Be&&"children"===i&&"noscript"===n||"class"===i||"className"===i)){var c=i.toLowerCase();"defaultValue"===i&&"value"in t&&null==t.value?i="value":"download"===i&&!0===a?a="":"translate"===c&&"no"===a?a=!1:"o"===c[0]&&"n"===c[1]?"ondoubleclick"===c?i="ondblclick":"onchange"!==c||"input"!==n&&"textarea"!==n||Ve(t.type)?"onfocus"===c?i="onfocusin":"onblur"===c?i="onfocusout":Ue.test(i)&&(i=c):c=i="oninput":o&&He.test(i)?i=i.replace(Fe,"-$&").toLowerCase():null===a&&(a=void 0),"oninput"===c&&r[i=c]&&(i="oninputCapture"),r[i]=a}}"select"==n&&r.multiple&&Array.isArray(r.value)&&(r.value=D(t.children).forEach((function(e){e.props.selected=-1!=r.value.indexOf(e.props.value)}))),"select"==n&&null!=r.defaultValue&&(r.value=D(t.children).forEach((function(e){e.props.selected=r.multiple?-1!=r.defaultValue.indexOf(e.props.value):r.defaultValue==e.props.value}))),t.class&&!t.className?(r.class=t.class,Object.defineProperty(r,"className",Ze)):(t.className&&!t.class||t.class&&t.className)&&(r.class=r.className=t.className),e.props=r}(e),e.$$typeof=Me,Ge&&Ge(e)};var Ye=r.__r;r.__r=function(e){Ye&&Ye(e),$e=e.__c};var Xe=r.diffed;r.diffed=function(e){Xe&&Xe(e);var t=e.props,n=e.__e;null!=n&&"textarea"===e.type&&"value"in t&&t.value!==n.value&&(n.value=null==t.value?"":t.value),$e=null};var et={ReactCurrentDispatcher:{current:{readContext:function(e){return $e.__n[e.__c].props.value},useCallback:se,useContext:fe,useDebugValue:pe,useDeferredValue:rt,useEffect:ie,useId:me,useImperativeHandle:ue,useInsertionEffect:it,useLayoutEffect:ae,useMemo:le,useReducer:oe,useRef:ce,useState:re,useSyncExternalStore:at,useTransition:ot}}};function tt(e){return!!e&&e.$$typeof===Me}function nt(e){e()}function rt(e){return e}function ot(){return[!1,nt]}var it=ae;function at(e,t){var n=t(),r=re({h:{__:n,v:t}}),o=r[0].h,i=r[1];return ae((function(){o.__=n,o.v=t,ct(o)&&i({h:o})}),[e,n,t]),ie((function(){return ct(o)&&i({h:o}),e((function(){ct(o)&&i({h:o})}))}),[e]),n}function ct(e){var t,n,r=e.v,o=e.__;try{var i=r();return!((t=o)===(n=i)&&(0!==t||1/t==1/n)||t!=t&&n!=n)}catch(e){return!0}}var ut={useState:re,useId:me,useReducer:oe,useEffect:ie,useLayoutEffect:ae,useInsertionEffect:it,useTransition:ot,useDeferredValue:rt,useSyncExternalStore:at,startTransition:nt,useRef:ce,useImperativeHandle:ue,useMemo:le,useCallback:se,useContext:fe,useDebugValue:pe,version:"18.3.1",Children:Pe,render:Ke,hydrate:function(e,t,n){return F(e,t),"function"==typeof n&&n(),e?e.__c:null},unmountComponentAtNode:function(e){return!!e.__k&&(U(null,e),!0)},createPortal:qe,createElement:g,createContext:function(e,t){var n={__c:t="__cC"+p++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,r;return this.getChildContext||(n=new Set,(r={})[t]=this,this.getChildContext=function(){return r},this.componentWillUnmount=function(){n=null},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.forEach((function(e){e.__e=!0,j(e)}))},this.sub=function(e){n.add(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n&&n.delete(e),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n},createFactory:function(e){return g.bind(null,e)},cloneElement:function(e){return tt(e)?B.apply(null,arguments):e},createRef:function(){return{current:null}},Fragment:S,isValidElement:tt,isElement:tt,isFragment:function(e){return tt(e)&&e.type===S},isMemo:function(e){return!!e&&!!e.displayName&&("string"==typeof e.displayName||e.displayName instanceof String)&&e.displayName.startsWith("Memo(")},findDOMNode:function(e){return e&&(e.base||1===e.nodeType&&e)||null},Component:O,PureComponent:Oe,memo:function(e,t){function n(e){var n=this.props.ref,r=n==e.ref;return!r&&n&&(n.call?n(null):n.current=null),t?!t(this.props,e)||!r:Se(this.props,e)}function r(t){return this.shouldComponentUpdate=n,g(e,t)}return r.displayName="Memo("+(e.displayName||e.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(e){function t(t){if(!("ref"in t))return e(t,null);var n=t.ref;delete t.ref;var r=e(t,n);return t.ref=n,r}return t.$$typeof=Ee,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t},flushSync:function(e,t){return e(t)},unstable_batchedUpdates:function(e,t){return e(t)},StrictMode:S,Suspense:xe,SuspenseList:Ne,lazy:function(e){var t,n,r;function o(o){if(t||(t=e()).then((function(e){n=e.default||e}),(function(e){r=e})),r)throw r;if(!n)throw t;return g(n,o)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:et};function lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=o.call(a,"catchLoc"),l=o.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),y}},n}function Et(e,t){return Et=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Et(e,t)}function jt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,c=[],u=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,t)||It(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pt(e){return function(e){if(Array.isArray(e))return lt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||It(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function It(e,t){if(e){if("string"==typeof e)return lt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?lt(e,t):void 0}}function kt(e){var t="function"==typeof Map?new Map:void 0;return kt=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(gt())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var o=new(e.bind.apply(e,r));return n&&Et(o,n.prototype),o}(e,arguments,yt(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Et(n,e)},kt(e)}function Dt(){return ut.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},ut.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function Ct(){return ut.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},ut.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var xt=["translations"],At="Ctrl",Nt=ut.forwardRef((function(e,t){var n=e.translations,r=void 0===n?{}:n,o=Ot(e,xt),i=r.buttonText,a=void 0===i?"Search":i,c=r.buttonAriaLabel,u=void 0===c?"Search":c,l=jt(re(null),2),s=l[0],f=l[1];ie((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("⌘"):f(At))}),[]);var p=jt(s===At?[At,"Ctrl",ut.createElement(Dt,null)]:["Meta","Command",s],3),m=p[0],v=p[1],h=p[2];return ut.createElement("button",dt({type:"button",className:"DocSearch DocSearch-Button","aria-label":"".concat(u," (").concat(v,"+K)")},o,{ref:t}),ut.createElement("span",{className:"DocSearch-Button-Container"},ut.createElement(Ct,null),ut.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),ut.createElement("span",{className:"DocSearch-Button-Keys"},null!==s&&ut.createElement(ut.Fragment,null,ut.createElement(Tt,{reactsToKey:m},h),ut.createElement(Tt,{reactsToKey:"k"},"K"))))}));function Tt(e){var t=e.reactsToKey,n=e.children,r=jt(re(!1),2),o=r[0],i=r[1];return ie((function(){if(t)return window.addEventListener("keydown",e),window.addEventListener("keyup",n),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",n)};function e(e){e.key===t&&i(!0)}function n(e){e.key!==t&&"Meta"!==e.key||i(!1)}}),[t]),ut.createElement("kbd",{className:o?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}function Rt(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),i=0;ie.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Yt(e){for(var t=1;t=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(Qt(n),[{headers:a}]))}else e.apply(void 0,[t].concat(Qt(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",en(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",en(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",en(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",en(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=Zt(t,zt);return[].concat(Qt(e),Qt(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function nn(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function rn(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function on(e){return on="function"==typeof Symbol&&"symbol"==t(Symbol.iterator)?function(e){return t(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":t(e)},on(e)}function an(e){return function(e){if(Array.isArray(e))return cn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return cn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?cn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&mn({onItemsChange:o,items:n,insights:l,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive,o=!1;function s(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:ln(ln({},c?{clickAnalytics:!0}:{}),e?{userToken:dn(e)}:{}),insights:l}})}u("addAlgoliaAgent","insights-plugin"),s(),u("onUserTokenChange",(function(e){o||s(e)})),u("getUserToken",null,(function(e,t){o||s(t)})),u("onAuthenticatedUserTokenChange",(function(e){e?(o=!0,s(e)):(o=!1,u("getUserToken",null,(function(e,t){return s(t)})))})),u("getAuthenticatedUserToken",null,(function(e,t){t&&(o=!0,s(t))})),n((function(e){var t=e.item,n=e.state,r=e.event,o=e.source;rn(t)&&i({state:n,event:r,insights:l,item:t,insightsEvents:[ln({eventName:"Item Selected"},Vt({item:t,items:o.getItems().filter(rn)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;rn(t)&&a({state:r,event:o,insights:l,item:t,insightsEvents:[ln({eventName:"Item Active"},Vt({item:t,items:n.getItems().filter(rn)}))]})}))},onStateChange:function(e){var t=e.state;f({state:t})},__autocomplete_pluginOptions:e}}function hn(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(an(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],an(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function dn(e){return"number"==typeof e?e.toString():e}function yn(e,t){var n=t;return{then:function(t,r){return yn(e.then(gn(t,n,e),gn(r,n,e)),n)},catch:function(t){return yn(e.catch(gn(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),yn(e.finally(gn(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function _n(e){return yn(e,{isCanceled:!1,onCancelList:[]})}function gn(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function bn(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function Sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function On(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(qt++),plugins:o,initialState:Hn({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(function(e){return function(e){if(Array.isArray(e))return qn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return qn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qn(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:Ft,onResolve:Ft};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=On(On({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return Lt(e)})).then((function(e){return e.map((function(e){return Hn(Hn({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Hn({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Bn(e){return Bn="function"==typeof Symbol&&"symbol"==t(Symbol.iterator)?function(e){return t(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":t(e)},Bn(e)}function Vn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Kn(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,tr);ur&&o.environment.clearTimeout(ur);var l=u.setCollections,s=u.setIsOpen,f=u.setQuery,p=u.setActiveItemId,m=u.setStatus,v=u.setContext;if(f(i),p(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var h,d=c.getState().collections.map((function(e){return rr(rr({},e),{},{items:[]})}));m("idle"),l(d),s(null!==(h=r.isOpen)&&void 0!==h?h:o.shouldPanelOpen({state:c.getState()}));var y=_n(lr(d).then((function(){return Promise.resolve()})));return c.pendingRequests.add(y)}m("loading"),ur=o.environment.setTimeout((function(){m("stalled")}),o.stallThreshold);var _=_n(lr(o.getSources(rr({query:i,refresh:a,state:c.getState()},u)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(rr({query:i,refresh:a,state:c.getState()},u))).then((function(t){return function(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(Zn(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return Qn(Qn({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?Qn(Qn({},n),{},{params:Qn(Qn({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}(t,e.sourceId,c.getState())}))}))).then(Xn).then((function(t){var n,r=t.some((function(e){return function(e){return!Array.isArray(e)&&Boolean(null==e?void 0:e._automaticInsights)}(e.items)}));return r&&v({algoliaInsightsPlugin:rr(rr({},(null===(n=c.getState().context)||void 0===n?void 0:n.algoliaInsightsPlugin)||{}),{},{__automaticInsights:r})}),function(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),a=o[0].transformResponse,c=a?a({results:r=i,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:c,state:n.getState()}),c.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:c}}))}(t,e,c)})).then((function(e){return function(e){var t=e.props,n=e.state,r=e.collections.reduce((function(e,t){return Kn(Kn({},e),{},Wn({},t.source.sourceId,Kn(Kn({},t.source),{},{getItems:function(){return Lt(t.items)}})))}),{}),o=t.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:r,state:n}).sourcesBySourceId;return Lt(t.reshape({sourcesBySourceId:o,sources:Object.values(o),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:c.getState()})}))})))).then((function(e){var n;m("idle"),l(e);var f=o.shouldPanelOpen({state:c.getState()});s(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!i&&f||f);var p=jn(c.getState());if(null!==c.getState().activeItemId&&p){var v=p.item,h=p.itemInputValue,d=p.itemUrl,y=p.source;y.onActive(rr({event:t,item:v,itemInputValue:h,itemUrl:d,refresh:a,source:y,state:c.getState()},u))}})).finally((function(){m("idle"),ur&&o.environment.clearTimeout(ur)}));return c.pendingRequests.add(_)}function fr(e){return fr="function"==typeof Symbol&&"symbol"==t(Symbol.iterator)?function(e){return t(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":t(e)},fr(e)}var pr=["event","props","refresh","store"];function mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vr(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ir(e){var t=e.props,n=e.refresh,r=e.store,o=Pr(e,yr);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return(n=t)===(r=e.target)||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return Er({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},Pr(e,_r))},getRootProps:function(e){return Er({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Pn(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Pn(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,Er({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(Er({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(Er({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},Pr(e,gr))},getLabelProps:function(e){return Er({htmlFor:Pn(t.id,"input"),id:Pn(t.id,"label")},e)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(r.getState().query))&&sr(Er({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var c=e||{};c.inputElement;var u=c.maxLength,l=void 0===u?512:u,s=Pr(c,br),f=jn(r.getState()),p=function(e){return Boolean(e&&e.match(In))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=t.enterKeyHint||(null!=f&&f.itemUrl&&!p?"go":"search");return Er({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?Pn(t.id,"item-".concat(r.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Pn(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Pn(t.id,"label"),value:r.getState().completion||r.getState().query,id:Pn(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&kn(e).isComposing?o.setQuery(i):sr(Er({event:e,props:t,query:i.slice(0,l),refresh:n,store:r},o))},onCompositionEnd:function(e){sr(Er({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){kn(e).isComposing||function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,pr);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=jn(o.getState()),t=n.environment.document.getElementById(Pn(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},c=function(){var e=jn(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,a=e.itemInputValue,c=e.itemUrl,u=e.source;u.onActive(vr({event:t,item:n,itemInputValue:a,itemUrl:c,refresh:r,source:u,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?sr(vr({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var u=jn(o.getState()),l=u.item,s=u.itemInputValue,f=u.itemUrl,p=u.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(p.onSelect(vr({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:f,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(p.onSelect(vr({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:f,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return p.onSelect(vr({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),void n.navigator.navigate({itemUrl:f,item:l,state:o.getState()});sr(vr({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){p.onSelect(vr({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i))}))}}}(Er({event:e,props:t,refresh:n,store:r},o))},onFocus:a,onBlur:Ft,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||a(n)}},s)},getPanelProps:function(e){return Er({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=Pr(n,Sr);return Er({role:"listbox","aria-labelledby":Pn(t.id,"label"),id:Pn(t.id,"list",r)},o)},getItemProps:function(e){var i=e.item,a=e.source,c=Pr(e,Or);return Er({id:Pn(t.id,"item-".concat(i.__autocomplete_id),a),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=jn(r.getState());if(null!==r.getState().activeItemId&&t){var a=t.item,c=t.itemInputValue,u=t.itemUrl,l=t.source;l.onActive(Er({event:e,item:a,itemInputValue:c,itemUrl:u,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var c=a.getItemInputValue({item:i,state:r.getState()}),u=a.getItemUrl({item:i,state:r.getState()});(u?Promise.resolve():sr(Er({event:e,nextState:{isOpen:!1},props:t,query:c,refresh:n,store:r},o))).then((function(){a.onSelect(Er({event:e,item:i,itemInputValue:c,itemUrl:u,refresh:n,source:a,state:r.getState()},o))}))}},c)}}}function kr(e){return kr="function"==typeof Symbol&&"symbol"==t(Symbol.iterator)?function(e){return t(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":t(e)},kr(e)}function Dr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Cr(e){for(var t=1;t0&&ut.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},ut.createElement("p",{className:"DocSearch-Help"},c,":"),ut.createElement("ul",null,p.slice(0,3).reduce((function(e,t){return[].concat(Pt(e),[ut.createElement("li",{key:t},ut.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){r.setQuery(t.toLowerCase()+" "),r.refresh(),r.inputRef.current.focus()}},t))])}),[]))),r.getMissingResultsUrl&&ut.createElement("p",{className:"DocSearch-Help"},"".concat(l," "),ut.createElement("a",{href:r.getMissingResultsUrl({query:r.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var uo=["hit","attribute","tagName"];function lo(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function so(e){var t=e.hit,n=e.attribute,r=e.tagName;return g(void 0===r?"span":r,St(St({},Ot(e,uo)),{},{dangerouslySetInnerHTML:{__html:lo(t,"_snippetResult.".concat(n,".value"))||lo(t,n)}}))}function fo(e){return e.collection&&0!==e.collection.items.length?ut.createElement("section",{className:"DocSearch-Hits"},ut.createElement("div",{className:"DocSearch-Hit-source"},e.title),ut.createElement("ul",e.getListProps(),e.collection.items.map((function(t,n){return ut.createElement(po,dt({key:[e.title,t.objectID].join(":"),item:t,index:n},e))})))):null}function po(e){var t=e.item,n=e.index,r=e.renderIcon,o=e.renderAction,i=e.getItemProps,a=e.onItemClick,c=e.collection,u=e.hitComponent,l=jt(ut.useState(!1),2),s=l[0],f=l[1],p=jt(ut.useState(!1),2),m=p[0],v=p[1],h=ut.useRef(null),d=u;return ut.createElement("li",dt({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",s&&"DocSearch-Hit--deleting",m&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){h.current&&h.current()}},i({item:t,source:c.source,onClick:function(e){a(t,e)}})),ut.createElement(d,{hit:t},ut.createElement("div",{className:"DocSearch-Hit-Container"},r({item:t,index:n}),t.hierarchy[t.type]&&"lvl1"===t.type&&ut.createElement("div",{className:"DocSearch-Hit-content-wrapper"},ut.createElement(so,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&ut.createElement(so,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&ut.createElement("div",{className:"DocSearch-Hit-content-wrapper"},ut.createElement(so,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),ut.createElement(so,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&ut.createElement("div",{className:"DocSearch-Hit-content-wrapper"},ut.createElement(so,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),ut.createElement(so,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),o({item:t,runDeleteTransition:function(e){f(!0),h.current=e},runFavoriteTransition:function(e){v(!0),h.current=e}}))))}function mo(e,t,n){return e.reduce((function(e,r){var o=t(r);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(n||5)&&e[o].push(r),e}),{})}function vo(e){return e}function ho(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function yo(){}var _o=/(|<\/mark>)/g,go=RegExp(_o.source);function bo(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0;return o?o.value&&go.test(o.value)?o.value.replace(_o,""):o.value:e.hierarchy.lvl0}function So(e){return ut.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var n=bo(t.items[0]);return ut.createElement(fo,dt({},e,{key:t.source.sourceId,title:n,collection:t,renderIcon:function(e){var n,r=e.item,o=e.index;return ut.createElement(ut.Fragment,null,r.__docsearch_parent&&ut.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},ut.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},r.__docsearch_parent!==(null===(n=t.items[o+1])||void 0===n?void 0:n.__docsearch_parent)?ut.createElement("path",{d:"M8 6v21M20 27H8.3"}):ut.createElement("path",{d:"M8 6v42M20 27H8.3"}))),ut.createElement("div",{className:"DocSearch-Hit-icon"},ut.createElement(Xr,{type:r.type})))},renderAction:function(){return ut.createElement("div",{className:"DocSearch-Hit-action"},ut.createElement(Gr,null))}}))})),e.resultsFooterComponent&&ut.createElement("section",{className:"DocSearch-HitsFooter"},ut.createElement(e.resultsFooterComponent,{state:e.state})))}var Oo=["translations"];function wo(e){var t=e.translations,n=void 0===t?{}:t,r=Ot(e,Oo),o=n.recentSearchesTitle,i=void 0===o?"Recent":o,a=n.noRecentSearchesText,c=void 0===a?"No recent searches":a,u=n.saveRecentSearchButtonTitle,l=void 0===u?"Save this search":u,s=n.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,p=n.favoriteSearchesTitle,m=void 0===p?"Favorite":p,v=n.removeFavoriteSearchButtonTitle,h=void 0===v?"Remove this search from favorites":v;return"idle"===r.state.status&&!1===r.hasCollections?r.disableUserPersonalization?null:ut.createElement("div",{className:"DocSearch-StartScreen"},ut.createElement("p",{className:"DocSearch-Help"},c)):!1===r.hasCollections?null:ut.createElement("div",{className:"DocSearch-Dropdown-Container"},ut.createElement(fo,dt({},r,{title:i,collection:r.state.collections[0],renderIcon:function(){return ut.createElement("div",{className:"DocSearch-Hit-icon"},ut.createElement($r,null))},renderAction:function(e){var t=e.item,n=e.runFavoriteTransition,o=e.runDeleteTransition;return ut.createElement(ut.Fragment,null,ut.createElement("div",{className:"DocSearch-Hit-action"},ut.createElement("button",{className:"DocSearch-Hit-action-button",title:l,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){r.favoriteSearches.add(t),r.recentSearches.remove(t),r.refresh()}))}},ut.createElement(no,null))),ut.createElement("div",{className:"DocSearch-Hit-action"},ut.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){r.recentSearches.remove(t),r.refresh()}))}},ut.createElement(Zr,null))))}})),ut.createElement(fo,dt({},r,{title:m,collection:r.state.collections[1],renderIcon:function(){return ut.createElement("div",{className:"DocSearch-Hit-icon"},ut.createElement(no,null))},renderAction:function(e){var t=e.item,n=e.runDeleteTransition;return ut.createElement("div",{className:"DocSearch-Hit-action"},ut.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){r.favoriteSearches.remove(t),r.refresh()}))}},ut.createElement(Zr,null)))}})))}var Eo=["translations"],jo=ut.memo((function(e){var t=e.translations,n=void 0===t?{}:t,r=Ot(e,Eo);if("error"===r.state.status)return ut.createElement(io,{translations:null==n?void 0:n.errorScreen});var o=r.state.collections.some((function(e){return e.items.length>0}));return r.state.query?!1===o?ut.createElement(co,dt({},r,{translations:null==n?void 0:n.noResultsScreen})):ut.createElement(So,r):ut.createElement(wo,dt({},r,{hasCollections:o,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),Po=["translations"];function Io(e){var t=e.translations,n=void 0===t?{}:t,r=Ot(e,Po),o=n.resetButtonTitle,i=void 0===o?"Clear the query":o,a=n.resetButtonAriaLabel,c=void 0===a?"Clear the query":a,u=n.cancelButtonText,l=void 0===u?"Cancel":u,s=n.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,p=n.searchInputLabel,m=void 0===p?"Search":p,v=r.getFormProps({inputElement:r.inputRef.current}).onReset;return ut.useEffect((function(){r.autoFocus&&r.inputRef.current&&r.inputRef.current.focus()}),[r.autoFocus,r.inputRef]),ut.useEffect((function(){r.isFromSelection&&r.inputRef.current&&r.inputRef.current.select()}),[r.isFromSelection,r.inputRef]),ut.createElement(ut.Fragment,null,ut.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:v},ut.createElement("label",dt({className:"DocSearch-MagnifierLabel"},r.getLabelProps()),ut.createElement(Ct,null),ut.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},m)),ut.createElement("div",{className:"DocSearch-LoadingIndicator"},ut.createElement(Qr,null)),ut.createElement("input",dt({className:"DocSearch-Input",ref:r.inputRef},r.getInputProps({inputElement:r.inputRef.current,autoFocus:r.autoFocus,maxLength:64}))),ut.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!r.state.query},ut.createElement(Zr,null))),ut.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:r.onClose},l))}var ko=["_highlightResult","_snippetResult"];function Do(e){var t=e.key,n=e.limit,r=void 0===n?5:n,o=function(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}(t),i=o.getItem().slice(0,r);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var n=Ot(t,ko),a=i.findIndex((function(e){return e.objectID===n.objectID}));a>-1&&i.splice(a,1),i.unshift(n),i=i.slice(0,r),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function Co(e){var t,n="algolia-client-js-".concat(e.key);function r(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(r().getItem(n)||"{}")}function i(e){r().setItem(n,JSON.stringify(e))}return{get:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var n,r,a;return n=e.timeToLive?1e3*e.timeToLive:null,r=o(),i(a=Object.fromEntries(Object.entries(r).filter((function(e){return void 0!==jt(e,2)[1].timestamp})))),n&&i(Object.fromEntries(Object.entries(a).filter((function(e){var t=jt(e,2)[1],r=(new Date).getTime();return!(t.timestamp+n2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,n.miss(e)])})).then((function(e){return jt(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return n.get(e,r,o).catch((function(){return xo({caches:t}).get(e,r,o)}))},set:function(e,r){return n.set(e,r).catch((function(){return xo({caches:t}).set(e,r)}))},delete:function(e){return n.delete(e).catch((function(){return xo({caches:t}).delete(e)}))},clear:function(){return n.clear().catch((function(){return xo({caches:t}).clear()}))}}}function Ao(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(n);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=r();return a.then((function(e){return o.miss(e)})).then((function(){return a}))},set:function(n,r){return t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function No(e){var t=e.algoliaAgents,n=e.client,r=e.version,o=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var n="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(n)&&(t.value="".concat(t.value).concat(n)),t}};return t}(r).add({segment:n,version:r});return t.forEach((function(e){return o.add(e)})),o}var To=12e4;function Ro(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",n=Date.now();return St(St({},e),{},{status:t,lastUpdate:n,isUp:function(){return"up"===t||Date.now()-n>To},isTimedOut:function(){return"timed out"===t&&Date.now()-n<=To}})}var Lo=function(){function e(t,n){var r;return mt(this,e),ht(r=pt(this,e,[t]),"name","AlgoliaError"),n&&(r.name=n),r}return _t(e,kt(Error)),vt(e)}(),qo=function(){function e(t,n,r){var o;return mt(this,e),ht(o=pt(this,e,[t,r]),"stackTrace",void 0),o.stackTrace=n,o}return _t(e,Lo),vt(e)}(),Mo=function(){function e(t){return mt(this,e),pt(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError"])}return _t(e,qo),vt(e)}(),Ho=function(){function e(t,n,r){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return mt(this,e),ht(o=pt(this,e,[t,r,i]),"status",void 0),o.status=n,o}return _t(e,qo),vt(e)}(),Uo=function(){function e(t,n){var r;return mt(this,e),ht(r=pt(this,e,[t,"DeserializationError"]),"response",void 0),r.response=n,r}return _t(e,Lo),vt(e)}(),Fo=function(){function e(t,n,r,o){var i;return mt(this,e),ht(i=pt(this,e,[t,n,o,"DetailedApiError"]),"error",void 0),i.error=r,i}return _t(e,Ho),vt(e)}();function Bo(e,t,n){var r,o=(r=n,Object.keys(r).filter((function(e){return void 0!==r[e]})).sort().map((function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(r[e])?r[e].join(","):r[e]).replace(/\+/g,"%20"))})).join("&")),i="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return o.length&&(i+="?".concat(o)),i}function Vo(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:St(St({},e.data),t.data);return JSON.stringify(n)}}function Ko(e,t,n){var r=St(St(St({Accept:"application/json"},e),t),n),o={};return Object.keys(r).forEach((function(e){var t=r[e];o[e.toLowerCase()]=t})),o}function Wo(e){try{return JSON.parse(e.content)}catch(t){throw new Uo(t.message,e)}}function zo(e,t){var n=e.content,r=e.status;try{var o=JSON.parse(n);return"error"in o?new Fo(o.message,r,o.error,t):new Ho(o.message,r,t)}catch(e){}return new Ho(n,r,t)}function Jo(e){return e.map((function(e){return Qo(e)}))}function Qo(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return St(St({},e),{},{request:St(St({},e.request),{},{headers:St(St({},e.request.headers),t)})})}var $o=["appId","apiKey","authMode","algoliaAgents"],Zo=["params"],Go="5.14.2";function Yo(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),o=e[n];t[n]=e[r],t[r]=o}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}var Xo="3.8.2";function ei(e,t,n){return ut.useMemo((function(){var r=function(e,t){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return function(e){var t=e.appId,n=e.apiKey,r=e.authMode,o=e.algoliaAgents,i=Ot(e,$o),a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",r={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===n?r:{}},queryParameters:function(){return"WithinQueryParameters"===n?r:{}}}}(t,n,r),c=function(e){var t=e.hosts,n=e.hostsCache,r=e.baseHeaders,o=e.logger,i=e.baseQueryParameters,a=e.algoliaAgent,c=e.timeouts,u=e.requester,l=e.requestsCache,s=e.responsesCache;function f(e){return p.apply(this,arguments)}function p(){return(p=ft(wt().mark((function e(t){var r,o,i,a,c;return wt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return n.get(e,(function(){return Promise.resolve(Ro(e))}))})));case 2:return r=e.sent,o=r.filter((function(e){return e.isUp()})),i=r.filter((function(e){return e.isTimedOut()})),a=[].concat(Pt(o),Pt(i)),c=a.length>0?a:t,e.abrupt("return",{hosts:c,getTimeout:function(e,t){return(0===i.length&&0===e?1:i.length+3+e)*t}});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function m(e,t){return v.apply(this,arguments)}function v(){return v=ft(wt().mark((function e(l,s){var p,m,v,h,d,y,_,g,b,S,O,w,E,j=arguments;return wt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p=!(j.length>2&&void 0!==j[2])||j[2],m=[],v=Vo(l,s),h=Ko(r,l.headers,s.headers),d="GET"===l.method?St(St({},l.data),s.data):{},y=St(St(St({},i),l.queryParameters),d),a.value&&(y["x-algolia-agent"]=a.value),s&&s.queryParameters)for(_=0,g=Object.keys(s.queryParameters);_1&&void 0!==arguments[1]?arguments[1]:{},n=e.useReadTransporter||"GET"===e.method;if(!n)return m(e,t,n);var o=function(){return m(e,t)};if(!0!==(t.cacheable||e.cacheable))return o();var a={request:e,requestOptions:t,transporter:{queryParameters:i,headers:r}};return s.get(a,(function(){return l.get(a,(function(){return l.set(a,o()).then((function(e){return Promise.all([l.delete(a),e])}),(function(e){return Promise.all([l.delete(a),Promise.reject(e)])})).then((function(e){var t=jt(e,2);return t[0],t[1]}))}))}),{miss:function(e){return s.set(a,e)}})},requestsCache:l,responsesCache:s}}(St(St({hosts:Yo(t)},i),{},{algoliaAgent:No({algoliaAgents:o,client:"Lite",version:Go}),baseHeaders:St(St({"content-type":"text/plain"},a.headers()),i.baseHeaders),baseQueryParameters:St(St({},a.queryParameters()),i.baseQueryParameters)}));return{transporter:c,appId:t,clearCache:function(){return Promise.all([c.requestsCache.clear(),c.responsesCache.clear()]).then((function(){}))},get _ua(){return c.algoliaAgent.value},addAlgoliaAgent:function(e,t){c.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;r&&"WithinHeaders"!==r?c.baseQueryParameters["x-algolia-api-key"]=t:c.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var n=e.path,r=e.parameters,o=e.body;if(!n)throw new Error("Parameter `path` is required when calling `customPost`.");var i={method:"POST",path:"/{path}".replace("{path}",n),queryParameters:r||{},headers:{},data:o||{}};return c.request(i,t)},getRecommendations:function(e,t){if(e&&Array.isArray(e)&&(e={requests:e}),!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var n={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return c.request(n,t)},search:function(e,t){if(e&&Array.isArray(e)){var n={requests:e.map((function(e){var t=e.params,n=Ot(e,Zo);return"facet"===n.type?St(St(St({},n),t),{},{type:"facet"}):St(St(St({},n),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=n}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var r={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return c.request(r,t)}}}(St({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return n.setRequestHeader(t,e.headers[t])}));var r,o=function(e,r){return setTimeout((function(){n.abort(),t({status:0,content:r,isTimedOut:!0})}),e)},i=o(e.connectTimeout,"Connection timeout");n.onreadystatechange=function(){n.readyState>n.OPENED&&void 0===r&&(clearTimeout(i),r=o(e.responseTimeout,"Socket timeout"))},n.onerror=function(){0===n.status&&(clearTimeout(i),clearTimeout(r),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=function(){clearTimeout(i),clearTimeout(r),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:Ao(),requestsCache:Ao({serializable:!1}),hostsCache:xo({caches:[Co({key:"".concat(Go,"-").concat(e)}),Ao()]})},void 0))}(e,t);return r.addAlgoliaAgent("docsearch",Xo),!1===/docsearch.js \(.*\)/.test(r.transporter.algoliaAgent.value)&&r.addAlgoliaAgent("docsearch-react",Xo),n(r)}),[e,t,n])}var ti=["footer","searchBox"];function ni(e){var t=e.appId,n=e.apiKey,r=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,u=e.onClose,l=void 0===u?yo:u,s=e.transformItems,f=void 0===s?vo:s,p=e.hitComponent,m=void 0===p?Jr:p,v=e.resultsFooterComponent,h=void 0===v?function(){return null}:v,d=e.navigator,y=e.initialScrollY,_=void 0===y?0:y,g=e.transformSearchClient,b=void 0===g?vo:g,S=e.disableUserPersonalization,O=void 0!==S&&S,w=e.initialQuery,E=void 0===w?"":w,j=e.translations,P=void 0===j?{}:j,I=e.getMissingResultsUrl,k=e.insights,D=void 0!==k&&k,C=P.footer,x=P.searchBox,A=Ot(P,ti),N=jt(ut.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=N[0],R=N[1],L=ut.useRef(null),q=ut.useRef(null),M=ut.useRef(null),H=ut.useRef(null),U=ut.useRef(null),F=ut.useRef(10),B=ut.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,V=ut.useRef(E||B).current,K=ei(t,n,b),W=ut.useRef(Do({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(r),limit:10})).current,z=ut.useRef(Do({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(r),limit:0===W.getAll().length?7:4})).current,J=ut.useCallback((function(e){if(!O){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===W.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&z.add(t)}}),[W,z,O]),Q=ut.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}}),[T.context.algoliaInsightsPlugin]),$=ut.useMemo((function(){return Vr({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:D,navigator:d,onStateChange:function(e){R(e.state)},getSources:function(e){var o=e.query,i=e.state,u=e.setContext,s=e.setStatus;if(!o)return O?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),ho(n)||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return z.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;J(t),ho(n)||l()},getItemUrl:function(e){return e.item.url},getItems:function(){return W.getAll()}}];var p=Boolean(D);return K.search({requests:[St({query:o,indexName:r,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(F.current),"hierarchy.lvl2:".concat(F.current),"hierarchy.lvl3:".concat(F.current),"hierarchy.lvl4:".concat(F.current),"hierarchy.lvl5:".concat(F.current),"hierarchy.lvl6:".concat(F.current),"content:".concat(F.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:p},a)]}).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results[0],a=o.hits,s=o.nbHits,m=mo(a,(function(e){return bo(e)}),c);i.context.searchSuggestions.length0&&(Y(),U.current&&U.current.focus())}),[V,Y]),ut.useEffect((function(){function e(){if(q.current){var e=.01*window.innerHeight;q.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),ut.createElement("div",dt({ref:L},G({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&l()}}),ut.createElement("div",{className:"DocSearch-Modal",ref:q},ut.createElement("header",{className:"DocSearch-SearchBar",ref:M},ut.createElement(Io,dt({},$,{state:T,autoFocus:0===V.length,inputRef:U,isFromSelection:Boolean(V)&&V===B,translations:x,onClose:l}))),ut.createElement("div",{className:"DocSearch-Dropdown",ref:H},ut.createElement(jo,dt({},$,{indexName:r,state:T,hitComponent:m,resultsFooterComponent:h,disableUserPersonalization:O,recentSearches:z,favoriteSearches:W,inputRef:U,translations:A,getMissingResultsUrl:I,onItemClick:function(e,t){Q(e),J(e),ho(t)||l()}}))),ut.createElement("footer",{className:"DocSearch-Footer"},ut.createElement(zr,{translations:C}))))}function ri(e){var t,n,r=ut.useRef(null),o=jt(ut.useState(!1),2),i=o[0],a=o[1],c=jt(ut.useState((null==e?void 0:e.initialQuery)||void 0),2),u=c[0],l=c[1],s=ut.useCallback((function(){a(!0)}),[a]),f=ut.useCallback((function(){a(!1),l(null==e?void 0:e.initialQuery)}),[a,e.initialQuery]);return function(e){var t=e.isOpen,n=e.onOpen,r=e.onClose,o=e.onInput,i=e.searchButtonRef;ut.useEffect((function(){function e(e){var a;if("Escape"===e.code&&t||"k"===(null===(a=e.key)||void 0===a?void 0:a.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)return e.preventDefault(),void(t?r():document.body.classList.contains("DocSearch--active")||n());i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,r,o,i])}({isOpen:i,onOpen:s,onClose:f,onInput:ut.useCallback((function(e){a(!0),l(e.key)}),[a,l]),searchButtonRef:r}),ut.createElement(ut.Fragment,null,ut.createElement(Nt,{ref:r,translations:null==e||null===(t=e.translations)||void 0===t?void 0:t.button,onClick:s}),i&&qe(ut.createElement(ni,dt({},e,{initialScrollY:window.scrollY,initialQuery:u,translations:null==e||null===(n=e.translations)||void 0===n?void 0:n.modal,onClose:f})),document.body))}return function(t){Ke(ut.createElement(ri,e({},t,{transformSearchClient:function(e){return e.addAlgoliaAgent("docsearch.js",Xo),t.transformSearchClient?t.transformSearchClient(e):e}})),function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window;return"string"==typeof e?t.document.querySelector(e):e}(t.container,t.environment))}})); //# sourceMappingURL=index.js.map diff --git a/node_modules/@docsearch/js/dist/umd/index.js.map b/node_modules/@docsearch/js/dist/umd/index.js.map index 3aac201..16d84ae 100644 --- a/node_modules/@docsearch/js/dist/umd/index.js.map +++ b/node_modules/@docsearch/js/dist/umd/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../../../../node_modules/preact/dist/preact.module.js","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../../../node_modules/preact/compat/dist/compat.module.js","../../../docsearch-react/dist/esm/icons/ControlKeyIcon.js","../../../docsearch-react/dist/esm/icons/SearchIcon.js","../../../docsearch-react/dist/esm/DocSearchButton.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/version.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/reshape.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/resolve.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/onInput.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/metadata.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","../../../docsearch-react/dist/esm/AlgoliaLogo.js","../../../docsearch-react/dist/esm/Footer.js","../../../docsearch-react/dist/esm/Hit.js","../../../docsearch-react/dist/esm/icons/LoadingIcon.js","../../../docsearch-react/dist/esm/icons/RecentIcon.js","../../../docsearch-react/dist/esm/icons/ResetIcon.js","../../../docsearch-react/dist/esm/icons/SelectIcon.js","../../../docsearch-react/dist/esm/icons/SourceIcon.js","../../../docsearch-react/dist/esm/icons/StarIcon.js","../../../docsearch-react/dist/esm/icons/ErrorIcon.js","../../../docsearch-react/dist/esm/icons/NoResultsIcon.js","../../../docsearch-react/dist/esm/ErrorScreen.js","../../../docsearch-react/dist/esm/NoResultsScreen.js","../../../docsearch-react/dist/esm/Snippet.js","../../../docsearch-react/dist/esm/Results.js","../../../docsearch-react/dist/esm/utils/groupBy.js","../../../docsearch-react/dist/esm/utils/identity.js","../../../docsearch-react/dist/esm/utils/isModifierEvent.js","../../../docsearch-react/dist/esm/utils/noop.js","../../../docsearch-react/dist/esm/utils/removeHighlightTags.js","../../../docsearch-react/dist/esm/ResultsScreen.js","../../../docsearch-react/dist/esm/StartScreen.js","../../../docsearch-react/dist/esm/ScreenState.js","../../../docsearch-react/dist/esm/SearchBox.js","../../../docsearch-react/dist/esm/constants.js","../../../docsearch-react/dist/esm/stored-searches.js","../../../docsearch-react/node_modules/algoliasearch/dist/algoliasearch-lite.esm.browser.js","../../../docsearch-react/dist/esm/version.js","../../../docsearch-react/dist/esm/DocSearchModal.js","../../../docsearch-react/dist/esm/useSearchClient.js","../../../docsearch-react/dist/esm/useTouchEvents.js","../../../docsearch-react/dist/esm/useTrapFocus.js","../../../docsearch-react/dist/esm/DocSearch.js","../../../docsearch-react/dist/esm/useDocSearchKeyboardEvents.js","../../src/docsearch.tsx"],"sourcesContent":["var n,l,u,i,t,r,o={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,r,o=arguments,f={};for(r in l)\"key\"==r?i=l[r]:\"ref\"==r?t=l[r]:f[r]=l[r];if(arguments.length>3)for(u=[u],r=3;r0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],r=3;r=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;function O(){this.__u=0,this.t=null,this.__b=null}function L(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function U(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function D(){this.u=null,this.o=null}h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)},(O.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=L(r.__v),o=!1,i=function(){o||(o=!0,e.componentWillUnmount=e.__c,u?u(l):l())};e.__c=e.componentWillUnmount,e.componentWillUnmount=function(){i(),e.__c&&e.__c()};var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},O.prototype.componentWillUnmount=function(){this.t=[]},O.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var F=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(M,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function j(n,t){return s(T,{__v:n,i:t})}(D.prototype=new a).__e=function(n){var t=this,e=L(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),F(t,n,r)):u()};e?e(o):o()}},D.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},D.prototype.componentDidUpdate=D.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){F(n,e,t)})};var I=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,W=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,P=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function V(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function z(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var B=h.event;function H(){}function Z(){return this.cancelBubble}function Y(){return this.defaultPrevented}h.event=function(n){return B&&(n=B(n)),n.persist=H,n.isPropagationStopped=Z,n.isDefaultPrevented=Y,n.nativeEvent=n};var $,q={configurable:!0,get:function(){return this.class}},G=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!P(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():W.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(q.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",q)),n.$$typeof=I,G&&G(n)};var J=h.__r;h.__r=function(n){J&&J(n),$=n.__c};var K={ReactCurrentDispatcher:{current:{readContext:function(n){return $.__n[n.__c].props.value}}}},Q=1,X=2,nn=3,tn=4,en=5;function rn(n,t){return t()}var un=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},on=\"16.8.0\";function ln(n){return s.bind(null,n)}function fn(n){return!!n&&n.$$typeof===I}function cn(n){return fn(n)?y.apply(null,arguments):n}function an(n){return!!n.__k&&(d(null,n),!0)}function sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var hn=function(n,t){return n(t)},pn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:V,hydrate:z,unmountComponentAtNode:an,createPortal:j,createElement:s,createContext:_,createFactory:ln,cloneElement:cn,createRef:b,Fragment:v,isValidElement:fn,findDOMNode:sn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:hn,StrictMode:v,Suspense:O,SuspenseList:D,lazy:U,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:K};export{on as version,k as Children,V as render,z as hydrate,an as unmountComponentAtNode,j as createPortal,ln as createFactory,cn as cloneElement,fn as isValidElement,sn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,hn as unstable_batchedUpdates,pn as StrictMode,O as Suspense,D as SuspenseList,U as lazy,K as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Q as unstable_ImmediatePriority,X as unstable_UserBlockingPriority,nn as unstable_NormalPriority,tn as unstable_LowPriority,en as unstable_IdlePriority,rn as unstable_runWithPriority,un as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","import React from 'react';\nexport function ControlKeyIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"15\",\n height: \"15\",\n className: \"DocSearch-Control-Key-Icon\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953\",\n strokeWidth: \"1.2\",\n stroke: \"currentColor\",\n fill: \"none\",\n strokeLinecap: \"square\"\n }));\n}","import React from 'react';\nexport function SearchIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n className: \"DocSearch-Search-Icon\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useEffect, useState } from 'react';\nimport { ControlKeyIcon } from './icons/ControlKeyIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nvar ACTION_KEY_DEFAULT = 'Ctrl';\nvar ACTION_KEY_APPLE = '⌘';\n\nfunction isAppleDevice() {\n return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n}\n\nexport var DocSearchButton = React.forwardRef(function (_ref, ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$buttonT = translations.buttonText,\n buttonText = _translations$buttonT === void 0 ? 'Search' : _translations$buttonT,\n _translations$buttonA = translations.buttonAriaLabel,\n buttonAriaLabel = _translations$buttonA === void 0 ? 'Search' : _translations$buttonA;\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n key = _useState2[0],\n setKey = _useState2[1];\n\n useEffect(function () {\n if (typeof navigator !== 'undefined') {\n isAppleDevice() ? setKey(ACTION_KEY_APPLE) : setKey(ACTION_KEY_DEFAULT);\n }\n }, []);\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n type: \"button\",\n className: \"DocSearch DocSearch-Button\",\n \"aria-label\": buttonAriaLabel\n }, props, {\n ref: ref\n }), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Button-Container\"\n }, /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Button-Placeholder\"\n }, buttonText)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Button-Keys\"\n }, key !== null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Button-Key\"\n }, key === ACTION_KEY_DEFAULT ? /*#__PURE__*/React.createElement(ControlKeyIcon, null) : key), /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Button-Key\"\n }, \"K\"))));\n});","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var version = '1.9.3';","export function createClickedEvent(_ref) {\n var item = _ref.item,\n items = _ref.items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.6.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true\n },\n insights: insights\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onActive: noop\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","function createInternalCancelablePromise(promise, initialState) {\n var state = initialState;\n return {\n then: function then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);\n },\n catch: function _catch(onrejected) {\n return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);\n },\n finally: function _finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {\n state.onCancelList = [];\n return onfinally();\n }, state, promise)), state);\n },\n cancel: function cancel() {\n state.isCanceled = true;\n var callbacks = state.onCancelList;\n state.onCancelList = [];\n callbacks.forEach(function (callback) {\n callback();\n });\n },\n isCanceled: function isCanceled() {\n return state.isCanceled === true;\n }\n };\n}\nexport function createCancelablePromise(executor) {\n return createInternalCancelablePromise(new Promise(function (resolve, reject) {\n return executor(resolve, reject);\n }), {\n isCanceled: false,\n onCancelList: []\n });\n}\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\n return onResult(arg);\n };\n}","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {\n if (!itemCount) {\n return null;\n }\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n return numericIndex;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { invariant, decycle, noop } from '@algolia/autocomplete-shared';\nexport function getNormalizedSources(getSources, params) {\n var seenSourceIds = [];\n return Promise.resolve(getSources(params)).then(function (sources) {\n invariant(Array.isArray(sources), function () {\n return \"The `getSources` function must return an array of sources but returned type \".concat(JSON.stringify(_typeof(sources)), \":\\n\\n\").concat(JSON.stringify(decycle(sources), null, 2));\n });\n return Promise.all(sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter(function (maybeSource) {\n return Boolean(maybeSource);\n }).map(function (source) {\n invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\n seenSourceIds.push(source.sourceId);\n var defaultSource = {\n getItemInputValue: function getItemInputValue(_ref) {\n var state = _ref.state;\n return state.query;\n },\n getItemUrl: function getItemUrl() {\n return undefined;\n },\n onSelect: function onSelect(_ref2) {\n var setIsOpen = _ref2.setIsOpen;\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop\n };\n Object.keys(defaultSource).forEach(function (key) {\n defaultSource[key].__default = true;\n });\n var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n return Promise.resolve(normalizedSource);\n }));\n });\n}","// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(state) {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n var accumulatedCollectionsCount = state.collections.map(function (collections) {\n return collections.items.length;\n }).reduce(function (acc, collectionsCount, index) {\n var previousValue = acc[index - 1] || 0;\n var nextValue = previousValue + collectionsCount;\n acc.push(nextValue);\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n return acc;\n }, 0);\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId(_ref) {\n var state = _ref.state,\n collection = _ref.collection;\n var isOffsetFound = false;\n var counter = 0;\n var previousItemsOffset = 0;\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n return state.activeItemId - previousItemsOffset;\n}\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n if (!collection) {\n return null;\n }\n var item = collection.items[getRelativeActiveItemId({\n state: state,\n collection: collection\n })];\n var source = collection.source;\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: state\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: state\n });\n return {\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n source: source\n };\n}","var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createCancelablePromiseList } from './utils';\nexport function createStore(reducer, props, onStoreStateChange) {\n var state = props.initialState;\n return {\n getState: function getState() {\n return state;\n },\n dispatch: function dispatch(action, payload) {\n var prevState = _objectSpread({}, state);\n state = reducer(state, {\n type: action,\n props: props,\n payload: payload\n });\n onStoreStateChange({\n state: state,\n prevState: prevState\n });\n },\n pendingRequests: createCancelablePromiseList()\n };\n}","export function createCancelablePromiseList() {\n var list = [];\n return {\n add: function add(cancelablePromise) {\n list.push(cancelablePromise);\n return cancelablePromise.finally(function () {\n list = list.filter(function (item) {\n return item !== cancelablePromise;\n });\n });\n },\n cancelAll: function cancelAll() {\n list.forEach(function (promise) {\n return promise.cancel();\n });\n },\n isEmpty: function isEmpty() {\n return list.length === 0;\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\n var setCollections = function setCollections(rawValue) {\n var baseItemId = 0;\n var value = rawValue.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items).map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n __autocomplete_id: baseItemId++\n });\n })\n });\n });\n store.dispatch('setCollections', value);\n };\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n var plugins = props.plugins || [];\n return _objectSpread(_objectSpread({\n debug: false,\n openOnFocus: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: false,\n environment: environment,\n shouldPanelOpen: function shouldPanelOpen(_ref) {\n var state = _ref.state;\n return getItemsCount(state) > 0;\n },\n reshape: function reshape(_ref2) {\n var sources = _ref2.sources;\n return sources;\n }\n }, props), {}, {\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),\n plugins: plugins,\n // The following props need to be deeply defaulted.\n initialState: _objectSpread({\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {}\n }, props.initialState),\n onStateChange: function onStateChange(params) {\n var _props$onStateChange;\n (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);\n plugins.forEach(function (x) {\n var _x$onStateChange;\n return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);\n });\n },\n onSubmit: function onSubmit(params) {\n var _props$onSubmit;\n (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);\n plugins.forEach(function (x) {\n var _x$onSubmit;\n return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);\n });\n },\n onReset: function onReset(params) {\n var _props$onReset;\n (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);\n plugins.forEach(function (x) {\n var _x$onReset;\n return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);\n });\n },\n getSources: function getSources(params) {\n return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {\n return plugin.getSources;\n })), [props.getSources]).filter(Boolean).map(function (getSources) {\n return getNormalizedSources(getSources, params);\n })).then(function (nested) {\n return flatten(nested);\n }).then(function (sources) {\n return sources.map(function (source) {\n return _objectSpread(_objectSpread({}, source), {}, {\n onSelect: function onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onSelect;\n return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);\n });\n },\n onActive: function onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onActive;\n return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);\n });\n },\n onResolve: function onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onResolve;\n return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);\n });\n }\n });\n });\n });\n },\n navigator: _objectSpread({\n navigate: function navigate(_ref3) {\n var itemUrl = _ref3.itemUrl;\n environment.location.assign(itemUrl);\n },\n navigateNewTab: function navigateNewTab(_ref4) {\n var itemUrl = _ref4.itemUrl;\n var windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();\n },\n navigateNewWindow: function navigateNewWindow(_ref5) {\n var itemUrl = _ref5.itemUrl;\n environment.open(itemUrl, '_blank', 'noopener');\n }\n }, props.navigator)\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function reshape(_ref) {\n var collections = _ref.collections,\n props = _ref.props,\n state = _ref.state;\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n var originalSourcesBySourceId = collections.reduce(function (acc, collection) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {\n getItems: function getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n }\n })));\n }, {});\n var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n }, {\n sourcesBySourceId: originalSourcesBySourceId,\n state: state\n }),\n sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n var reshapeSources = props.reshape({\n sourcesBySourceId: sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state: state\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources).filter(Boolean).map(function (source) {\n return {\n source: source,\n items: source.getItems()\n };\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\nexport function preResolve(itemsOrDescription, sourceId, state) {\n if (isRequesterDescription(itemsOrDescription)) {\n var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {\n var _state$context$key;\n return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;\n })))) : {};\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {\n params: _objectSpread(_objectSpread({}, contextParameters), query.params)\n }) : query,\n sourceId: sourceId,\n transformResponse: itemsOrDescription.transformResponse\n };\n })\n });\n }\n return {\n items: itemsOrDescription,\n sourceId: sourceId\n };\n}\nexport function resolve(items) {\n var packed = items.reduce(function (acc, current) {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n var searchClient = current.searchClient,\n execute = current.execute,\n requesterId = current.requesterId,\n requests = current.requests;\n var container = acc.find(function (item) {\n return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;\n });\n if (container) {\n var _container$items;\n (_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));\n } else {\n var request = {\n execute: execute,\n requesterId: requesterId,\n items: requests,\n searchClient: searchClient\n };\n acc.push(request);\n }\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\n var _ref = maybeDescription,\n execute = _ref.execute,\n items = _ref.items,\n searchClient = _ref.searchClient;\n return execute({\n searchClient: searchClient,\n requests: items\n });\n });\n return Promise.all(values).then(function (responses) {\n return flatten(responses);\n });\n}\nexport function postResolve(responses, sources, store) {\n return sources.map(function (source) {\n var matches = responses.filter(function (response) {\n return response.sourceId === source.sourceId;\n });\n var results = matches.map(function (_ref2) {\n var items = _ref2.items;\n return items;\n });\n var transform = matches[0].transformResponse;\n var items = transform ? transform(mapToAlgoliaResponse(results)) : results;\n source.onResolve({\n source: source,\n results: results,\n items: items,\n state: store.getState()\n });\n invariant(Array.isArray(items), function () {\n return \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned type \").concat(JSON.stringify(_typeof(items)), \":\\n\\n\").concat(JSON.stringify(decycle(items), null, 2), \".\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\");\n });\n invariant(items.every(Boolean), \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned \").concat(JSON.stringify(undefined), \".\\n\\nDid you forget to return items?\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\"));\n return {\n source: source,\n items: items\n };\n });\n}","export function mapToAlgoliaResponse(rawResults) {\n return {\n results: rawResults,\n hits: rawResults.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: rawResults.map(function (result) {\n var _facetHits;\n return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted\n }\n }\n };\n });\n }).filter(Boolean)\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';\nvar lastStalledId = null;\nvar runConcurrentSafePromise = createConcurrentSafePromise();\nexport function onInput(_ref) {\n var event = _ref.event,\n _ref$nextState = _ref.nextState,\n nextState = _ref$nextState === void 0 ? {} : _ref$nextState,\n props = _ref.props,\n query = _ref.query,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n var setCollections = setters.setCollections,\n setIsOpen = setters.setIsOpen,\n setQuery = setters.setQuery,\n setActiveItemId = setters.setActiveItemId,\n setStatus = setters.setStatus;\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n if (!query && props.openOnFocus === false) {\n var _nextState$isOpen;\n var collections = store.getState().collections.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n items: []\n });\n });\n setStatus('idle');\n setCollections(collections);\n setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({\n state: store.getState()\n }));\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n return Promise.resolve();\n }));\n return store.pendingRequests.add(_request);\n }\n setStatus('loading');\n lastStalledId = props.environment.setTimeout(function () {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters)).then(function (sources) {\n return Promise.all(sources.map(function (source) {\n return Promise.resolve(source.getItems(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters))).then(function (itemsOrDescription) {\n return preResolve(itemsOrDescription, source.sourceId, store.getState());\n });\n })).then(resolve).then(function (responses) {\n return postResolve(responses, sources, store);\n }).then(function (collections) {\n return reshape({\n collections: collections,\n props: props,\n state: store.getState()\n });\n });\n }))).then(function (collections) {\n var _nextState$isOpen2;\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n setCollections(collections);\n var isPanelOpen = props.shouldPanelOpen({\n state: store.getState()\n });\n setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }).finally(function () {\n setStatus('idle');\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n return store.pendingRequests.add(request);\n}","/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n var basePromiseId = -1;\n var latestResolvedId = -1;\n var latestResolvedValue = undefined;\n return function runConcurrentSafePromise(promise) {\n basePromiseId++;\n var currentPromiseId = basePromiseId;\n return Promise.resolve(promise).then(function (x) {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue;\n }\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { onInput } from './onInput';\nimport { getActiveItem } from './utils';\nexport function onKeyDown(_ref) {\n var event = _ref.event,\n props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n var triggerScrollIntoView = function triggerScrollIntoView() {\n var nodeItem = props.environment.document.getElementById(\"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId));\n if (nodeItem) {\n if (nodeItem.scrollIntoViewIfNeeded) {\n nodeItem.scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }; // eslint-disable-next-line no-inner-declarations\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }; // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n store.dispatch(event.key, {\n nextActiveItemId: props.defaultActiveItemId\n });\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"sourceIndex\"],\n _excluded6 = [\"sourceIndex\"],\n _excluded7 = [\"item\", \"source\", \"sourceIndex\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getActiveItem, isOrContainsNode, isSamsung } from './utils';\nexport function getPropGetters(_ref) {\n var props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n var inputElement = providedProps.inputElement,\n formElement = providedProps.formElement,\n panelElement = providedProps.panelElement,\n rest = _objectWithoutProperties(providedProps, _excluded2);\n function onMouseDownOrTouchStart(event) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n return _objectSpread({\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove: function onTouchMove(event) {\n if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n return;\n }\n inputElement.blur();\n }\n }, rest);\n };\n var getRootProps = function getRootProps(rest) {\n return _objectSpread({\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\")\n }, rest);\n };\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n event.preventDefault();\n props.onSubmit(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('submit', null);\n (_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();\n },\n onReset: function onReset(event) {\n var _providedProps$inputE2;\n event.preventDefault();\n props.onReset(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('reset', null);\n (_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();\n }\n }, rest);\n };\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n function onFocus(event) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().completion || store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n store.dispatch('focus', null);\n }\n var _ref2 = providedProps || {},\n inputElement = _ref2.inputElement,\n _ref2$maxLength = _ref2.maxLength,\n maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,\n rest = _objectWithoutProperties(_ref2, _excluded4);\n var activeItem = getActiveItem(store.getState());\n var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';\n var shouldFallbackKeyHint = isSamsung(userAgent);\n var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';\n return _objectSpread({\n 'aria-autocomplete': 'both',\n 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? \"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId) : undefined,\n 'aria-controls': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\"),\n value: store.getState().completion || store.getState().query,\n id: \"\".concat(props.id, \"-input\"),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint: enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength: maxLength,\n type: 'search',\n onChange: function onChange(event) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: event.currentTarget.value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(_objectSpread({\n event: event,\n props: props,\n refresh: refresh,\n store: store\n }, setters));\n },\n onFocus: onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: function onClick(event) {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {\n onFocus(event);\n }\n }\n }, rest);\n };\n var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {\n return typeof sourceId !== 'undefined' ? \"\".concat(instanceId, \"-\").concat(sourceId) : instanceId;\n };\n var getLabelProps = function getLabelProps(providedProps) {\n var _ref3 = providedProps || {},\n sourceIndex = _ref3.sourceIndex,\n rest = _objectWithoutProperties(_ref3, _excluded5);\n return _objectSpread({\n htmlFor: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-input\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\")\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref4 = providedProps || {},\n sourceIndex = _ref4.sourceIndex,\n rest = _objectWithoutProperties(_ref4, _excluded6);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-list\")\n }, rest);\n };\n var getPanelProps = function getPanelProps(rest) {\n return _objectSpread({\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n event.preventDefault();\n },\n onMouseLeave: function onMouseLeave() {\n store.dispatch('mouseleave', null);\n }\n }, rest);\n };\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n sourceIndex = providedProps.sourceIndex,\n rest = _objectWithoutProperties(providedProps, _excluded7);\n return _objectSpread({\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-item-\").concat(item.__autocomplete_id),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}","export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n var plugins = _ref.plugins,\n options = _ref.options;\n var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;\n var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};\n return {\n plugins: plugins.map(function (plugin) {\n return {\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || [])\n };\n }),\n options: _objectSpread({\n 'autocomplete-core': Object.keys(options)\n }, extraOptions),\n ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])\n };\n}\nexport function injectMetadata(_ref3) {\n var _environment$navigato, _environment$navigato2;\n var metadata = _ref3.metadata,\n environment = _ref3.environment;\n var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');\n if (isMetadataEnabled) {\n var metadataContainer = environment.document.createElement('meta');\n var headRef = environment.document.querySelector('head');\n metadataContainer.name = 'algolia:metadata';\n setTimeout(function () {\n metadataContainer.content = JSON.stringify(metadata);\n headRef.appendChild(metadataContainer);\n }, 0);\n }\n}","import { getActiveItem } from './utils';\nexport function getCompletion(_ref) {\n var _getActiveItem;\n var state = _ref.state;\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n switch (action.type) {\n case 'setActiveItemId':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\n }\n case 'ArrowDown':\n {\n var nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\n });\n }\n case 'ArrowUp':\n {\n var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\n });\n }\n case 'Escape':\n {\n if (state.isOpen) {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n completion: null\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n status: 'idle',\n query: ''\n });\n }\n case 'focus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId,\n isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({\n state: state\n })\n });\n }\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nexport function createAutocomplete(options) {\n checkOptions(options);\n var subscribers = [];\n var props = getDefaultProps(options, subscribers);\n var store = createStore(stateReducer, props, onStoreStateChange);\n var setters = getAutocompleteSetters({\n store: store\n });\n var propGetters = getPropGetters(_objectSpread({\n props: props,\n refresh: refresh,\n store: store,\n navigator: props.navigator\n }, setters));\n function onStoreStateChange(_ref) {\n var prevState = _ref.prevState,\n state = _ref.state;\n props.onStateChange(_objectSpread({\n prevState: prevState,\n state: state,\n refresh: refresh,\n navigator: props.navigator\n }, setters));\n }\n function refresh() {\n return onInput(_objectSpread({\n event: new Event('input'),\n nextState: {\n isOpen: store.getState().isOpen\n },\n props: props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n if (options.insights && !props.plugins.some(function (plugin) {\n return plugin.name === 'aa.algoliaInsightsPlugin';\n })) {\n var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n props.plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\n navigator: props.navigator,\n refresh: refresh,\n onSelect: function onSelect(fn) {\n subscribers.push({\n onSelect: fn\n });\n },\n onActive: function onActive(fn) {\n subscribers.push({\n onActive: fn\n });\n },\n onResolve: function onResolve(fn) {\n subscribers.push({\n onResolve: fn\n });\n }\n }));\n });\n injectMetadata({\n metadata: getMetadata({\n plugins: props.plugins,\n options: options\n }),\n environment: props.environment\n });\n return _objectSpread(_objectSpread({\n refresh: refresh,\n navigator: props.navigator\n }, propGetters), setters);\n}","import React from 'react';\nexport function AlgoliaLogo(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$searchB = translations.searchByText,\n searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB;\n return /*#__PURE__*/React.createElement(\"a\", {\n href: \"https://www.algolia.com/ref/docsearch/?utm_source=\".concat(window.location.hostname, \"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch\"),\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, searchByText), /*#__PURE__*/React.createElement(\"svg\", {\n width: \"77\",\n height: \"19\",\n \"aria-label\": \"Algolia\",\n role: \"img\",\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 2196.2 500\"\n }, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}\")), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-1\",\n x: \"1845.88\",\n y: \"104.73\",\n width: \"62.58\",\n height: \"277.9\",\n rx: \"5.9\",\n ry: \"5.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-2\",\n d: \"M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-1\",\n d: \"M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z\"\n })));\n}","import React from 'react';\nimport { AlgoliaLogo } from './AlgoliaLogo';\n\nfunction CommandIcon(props) {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"15\",\n height: \"15\",\n \"aria-label\": props.ariaLabel,\n role: \"img\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"1.2\"\n }, props.children));\n}\n\nexport function Footer(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$selectT = translations.selectText,\n selectText = _translations$selectT === void 0 ? 'to select' : _translations$selectT,\n _translations$selectK = translations.selectKeyAriaLabel,\n selectKeyAriaLabel = _translations$selectK === void 0 ? 'Enter key' : _translations$selectK,\n _translations$navigat = translations.navigateText,\n navigateText = _translations$navigat === void 0 ? 'to navigate' : _translations$navigat,\n _translations$navigat2 = translations.navigateUpKeyAriaLabel,\n navigateUpKeyAriaLabel = _translations$navigat2 === void 0 ? 'Arrow up' : _translations$navigat2,\n _translations$navigat3 = translations.navigateDownKeyAriaLabel,\n navigateDownKeyAriaLabel = _translations$navigat3 === void 0 ? 'Arrow down' : _translations$navigat3,\n _translations$closeTe = translations.closeText,\n closeText = _translations$closeTe === void 0 ? 'to close' : _translations$closeTe,\n _translations$closeKe = translations.closeKeyAriaLabel,\n closeKeyAriaLabel = _translations$closeKe === void 0 ? 'Escape key' : _translations$closeKe,\n _translations$searchB = translations.searchByText,\n searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Logo\"\n }, /*#__PURE__*/React.createElement(AlgoliaLogo, {\n translations: {\n searchByText: searchByText\n }\n })), /*#__PURE__*/React.createElement(\"ul\", {\n className: \"DocSearch-Commands\"\n }, /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: selectKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, selectText)), /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: navigateDownKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 3.5v8M10.5 8.5l-3 3-3-3\"\n }))), /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: navigateUpKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 11.5v-8M10.5 6.5l-3-3-3 3\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, navigateText)), /*#__PURE__*/React.createElement(\"li\", null, /*#__PURE__*/React.createElement(\"kbd\", {\n className: \"DocSearch-Commands-Key\"\n }, /*#__PURE__*/React.createElement(CommandIcon, {\n ariaLabel: closeKeyAriaLabel\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956\"\n }))), /*#__PURE__*/React.createElement(\"span\", {\n className: \"DocSearch-Label\"\n }, closeText))));\n}","import React from 'react';\nexport function Hit(_ref) {\n var hit = _ref.hit,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"a\", {\n href: hit.url\n }, children);\n}","import React from 'react';\nexport function LoadingIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n viewBox: \"0 0 38 38\",\n stroke: \"currentColor\",\n strokeOpacity: \".5\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n strokeOpacity: \".3\",\n cx: \"18\",\n cy: \"18\",\n r: \"18\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n}","import React from 'react';\nexport function RecentIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13\"\n })));\n}","import React from 'react';\nexport function ResetIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function SelectIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n className: \"DocSearch-Hit-Select-Icon\",\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 3v4c0 2-2 4-4 4H2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 17l-6-6 6-6\"\n })));\n}","import React from 'react';\n\nvar LvlIcon = function LvlIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n};\n\nexport function SourceIcon(props) {\n switch (props.type) {\n case 'lvl1':\n return /*#__PURE__*/React.createElement(LvlIcon, null);\n\n case 'content':\n return /*#__PURE__*/React.createElement(ContentIcon, null);\n\n default:\n return /*#__PURE__*/React.createElement(AnchorIcon, null);\n }\n}\n\nfunction AnchorIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }));\n}\n\nfunction ContentIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 5H3h14zm0 5H3h14zm0 5H3h14z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function StarIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"20\",\n height: \"20\",\n viewBox: \"0 0 20 20\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z\",\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinejoin: \"round\"\n }));\n}","import React from 'react';\nexport function ErrorIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0\"\n }));\n}","import React from 'react';\nexport function NoResultsIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: \"40\",\n height: \"40\",\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2\"\n }));\n}","import React from 'react';\nimport { ErrorIcon } from './icons';\nexport function ErrorScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations;\n var _translations$titleTe = translations.titleText,\n titleText = _translations$titleTe === void 0 ? 'Unable to fetch results' : _translations$titleTe,\n _translations$helpTex = translations.helpText,\n helpText = _translations$helpTex === void 0 ? 'You might want to check your network connection.' : _translations$helpTex;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-ErrorScreen\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Screen-Icon\"\n }, /*#__PURE__*/React.createElement(ErrorIcon, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Title\"\n }, titleText), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, helpText));\n}","var _excluded = [\"translations\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { NoResultsIcon } from './icons';\nexport function NoResultsScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$noResul = translations.noResultsText,\n noResultsText = _translations$noResul === void 0 ? 'No results for' : _translations$noResul,\n _translations$suggest = translations.suggestedQueryText,\n suggestedQueryText = _translations$suggest === void 0 ? 'Try searching for' : _translations$suggest,\n _translations$reportM = translations.reportMissingResultsText,\n reportMissingResultsText = _translations$reportM === void 0 ? 'Believe this query should return results?' : _translations$reportM,\n _translations$reportM2 = translations.reportMissingResultsLinkText,\n reportMissingResultsLinkText = _translations$reportM2 === void 0 ? 'Let us know.' : _translations$reportM2;\n var searchSuggestions = props.state.context.searchSuggestions;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-NoResults\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Screen-Icon\"\n }, /*#__PURE__*/React.createElement(NoResultsIcon, null)), /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Title\"\n }, noResultsText, \" \\\"\", /*#__PURE__*/React.createElement(\"strong\", null, props.state.query), \"\\\"\"), searchSuggestions && searchSuggestions.length > 0 && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-NoResults-Prefill-List\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, suggestedQueryText, \":\"), /*#__PURE__*/React.createElement(\"ul\", null, searchSuggestions.slice(0, 3).reduce(function (acc, search) {\n return [].concat(_toConsumableArray(acc), [/*#__PURE__*/React.createElement(\"li\", {\n key: search\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Prefill\",\n key: search,\n type: \"button\",\n onClick: function onClick() {\n props.setQuery(search.toLowerCase() + ' ');\n props.refresh();\n props.inputRef.current.focus();\n }\n }, search))]);\n }, []))), props.getMissingResultsUrl && /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, \"\".concat(reportMissingResultsText, \" \"), /*#__PURE__*/React.createElement(\"a\", {\n href: props.getMissingResultsUrl({\n query: props.state.query\n }),\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, reportMissingResultsLinkText)));\n}","var _excluded = [\"hit\", \"attribute\", \"tagName\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { createElement } from 'react';\n\nfunction getPropertyByPath(object, path) {\n var parts = path.split('.');\n return parts.reduce(function (prev, current) {\n if (prev !== null && prev !== void 0 && prev[current]) return prev[current];\n return null;\n }, object);\n}\n\nexport function Snippet(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute,\n _ref$tagName = _ref.tagName,\n tagName = _ref$tagName === void 0 ? 'span' : _ref$tagName,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return createElement(tagName, _objectSpread(_objectSpread({}, rest), {}, {\n dangerouslySetInnerHTML: {\n __html: getPropertyByPath(hit, \"_snippetResult.\".concat(attribute, \".value\")) || getPropertyByPath(hit, attribute)\n }\n }));\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport { Snippet } from './Snippet';\nexport function Results(props) {\n if (!props.collection || props.collection.items.length === 0) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"section\", {\n className: \"DocSearch-Hits\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-source\"\n }, props.title), /*#__PURE__*/React.createElement(\"ul\", props.getListProps(), props.collection.items.map(function (item, index) {\n return /*#__PURE__*/React.createElement(Result, _extends({\n key: [props.title, item.objectID].join(':'),\n item: item,\n index: index\n }, props));\n })));\n}\n\nfunction Result(_ref) {\n var item = _ref.item,\n index = _ref.index,\n renderIcon = _ref.renderIcon,\n renderAction = _ref.renderAction,\n getItemProps = _ref.getItemProps,\n onItemClick = _ref.onItemClick,\n collection = _ref.collection,\n hitComponent = _ref.hitComponent;\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isDeleting = _React$useState2[0],\n setIsDeleting = _React$useState2[1];\n\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n isFavoriting = _React$useState4[0],\n setIsFavoriting = _React$useState4[1];\n\n var action = React.useRef(null);\n var Hit = hitComponent;\n\n function runDeleteTransition(cb) {\n setIsDeleting(true);\n action.current = cb;\n }\n\n function runFavoriteTransition(cb) {\n setIsFavoriting(true);\n action.current = cb;\n }\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: ['DocSearch-Hit', item.__docsearch_parent && 'DocSearch-Hit--Child', isDeleting && 'DocSearch-Hit--deleting', isFavoriting && 'DocSearch-Hit--favoriting'].filter(Boolean).join(' '),\n onTransitionEnd: function onTransitionEnd() {\n if (action.current) {\n action.current();\n }\n }\n }, getItemProps({\n item: item,\n source: collection.source,\n onClick: function onClick(event) {\n onItemClick(item, event);\n }\n })), /*#__PURE__*/React.createElement(Hit, {\n hit: item\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-Container\"\n }, renderIcon({\n item: item,\n index: index\n }), item.hierarchy[item.type] && item.type === 'lvl1' && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n }), item.content && /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"content\"\n })), item.hierarchy[item.type] && (item.type === 'lvl2' || item.type === 'lvl3' || item.type === 'lvl4' || item.type === 'lvl5' || item.type === 'lvl6') && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"hierarchy.\".concat(item.type)\n }), /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n })), item.type === 'content' && /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-content-wrapper\"\n }, /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-title\",\n hit: item,\n attribute: \"content\"\n }), /*#__PURE__*/React.createElement(Snippet, {\n className: \"DocSearch-Hit-path\",\n hit: item,\n attribute: \"hierarchy.lvl1\"\n })), renderAction({\n item: item,\n runDeleteTransition: runDeleteTransition,\n runFavoriteTransition: runFavoriteTransition\n }))));\n}","export function groupBy(values, predicate, maxResultsPerGroup) {\n return values.reduce(function (acc, item) {\n var key = predicate(item);\n\n if (!acc.hasOwnProperty(key)) {\n acc[key] = [];\n } // We limit each section to show 5 hits maximum.\n // This acts as a frontend alternative to `distinct`.\n\n\n if (acc[key].length < (maxResultsPerGroup || 5)) {\n acc[key].push(item);\n }\n\n return acc;\n }, {});\n}","export function identity(x) {\n return x;\n}","/**\n * Detect when an event is modified with a special key to let the browser\n * trigger its default behavior.\n */\nexport function isModifierEvent(event) {\n var isMiddleClick = event.button === 1;\n return isMiddleClick || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;\n}","export function noop() {}","var regexHighlightTags = /(|<\\/mark>)/g;\nvar regexHasHighlightTags = RegExp(regexHighlightTags.source);\nexport function removeHighlightTags(hit) {\n var _internalDocSearchHit, _hit$_highlightResult;\n\n var internalDocSearchHit = hit;\n\n if (!internalDocSearchHit.__docsearch_parent && !hit._highlightResult) {\n return hit.hierarchy.lvl0;\n }\n\n var _ref = (internalDocSearchHit.__docsearch_parent ? (_internalDocSearchHit = internalDocSearchHit.__docsearch_parent) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit._highlightResult) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit.hierarchy) === null || _internalDocSearchHit === void 0 ? void 0 : _internalDocSearchHit.lvl0 : (_hit$_highlightResult = hit._highlightResult) === null || _hit$_highlightResult === void 0 || (_hit$_highlightResult = _hit$_highlightResult.hierarchy) === null || _hit$_highlightResult === void 0 ? void 0 : _hit$_highlightResult.lvl0) || {},\n value = _ref.value;\n\n return value && regexHasHighlightTags.test(value) ? value.replace(regexHighlightTags, '') : value;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport { SelectIcon, SourceIcon } from './icons';\nimport { Results } from './Results';\nimport { removeHighlightTags } from './utils';\nexport function ResultsScreen(props) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown-Container\"\n }, props.state.collections.map(function (collection) {\n if (collection.items.length === 0) {\n return null;\n }\n\n var title = removeHighlightTags(collection.items[0]);\n return /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n key: collection.source.sourceId,\n title: title,\n collection: collection,\n renderIcon: function renderIcon(_ref) {\n var _collection$items;\n\n var item = _ref.item,\n index = _ref.index;\n return /*#__PURE__*/React.createElement(React.Fragment, null, item.__docsearch_parent && /*#__PURE__*/React.createElement(\"svg\", {\n className: \"DocSearch-Hit-Tree\",\n viewBox: \"0 0 24 54\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n stroke: \"currentColor\",\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, item.__docsearch_parent !== ((_collection$items = collection.items[index + 1]) === null || _collection$items === void 0 ? void 0 : _collection$items.__docsearch_parent) ? /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6v21M20 27H8.3\"\n }) : /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 6v42M20 27H8.3\"\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(SourceIcon, {\n type: item.type\n })));\n },\n renderAction: function renderAction() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(SelectIcon, null));\n }\n }));\n }), props.resultsFooterComponent && /*#__PURE__*/React.createElement(\"section\", {\n className: \"DocSearch-HitsFooter\"\n }, /*#__PURE__*/React.createElement(props.resultsFooterComponent, {\n state: props.state\n })));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { RecentIcon, ResetIcon, StarIcon } from './icons';\nimport { Results } from './Results';\nexport function StartScreen(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$recentS = translations.recentSearchesTitle,\n recentSearchesTitle = _translations$recentS === void 0 ? 'Recent' : _translations$recentS,\n _translations$noRecen = translations.noRecentSearchesText,\n noRecentSearchesText = _translations$noRecen === void 0 ? 'No recent searches' : _translations$noRecen,\n _translations$saveRec = translations.saveRecentSearchButtonTitle,\n saveRecentSearchButtonTitle = _translations$saveRec === void 0 ? 'Save this search' : _translations$saveRec,\n _translations$removeR = translations.removeRecentSearchButtonTitle,\n removeRecentSearchButtonTitle = _translations$removeR === void 0 ? 'Remove this search from history' : _translations$removeR,\n _translations$favorit = translations.favoriteSearchesTitle,\n favoriteSearchesTitle = _translations$favorit === void 0 ? 'Favorite' : _translations$favorit,\n _translations$removeF = translations.removeFavoriteSearchButtonTitle,\n removeFavoriteSearchButtonTitle = _translations$removeF === void 0 ? 'Remove this search from favorites' : _translations$removeF;\n\n if (props.state.status === 'idle' && props.hasCollections === false) {\n if (props.disableUserPersonalization) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-StartScreen\"\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: \"DocSearch-Help\"\n }, noRecentSearchesText));\n }\n\n if (props.hasCollections === false) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown-Container\"\n }, /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n title: recentSearchesTitle,\n collection: props.state.collections[0],\n renderIcon: function renderIcon() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(RecentIcon, null));\n },\n renderAction: function renderAction(_ref2) {\n var item = _ref2.item,\n runFavoriteTransition = _ref2.runFavoriteTransition,\n runDeleteTransition = _ref2.runDeleteTransition;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: saveRecentSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runFavoriteTransition(function () {\n props.favoriteSearches.add(item);\n props.recentSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(StarIcon, null))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: removeRecentSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(function () {\n props.recentSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(ResetIcon, null))));\n }\n })), /*#__PURE__*/React.createElement(Results, _extends({}, props, {\n title: favoriteSearchesTitle,\n collection: props.state.collections[1],\n renderIcon: function renderIcon() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-icon\"\n }, /*#__PURE__*/React.createElement(StarIcon, null));\n },\n renderAction: function renderAction(_ref3) {\n var item = _ref3.item,\n runDeleteTransition = _ref3.runDeleteTransition;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Hit-action\"\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Hit-action-button\",\n title: removeFavoriteSearchButtonTitle,\n type: \"submit\",\n onClick: function onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(function () {\n props.favoriteSearches.remove(item);\n props.refresh();\n });\n }\n }, /*#__PURE__*/React.createElement(ResetIcon, null)));\n }\n })));\n}","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { ErrorScreen } from './ErrorScreen';\nimport { NoResultsScreen } from './NoResultsScreen';\nimport { ResultsScreen } from './ResultsScreen';\nimport { StartScreen } from './StartScreen';\nexport var ScreenState = React.memo(function (_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n if (props.state.status === 'error') {\n return /*#__PURE__*/React.createElement(ErrorScreen, {\n translations: translations === null || translations === void 0 ? void 0 : translations.errorScreen\n });\n }\n\n var hasCollections = props.state.collections.some(function (collection) {\n return collection.items.length > 0;\n });\n\n if (!props.state.query) {\n return /*#__PURE__*/React.createElement(StartScreen, _extends({}, props, {\n hasCollections: hasCollections,\n translations: translations === null || translations === void 0 ? void 0 : translations.startScreen\n }));\n }\n\n if (hasCollections === false) {\n return /*#__PURE__*/React.createElement(NoResultsScreen, _extends({}, props, {\n translations: translations === null || translations === void 0 ? void 0 : translations.noResultsScreen\n }));\n }\n\n return /*#__PURE__*/React.createElement(ResultsScreen, props);\n}, function areEqual(_prevProps, nextProps) {\n // We don't update the screen when Autocomplete is loading or stalled to\n // avoid UI flashes:\n // - Empty screen → Results screen\n // - NoResults screen → NoResults screen with another query\n return nextProps.state.status === 'loading' || nextProps.state.status === 'stalled';\n});","var _excluded = [\"translations\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport { MAX_QUERY_SIZE } from './constants';\nimport { LoadingIcon } from './icons/LoadingIcon';\nimport { ResetIcon } from './icons/ResetIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nexport function SearchBox(_ref) {\n var _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _translations$resetBu = translations.resetButtonTitle,\n resetButtonTitle = _translations$resetBu === void 0 ? 'Clear the query' : _translations$resetBu,\n _translations$resetBu2 = translations.resetButtonAriaLabel,\n resetButtonAriaLabel = _translations$resetBu2 === void 0 ? 'Clear the query' : _translations$resetBu2,\n _translations$cancelB = translations.cancelButtonText,\n cancelButtonText = _translations$cancelB === void 0 ? 'Cancel' : _translations$cancelB,\n _translations$cancelB2 = translations.cancelButtonAriaLabel,\n cancelButtonAriaLabel = _translations$cancelB2 === void 0 ? 'Cancel' : _translations$cancelB2;\n\n var _props$getFormProps = props.getFormProps({\n inputElement: props.inputRef.current\n }),\n onReset = _props$getFormProps.onReset;\n\n React.useEffect(function () {\n if (props.autoFocus && props.inputRef.current) {\n props.inputRef.current.focus();\n }\n }, [props.autoFocus, props.inputRef]);\n React.useEffect(function () {\n if (props.isFromSelection && props.inputRef.current) {\n props.inputRef.current.select();\n }\n }, [props.isFromSelection, props.inputRef]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"form\", {\n className: \"DocSearch-Form\",\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n },\n onReset: onReset\n }, /*#__PURE__*/React.createElement(\"label\", _extends({\n className: \"DocSearch-MagnifierLabel\"\n }, props.getLabelProps()), /*#__PURE__*/React.createElement(SearchIcon, null)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-LoadingIndicator\"\n }, /*#__PURE__*/React.createElement(LoadingIcon, null)), /*#__PURE__*/React.createElement(\"input\", _extends({\n className: \"DocSearch-Input\",\n ref: props.inputRef\n }, props.getInputProps({\n inputElement: props.inputRef.current,\n autoFocus: props.autoFocus,\n maxLength: MAX_QUERY_SIZE\n }))), /*#__PURE__*/React.createElement(\"button\", {\n type: \"reset\",\n title: resetButtonTitle,\n className: \"DocSearch-Reset\",\n \"aria-label\": resetButtonAriaLabel,\n hidden: !props.state.query\n }, /*#__PURE__*/React.createElement(ResetIcon, null))), /*#__PURE__*/React.createElement(\"button\", {\n className: \"DocSearch-Cancel\",\n type: \"reset\",\n \"aria-label\": cancelButtonAriaLabel,\n onClick: props.onClose\n }, cancelButtonText));\n}","export var MAX_QUERY_SIZE = 64;","var _excluded = [\"_highlightResult\", \"_snippetResult\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction isLocalStorageSupported() {\n var key = '__TEST_KEY__';\n\n try {\n localStorage.setItem(key, '');\n localStorage.removeItem(key);\n return true;\n } catch (error) {\n return false;\n }\n}\n\nfunction createStorage(key) {\n if (isLocalStorageSupported() === false) {\n return {\n setItem: function setItem() {},\n getItem: function getItem() {\n return [];\n }\n };\n }\n\n return {\n setItem: function setItem(item) {\n return window.localStorage.setItem(key, JSON.stringify(item));\n },\n getItem: function getItem() {\n var item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : [];\n }\n };\n}\n\nexport function createStoredSearches(_ref) {\n var key = _ref.key,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 5 : _ref$limit;\n var storage = createStorage(key);\n var items = storage.getItem().slice(0, limit);\n return {\n add: function add(item) {\n var _ref2 = item,\n _highlightResult = _ref2._highlightResult,\n _snippetResult = _ref2._snippetResult,\n hit = _objectWithoutProperties(_ref2, _excluded);\n\n var isQueryAlreadySaved = items.findIndex(function (x) {\n return x.objectID === hit.objectID;\n });\n\n if (isQueryAlreadySaved > -1) {\n items.splice(isQueryAlreadySaved, 1);\n }\n\n items.unshift(hit);\n items = items.slice(0, limit);\n storage.setItem(items);\n },\n remove: function remove(item) {\n items = items.filter(function (x) {\n return x.objectID !== item.objectID;\n });\n storage.setItem(items);\n },\n getAll: function getAll() {\n return items;\n }\n };\n}","function createBrowserLocalStorageCache(options) {\r\n const namespaceKey = `algoliasearch-client-js-${options.key}`;\r\n // eslint-disable-next-line functional/no-let\r\n let storage;\r\n const getStorage = () => {\r\n if (storage === undefined) {\r\n storage = options.localStorage || window.localStorage;\r\n }\r\n return storage;\r\n };\r\n const getNamespace = () => {\r\n return JSON.parse(getStorage().getItem(namespaceKey) || '{}');\r\n };\r\n const setNamespace = (namespace) => {\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n };\r\n const removeOutdatedCacheItems = () => {\r\n const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;\r\n const namespace = getNamespace();\r\n const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {\r\n return cacheItem.timestamp !== undefined;\r\n }));\r\n setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);\r\n if (!timeToLive)\r\n return;\r\n const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {\r\n const currentTimestamp = new Date().getTime();\r\n const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;\r\n return !isExpired;\r\n }));\r\n setNamespace(filteredNamespaceWithoutExpiredItems);\r\n };\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return Promise.resolve()\r\n .then(() => {\r\n removeOutdatedCacheItems();\r\n const keyAsString = JSON.stringify(key);\r\n return getNamespace()[keyAsString];\r\n })\r\n .then(value => {\r\n return Promise.all([value ? value.value : defaultValue(), value !== undefined]);\r\n })\r\n .then(([value, exists]) => {\r\n return Promise.all([value, exists || events.miss(value)]);\r\n })\r\n .then(([value]) => value);\r\n },\r\n set(key, value) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n namespace[JSON.stringify(key)] = {\r\n timestamp: new Date().getTime(),\r\n value,\r\n };\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n return value;\r\n });\r\n },\r\n delete(key) {\r\n return Promise.resolve().then(() => {\r\n const namespace = getNamespace();\r\n // eslint-disable-next-line functional/immutable-data\r\n delete namespace[JSON.stringify(key)];\r\n getStorage().setItem(namespaceKey, JSON.stringify(namespace));\r\n });\r\n },\r\n clear() {\r\n return Promise.resolve().then(() => {\r\n getStorage().removeItem(namespaceKey);\r\n });\r\n },\r\n };\r\n}\n\n// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.19.1';\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nconst MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',\r\n transporterStackTrace,\r\n };\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\n/* eslint no-console: 0 */\r\nfunction createConsoleLogger(logLevel) {\r\n return {\r\n debug(message, args) {\r\n if (LogLevelEnum.Debug >= logLevel) {\r\n console.debug(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n info(message, args) {\r\n if (LogLevelEnum.Info >= logLevel) {\r\n console.info(message, args);\r\n }\r\n return Promise.resolve();\r\n },\r\n error(message, args) {\r\n console.error(message, args);\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nfunction createBrowserXhrRequester() {\r\n return {\r\n send(request) {\r\n return new Promise((resolve) => {\r\n const baseRequester = new XMLHttpRequest();\r\n baseRequester.open(request.method, request.url, true);\r\n Object.keys(request.headers).forEach(key => baseRequester.setRequestHeader(key, request.headers[key]));\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n baseRequester.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onreadystatechange = () => {\r\n if (baseRequester.readyState > baseRequester.OPENED && responseTimeout === undefined) {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onerror = () => {\r\n // istanbul ignore next\r\n if (baseRequester.status === 0) {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText || 'Network request failed',\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n baseRequester.onload = () => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n content: baseRequester.responseText,\r\n status: baseRequester.status,\r\n isTimedOut: false,\r\n });\r\n };\r\n baseRequester.send(request.data);\r\n });\r\n },\r\n };\r\n}\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 1,\r\n read: 2,\r\n write: 30,\r\n },\r\n requester: createBrowserXhrRequester(),\r\n logger: createConsoleLogger(LogLevelEnum.Error),\r\n responsesCache: createInMemoryCache(),\r\n requestsCache: createInMemoryCache({ serializable: false }),\r\n hostsCache: createFallbackableCache({\r\n caches: [\r\n createBrowserLocalStorageCache({ key: `${version}-${appId}` }),\r\n createInMemoryCache(),\r\n ],\r\n }),\r\n userAgent: createUserAgent(version).add({\r\n segment: 'Browser',\r\n version: 'lite',\r\n }),\r\n authMode: AuthMode.WithinQueryParameters,\r\n };\r\n return createSearchClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n search: multipleQueries,\r\n searchForFacetValues: multipleSearchForFacetValues,\r\n multipleQueries,\r\n multipleSearchForFacetValues,\r\n customRequest,\r\n initIndex: base => (indexName) => {\r\n return initIndex(base)(indexName, {\r\n methods: { search, searchForFacetValues, findAnswers },\r\n });\r\n },\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = version;\n\nexport default algoliasearch;\n","export var version = '3.5.2';","var _excluded = [\"footer\", \"searchBox\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { createAutocomplete } from '@algolia/autocomplete-core';\nimport React from 'react';\nimport { MAX_QUERY_SIZE } from './constants';\nimport { Footer } from './Footer';\nimport { Hit } from './Hit';\nimport { ScreenState } from './ScreenState';\nimport { SearchBox } from './SearchBox';\nimport { createStoredSearches } from './stored-searches';\nimport { useSearchClient } from './useSearchClient';\nimport { useTouchEvents } from './useTouchEvents';\nimport { useTrapFocus } from './useTrapFocus';\nimport { groupBy, identity, noop, removeHighlightTags, isModifierEvent } from './utils';\nexport function DocSearchModal(_ref) {\n var appId = _ref.appId,\n apiKey = _ref.apiKey,\n indexName = _ref.indexName,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search docs' : _ref$placeholder,\n searchParameters = _ref.searchParameters,\n maxResultsPerGroup = _ref.maxResultsPerGroup,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? noop : _ref$onClose,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? identity : _ref$transformItems,\n _ref$hitComponent = _ref.hitComponent,\n hitComponent = _ref$hitComponent === void 0 ? Hit : _ref$hitComponent,\n _ref$resultsFooterCom = _ref.resultsFooterComponent,\n resultsFooterComponent = _ref$resultsFooterCom === void 0 ? function () {\n return null;\n } : _ref$resultsFooterCom,\n navigator = _ref.navigator,\n _ref$initialScrollY = _ref.initialScrollY,\n initialScrollY = _ref$initialScrollY === void 0 ? 0 : _ref$initialScrollY,\n _ref$transformSearchC = _ref.transformSearchClient,\n transformSearchClient = _ref$transformSearchC === void 0 ? identity : _ref$transformSearchC,\n _ref$disableUserPerso = _ref.disableUserPersonalization,\n disableUserPersonalization = _ref$disableUserPerso === void 0 ? false : _ref$disableUserPerso,\n _ref$initialQuery = _ref.initialQuery,\n initialQueryFromProp = _ref$initialQuery === void 0 ? '' : _ref$initialQuery,\n _ref$translations = _ref.translations,\n translations = _ref$translations === void 0 ? {} : _ref$translations,\n getMissingResultsUrl = _ref.getMissingResultsUrl,\n _ref$insights = _ref.insights,\n insights = _ref$insights === void 0 ? false : _ref$insights;\n\n var footerTranslations = translations.footer,\n searchBoxTranslations = translations.searchBox,\n screenStateTranslations = _objectWithoutProperties(translations, _excluded);\n\n var _React$useState = React.useState({\n query: '',\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n activeItemId: null,\n status: 'idle'\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n state = _React$useState2[0],\n setState = _React$useState2[1];\n\n var containerRef = React.useRef(null);\n var modalRef = React.useRef(null);\n var formElementRef = React.useRef(null);\n var dropdownRef = React.useRef(null);\n var inputRef = React.useRef(null);\n var snippetLength = React.useRef(10);\n var initialQueryFromSelection = React.useRef(typeof window !== 'undefined' ? window.getSelection().toString().slice(0, MAX_QUERY_SIZE) : '').current;\n var initialQuery = React.useRef(initialQueryFromProp || initialQueryFromSelection).current;\n var searchClient = useSearchClient(appId, apiKey, transformSearchClient);\n var favoriteSearches = React.useRef(createStoredSearches({\n key: \"__DOCSEARCH_FAVORITE_SEARCHES__\".concat(indexName),\n limit: 10\n })).current;\n var recentSearches = React.useRef(createStoredSearches({\n key: \"__DOCSEARCH_RECENT_SEARCHES__\".concat(indexName),\n // We display 7 recent searches and there's no favorites, but only\n // 4 when there are favorites.\n limit: favoriteSearches.getAll().length === 0 ? 7 : 4\n })).current;\n var saveRecentSearch = React.useCallback(function saveRecentSearch(item) {\n if (disableUserPersonalization) {\n return;\n } // We don't store `content` record, but their parent if available.\n\n\n var search = item.type === 'content' ? item.__docsearch_parent : item; // We save the recent search only if it's not favorited.\n\n if (search && favoriteSearches.getAll().findIndex(function (x) {\n return x.objectID === search.objectID;\n }) === -1) {\n recentSearches.add(search);\n }\n }, [favoriteSearches, recentSearches, disableUserPersonalization]);\n var sendItemClickEvent = React.useCallback(function (item) {\n if (!state.context.algoliaInsightsPlugin || !item.__autocomplete_id) return;\n var insightsItem = item;\n var insightsClickParams = {\n eventName: 'Item Selected',\n index: insightsItem.__autocomplete_indexName,\n items: [insightsItem],\n positions: [item.__autocomplete_id],\n queryID: insightsItem.__autocomplete_queryID\n };\n state.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(insightsClickParams);\n }, [state.context.algoliaInsightsPlugin]);\n var autocomplete = React.useMemo(function () {\n return createAutocomplete({\n id: 'docsearch',\n defaultActiveItemId: 0,\n placeholder: placeholder,\n openOnFocus: true,\n initialState: {\n query: initialQuery,\n context: {\n searchSuggestions: []\n }\n },\n insights: insights,\n navigator: navigator,\n onStateChange: function onStateChange(props) {\n setState(props.state);\n },\n getSources: function getSources(_ref2) {\n var query = _ref2.query,\n sourcesState = _ref2.state,\n setContext = _ref2.setContext,\n setStatus = _ref2.setStatus;\n\n if (!query) {\n if (disableUserPersonalization) {\n return [];\n }\n\n return [{\n sourceId: 'recentSearches',\n onSelect: function onSelect(_ref3) {\n var item = _ref3.item,\n event = _ref3.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref4) {\n var item = _ref4.item;\n return item.url;\n },\n getItems: function getItems() {\n return recentSearches.getAll();\n }\n }, {\n sourceId: 'favoriteSearches',\n onSelect: function onSelect(_ref5) {\n var item = _ref5.item,\n event = _ref5.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref6) {\n var item = _ref6.item;\n return item.url;\n },\n getItems: function getItems() {\n return favoriteSearches.getAll();\n }\n }];\n }\n\n var insightsActive = Boolean(insights);\n return searchClient.search([{\n query: query,\n indexName: indexName,\n params: _objectSpread({\n attributesToRetrieve: ['hierarchy.lvl0', 'hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3', 'hierarchy.lvl4', 'hierarchy.lvl5', 'hierarchy.lvl6', 'content', 'type', 'url'],\n attributesToSnippet: [\"hierarchy.lvl1:\".concat(snippetLength.current), \"hierarchy.lvl2:\".concat(snippetLength.current), \"hierarchy.lvl3:\".concat(snippetLength.current), \"hierarchy.lvl4:\".concat(snippetLength.current), \"hierarchy.lvl5:\".concat(snippetLength.current), \"hierarchy.lvl6:\".concat(snippetLength.current), \"content:\".concat(snippetLength.current)],\n snippetEllipsisText: '…',\n highlightPreTag: '',\n highlightPostTag: '',\n hitsPerPage: 20,\n clickAnalytics: insightsActive\n }, searchParameters)\n }]).catch(function (error) {\n // The Algolia `RetryError` happens when all the servers have\n // failed, meaning that there's no chance the response comes\n // back. This is the right time to display an error.\n // See https://github.com/algolia/algoliasearch-client-javascript/blob/2ffddf59bc765cd1b664ee0346b28f00229d6e12/packages/transporter/src/errors/createRetryError.ts#L5\n if (error.name === 'RetryError') {\n setStatus('error');\n }\n\n throw error;\n }).then(function (_ref7) {\n var results = _ref7.results;\n var firstResult = results[0];\n var hits = firstResult.hits,\n nbHits = firstResult.nbHits;\n var sources = groupBy(hits, function (hit) {\n return removeHighlightTags(hit);\n }, maxResultsPerGroup); // We store the `lvl0`s to display them as search suggestions\n // in the \"no results\" screen.\n\n if (sourcesState.context.searchSuggestions.length < Object.keys(sources).length) {\n setContext({\n searchSuggestions: Object.keys(sources)\n });\n }\n\n setContext({\n nbHits: nbHits\n });\n var insightsParams = {};\n\n if (insightsActive) {\n insightsParams = {\n __autocomplete_indexName: indexName,\n __autocomplete_queryID: firstResult.queryID,\n __autocomplete_algoliaCredentials: {\n appId: appId,\n apiKey: apiKey\n }\n };\n }\n\n return Object.values(sources).map(function (items, index) {\n return {\n sourceId: \"hits\".concat(index),\n onSelect: function onSelect(_ref8) {\n var item = _ref8.item,\n event = _ref8.event;\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n },\n getItemUrl: function getItemUrl(_ref9) {\n var item = _ref9.item;\n return item.url;\n },\n getItems: function getItems() {\n return Object.values(groupBy(items, function (item) {\n return item.hierarchy.lvl1;\n }, maxResultsPerGroup)).map(transformItems).map(function (groupedHits) {\n return groupedHits.map(function (item) {\n var parent = null;\n var potentialParent = groupedHits.find(function (siblingItem) {\n return siblingItem.type === 'lvl1' && siblingItem.hierarchy.lvl1 === item.hierarchy.lvl1;\n });\n\n if (item.type !== 'lvl1' && potentialParent) {\n parent = potentialParent;\n }\n\n return _objectSpread(_objectSpread({}, item), {}, {\n __docsearch_parent: parent\n }, insightsParams);\n });\n }).flat();\n }\n };\n });\n });\n }\n });\n }, [indexName, searchParameters, maxResultsPerGroup, searchClient, onClose, recentSearches, favoriteSearches, saveRecentSearch, initialQuery, placeholder, navigator, transformItems, disableUserPersonalization, insights, appId, apiKey]);\n var getEnvironmentProps = autocomplete.getEnvironmentProps,\n getRootProps = autocomplete.getRootProps,\n refresh = autocomplete.refresh;\n useTouchEvents({\n getEnvironmentProps: getEnvironmentProps,\n panelElement: dropdownRef.current,\n formElement: formElementRef.current,\n inputElement: inputRef.current\n });\n useTrapFocus({\n container: containerRef.current\n });\n React.useEffect(function () {\n document.body.classList.add('DocSearch--active');\n return function () {\n var _window$scrollTo, _window;\n\n document.body.classList.remove('DocSearch--active'); // IE11 doesn't support `scrollTo` so we check that the method exists\n // first.\n\n (_window$scrollTo = (_window = window).scrollTo) === null || _window$scrollTo === void 0 ? void 0 : _window$scrollTo.call(_window, 0, initialScrollY);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(function () {\n var isMobileMediaQuery = window.matchMedia('(max-width: 768px)');\n\n if (isMobileMediaQuery.matches) {\n snippetLength.current = 5;\n }\n }, []);\n React.useEffect(function () {\n if (dropdownRef.current) {\n dropdownRef.current.scrollTop = 0;\n }\n }, [state.query]); // We don't focus the input when there's an initial query (i.e. Selection\n // Search) because users rather want to see the results directly, without the\n // keyboard appearing.\n // We therefore need to refresh the autocomplete instance to load all the\n // results, which is usually triggered on focus.\n\n React.useEffect(function () {\n if (initialQuery.length > 0) {\n refresh();\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n }\n }, [initialQuery, refresh]); // We rely on a CSS property to set the modal height to the full viewport height\n // because all mobile browsers don't compute their height the same way.\n // See https://css-tricks.com/the-trick-to-viewport-units-on-mobile/\n\n React.useEffect(function () {\n function setFullViewportHeight() {\n if (modalRef.current) {\n var vh = window.innerHeight * 0.01;\n modalRef.current.style.setProperty('--docsearch-vh', \"\".concat(vh, \"px\"));\n }\n }\n\n setFullViewportHeight();\n window.addEventListener('resize', setFullViewportHeight);\n return function () {\n window.removeEventListener('resize', setFullViewportHeight);\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: containerRef\n }, getRootProps({\n 'aria-expanded': true\n }), {\n className: ['DocSearch', 'DocSearch-Container', state.status === 'stalled' && 'DocSearch-Container--Stalled', state.status === 'error' && 'DocSearch-Container--Errored'].filter(Boolean).join(' '),\n role: \"button\",\n tabIndex: 0,\n onMouseDown: function onMouseDown(event) {\n if (event.target === event.currentTarget) {\n onClose();\n }\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Modal\",\n ref: modalRef\n }, /*#__PURE__*/React.createElement(\"header\", {\n className: \"DocSearch-SearchBar\",\n ref: formElementRef\n }, /*#__PURE__*/React.createElement(SearchBox, _extends({}, autocomplete, {\n state: state,\n autoFocus: initialQuery.length === 0,\n inputRef: inputRef,\n isFromSelection: Boolean(initialQuery) && initialQuery === initialQueryFromSelection,\n translations: searchBoxTranslations,\n onClose: onClose\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"DocSearch-Dropdown\",\n ref: dropdownRef\n }, /*#__PURE__*/React.createElement(ScreenState, _extends({}, autocomplete, {\n indexName: indexName,\n state: state,\n hitComponent: hitComponent,\n resultsFooterComponent: resultsFooterComponent,\n disableUserPersonalization: disableUserPersonalization,\n recentSearches: recentSearches,\n favoriteSearches: favoriteSearches,\n inputRef: inputRef,\n translations: screenStateTranslations,\n getMissingResultsUrl: getMissingResultsUrl,\n onItemClick: function onItemClick(item, event) {\n // If insights is active, send insights click event\n sendItemClickEvent(item);\n saveRecentSearch(item);\n\n if (!isModifierEvent(event)) {\n onClose();\n }\n }\n }))), /*#__PURE__*/React.createElement(\"footer\", {\n className: \"DocSearch-Footer\"\n }, /*#__PURE__*/React.createElement(Footer, {\n translations: footerTranslations\n }))));\n}","import algoliasearch from 'algoliasearch/dist/algoliasearch-lite.esm.browser';\nimport React from 'react';\nimport { version } from './version';\nexport function useSearchClient(appId, apiKey, transformSearchClient) {\n var searchClient = React.useMemo(function () {\n var client = algoliasearch(appId, apiKey);\n client.addAlgoliaAgent('docsearch', version); // Since DocSearch.js relies on DocSearch React with an alias to Preact,\n // we cannot add the `docsearch-react` user agent by default, otherwise\n // it would also be sent on a DocSearch.js integration.\n // We therefore only add the `docsearch-react` user agent if `docsearch.js`\n // is not present.\n\n if (/docsearch.js \\(.*\\)/.test(client.transporter.userAgent.value) === false) {\n client.addAlgoliaAgent('docsearch-react', version);\n }\n\n return transformSearchClient(client);\n }, [appId, apiKey, transformSearchClient]);\n return searchClient;\n}","import React from 'react';\nexport function useTouchEvents(_ref) {\n var getEnvironmentProps = _ref.getEnvironmentProps,\n panelElement = _ref.panelElement,\n formElement = _ref.formElement,\n inputElement = _ref.inputElement;\n React.useEffect(function () {\n if (!(panelElement && formElement && inputElement)) {\n return undefined;\n }\n\n var _getEnvironmentProps = getEnvironmentProps({\n panelElement: panelElement,\n formElement: formElement,\n inputElement: inputElement\n }),\n onTouchStart = _getEnvironmentProps.onTouchStart,\n onTouchMove = _getEnvironmentProps.onTouchMove;\n\n window.addEventListener('touchstart', onTouchStart);\n window.addEventListener('touchmove', onTouchMove);\n return function () {\n window.removeEventListener('touchstart', onTouchStart);\n window.removeEventListener('touchmove', onTouchMove);\n };\n }, [getEnvironmentProps, panelElement, formElement, inputElement]);\n}","import React from 'react';\nexport function useTrapFocus(_ref) {\n var container = _ref.container;\n React.useEffect(function () {\n if (!container) {\n return undefined;\n }\n\n var focusableElements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), input:not([disabled])');\n var firstElement = focusableElements[0];\n var lastElement = focusableElements[focusableElements.length - 1];\n\n function trapFocus(event) {\n if (event.key !== 'Tab') {\n return;\n }\n\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n }\n } else if (document.activeElement === lastElement) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n\n container.addEventListener('keydown', trapFocus);\n return function () {\n container.removeEventListener('keydown', trapFocus);\n };\n }, [container]);\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport React from 'react';\nimport { createPortal } from 'react-dom';\nimport { DocSearchButton } from './DocSearchButton';\nimport { DocSearchModal } from './DocSearchModal';\nimport { useDocSearchKeyboardEvents } from './useDocSearchKeyboardEvents';\nexport function DocSearch(props) {\n var _props$translations, _props$translations2;\n\n var searchButtonRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isOpen = _React$useState2[0],\n setIsOpen = _React$useState2[1];\n\n var _React$useState3 = React.useState((props === null || props === void 0 ? void 0 : props.initialQuery) || undefined),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n initialQuery = _React$useState4[0],\n setInitialQuery = _React$useState4[1];\n\n var onOpen = React.useCallback(function () {\n setIsOpen(true);\n }, [setIsOpen]);\n var onClose = React.useCallback(function () {\n setIsOpen(false);\n }, [setIsOpen]);\n var onInput = React.useCallback(function (event) {\n setIsOpen(true);\n setInitialQuery(event.key);\n }, [setIsOpen, setInitialQuery]);\n useDocSearchKeyboardEvents({\n isOpen: isOpen,\n onOpen: onOpen,\n onClose: onClose,\n onInput: onInput,\n searchButtonRef: searchButtonRef\n });\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DocSearchButton, {\n ref: searchButtonRef,\n translations: props === null || props === void 0 || (_props$translations = props.translations) === null || _props$translations === void 0 ? void 0 : _props$translations.button,\n onClick: onOpen\n }), isOpen && createPortal( /*#__PURE__*/React.createElement(DocSearchModal, _extends({}, props, {\n initialScrollY: window.scrollY,\n initialQuery: initialQuery,\n translations: props === null || props === void 0 || (_props$translations2 = props.translations) === null || _props$translations2 === void 0 ? void 0 : _props$translations2.modal,\n onClose: onClose\n })), document.body));\n}","import React from 'react';\n\nfunction isEditingContent(event) {\n var element = event.target;\n var tagName = element.tagName;\n return element.isContentEditable || tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA';\n}\n\nexport function useDocSearchKeyboardEvents(_ref) {\n var isOpen = _ref.isOpen,\n onOpen = _ref.onOpen,\n onClose = _ref.onClose,\n onInput = _ref.onInput,\n searchButtonRef = _ref.searchButtonRef;\n React.useEffect(function () {\n function onKeyDown(event) {\n var _event$key;\n\n function open() {\n // We check that no other DocSearch modal is showing before opening\n // another one.\n if (!document.body.classList.contains('DocSearch--active')) {\n onOpen();\n }\n }\n\n if (event.keyCode === 27 && isOpen || // The `Cmd+K` shortcut both opens and closes the modal.\n // We need to check for `event.key` because it can be `undefined` with\n // Chrome's autofill feature.\n // See https://github.com/paperjs/paper.js/issues/1398\n ((_event$key = event.key) === null || _event$key === void 0 ? void 0 : _event$key.toLowerCase()) === 'k' && (event.metaKey || event.ctrlKey) || // The `/` shortcut opens but doesn't close the modal because it's\n // a character.\n !isEditingContent(event) && event.key === '/' && !isOpen) {\n event.preventDefault();\n\n if (isOpen) {\n onClose();\n } else if (!document.body.classList.contains('DocSearch--active')) {\n open();\n }\n }\n\n if (searchButtonRef && searchButtonRef.current === document.activeElement && onInput) {\n if (/[a-zA-Z0-9]/.test(String.fromCharCode(event.keyCode))) {\n onInput(event);\n }\n }\n }\n\n window.addEventListener('keydown', onKeyDown);\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [isOpen, onOpen, onClose, onInput, searchButtonRef]);\n}","import type { DocSearchProps as DocSearchComponentProps } from '@docsearch/react';\nimport { DocSearch, version } from '@docsearch/react';\nimport React, { render } from 'preact/compat';\n\nfunction getHTMLElement(\n value: HTMLElement | string,\n environment: DocSearchProps['environment'] = window\n): HTMLElement {\n if (typeof value === 'string') {\n return environment.document.querySelector(value)!;\n }\n\n return value;\n}\n\ninterface DocSearchProps extends DocSearchComponentProps {\n container: HTMLElement | string;\n environment?: typeof window;\n}\n\nexport function docsearch(props: DocSearchProps) {\n render(\n {\n searchClient.addAlgoliaAgent('docsearch.js', version);\n\n return props.transformSearchClient\n ? props.transformSearchClient(searchClient)\n : searchClient;\n }}\n />,\n getHTMLElement(props.container, props.environment)\n );\n}\n"],"names":["EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","options","oldBeforeRender","oldAfterDiff","diffed","oldCommit","oldBeforeUnmount","unmount","getHookState","index","type","hooks","__","__h","length","push","useState","initialState","useReducer","invokeOrReturn","reducer","init","hookState","_reducer","n","nextValue","action","setState","useEffect","callback","args","state","argsChanged","useLayoutEffect","useMemo","factory","flushAfterPaintEffects","forEach","t","component","invokeCleanup","invokeEffect","e","vnode","c","requestAnimationFrame","raf","done","clearTimeout","timeout","HAS_RAF","cancelAnimationFrame","setTimeout","commitQueue","some","filter","cb","hook","comp","oldArgs","newArgs","arg","f","assign","obj","props","i","shallowDiffers","a","b","initialValue","current","ref","createHandle","concat","context","provider","sub","value","formatter","useDebugValue","ControlKeyIcon","React","createElement","width","height","className","d","strokeWidth","stroke","fill","strokeLinecap","SearchIcon","viewBox","fillRule","strokeLinejoin","_excluded","_extends","Object","target","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ACTION_KEY_DEFAULT","DocSearchButton","forwardRef","_ref","_ref$translations","translations","_translations$buttonT","buttonText","_translations$buttonA","buttonAriaLabel","_useState2","setKey","navigator","platform","Fragment","debounce","fn","time","timerId","undefined","_len","_key","flatten","values","reduce","autocompleteId","getItemsCount","collections","sum","collection","items","isPrimitive","isEqual","first","second","_Object$keys","noop","userAgents","segment","version","createClickedEvent","item","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","_x","_r","return","_excluded2","_typeof","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","input","hint","prim","toPrimitive","res","String","Number","_toPrimitive","_toPropertyKey","configurable","writable","chunk","chunkSize","chunks","objectIDs","mapToInsightsParamsApi","params","map","param","_ref2","createSearchInsightsApi","searchInsights","_split$map2","major","minor","canSendHeaders","split","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","headers","appId","apiKey","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","acc","_ref3","_ref4","payload","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","_getOptions","_ref8","onSelect","_ref9","onActive","getOptions","providedInsightsClient","insightsClient","onSelectEvent","onActiveEvent","window","safelyRunOnBrowser","pointer","AlgoliaAnalyticsObject","queue","environment","errorMessage","script","document","async","src","onerror","console","error","body","appendChild","cause","loadInsights","previousItems","debouncedOnStateChange","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","createInternalCancelablePromise","promise","then","onfulfilled","onrejected","createCallback","catch","finally","onfinally","onCancelList","cancel","isCanceled","callbacks","cancelable","onResult","fallback","getNextActiveItemId","moveAmount","baseIndex","itemCount","defaultActiveItemId","numericIndex","getActiveItem","collectionIndex","collectionsCount","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","getItemInputValue","itemUrl","getItemUrl","regex","createStore","onStoreStateChange","list","getState","dispatch","prevState","pendingRequests","add","cancelablePromise","cancelAll","isEmpty","getDefaultProps","pluginSubscribers","_props$id","plugins","debug","openOnFocus","placeholder","autoFocus","stallThreshold","shouldPanelOpen","reshape","sources","id","query","completion","status","_props$onStateChange","_x$onStateChange","onSubmit","_props$onSubmit","_x$onSubmit","onReset","_props$onReset","_x$onReset","getSources","Promise","all","plugin","Boolean","seenSourceIds","resolve","maybeSource","sourceId","includes","Error","JSON","stringify","defaultSource","setIsOpen","onResolve","__default","normalizedSource","getNormalizedSources","nested","_x$onSelect","_x$onActive","_x$onResolve","navigate","location","navigateNewTab","windowReference","open","focus","navigateNewWindow","isDescription","execute","preResolve","itemsOrDescription","description","contextParameters","requesterId","_state$context$key","requests","queries","transformResponse","searchClient","container","find","_container$items","request","maybeDescription","responses","postResolve","store","rawResults","matches","response","results","transform","hits","result","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","every","basePromiseId","latestResolvedId","latestResolvedValue","lastStalledId","runConcurrentSafePromise","currentPromiseId","onInput","_ref$nextState","nextState","refresh","setters","setCollections","setQuery","setActiveItemId","setStatus","_nextState$isOpen","_request","getItems","originalSourcesBySourceId","sourcesBySourceId","_nextState$isOpen2","isPanelOpen","highlightedItem","_excluded3","_excluded4","_excluded5","_excluded6","_excluded7","getPropGetters","getAutocompleteId","instanceId","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","contextNode","parent","child","contains","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","rest","role","getFormProps","noValidate","_providedProps$inputE","preventDefault","_providedProps$inputE2","getLabelProps","sourceIndex","htmlFor","getInputProps","_props$environment$na","onFocus","_ref2$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","_onKeyDown","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","optionsKey","__autocomplete_metadata","extraOptions","ua","getCompletion","_getActiveItem","stateReducer","_nextState","createAutocomplete","subscribers","rawValue","baseItemId","getAutocompleteSetters","propGetters","Event","insightsParams","_plugin$subscribe","_environment$navigato","_environment$navigato2","metadata","metadataContainer","headRef","querySelector","content","injectMetadata","AlgoliaLogo","_translations$searchB","searchByText","href","hostname","rel","xmlns","y","rx","ry","CommandIcon","ariaLabel","children","Footer","_translations$selectT","selectText","_translations$selectK","selectKeyAriaLabel","_translations$navigat","navigateText","_translations$navigat2","navigateUpKeyAriaLabel","_translations$navigat3","navigateDownKeyAriaLabel","_translations$closeTe","closeText","_translations$closeKe","closeKeyAriaLabel","Hit","url","LoadingIcon","strokeOpacity","cx","cy","r","attributeName","to","dur","repeatCount","RecentIcon","ResetIcon","SelectIcon","LvlIcon","SourceIcon","ContentIcon","AnchorIcon","StarIcon","ErrorIcon","NoResultsIcon","ErrorScreen","_translations$titleTe","titleText","_translations$helpTex","helpText","NoResultsScreen","_translations$noResul","noResultsText","_translations$suggest","suggestedQueryText","_translations$reportM","reportMissingResultsText","_translations$reportM2","reportMissingResultsLinkText","searchSuggestions","search","toLowerCase","inputRef","getMissingResultsUrl","getPropertyByPath","path","prev","Snippet","attribute","_ref$tagName","tagName","dangerouslySetInnerHTML","__html","Results","title","Result","join","renderIcon","renderAction","onItemClick","hitComponent","_React$useState2","isDeleting","setIsDeleting","_React$useState4","isFavoriting","setIsFavoriting","useRef","__docsearch_parent","onTransitionEnd","hierarchy","runDeleteTransition","runFavoriteTransition","groupBy","predicate","maxResultsPerGroup","identity","isModifierEvent","button","regexHighlightTags","regexHasHighlightTags","RegExp","removeHighlightTags","_internalDocSearchHit","_hit$_highlightResult","internalDocSearchHit","lvl0","replace","ResultsScreen","_collection$items","resultsFooterComponent","StartScreen","_translations$recentS","recentSearchesTitle","_translations$noRecen","noRecentSearchesText","_translations$saveRec","saveRecentSearchButtonTitle","_translations$removeR","removeRecentSearchButtonTitle","_translations$favorit","favoriteSearchesTitle","_translations$removeF","removeFavoriteSearchButtonTitle","hasCollections","disableUserPersonalization","stopPropagation","favoriteSearches","recentSearches","remove","ScreenState","memo","errorScreen","noResultsScreen","startScreen","_prevProps","nextProps","SearchBox","_translations$resetBu","resetButtonTitle","_translations$resetBu2","resetButtonAriaLabel","_translations$cancelB","cancelButtonText","_translations$cancelB2","cancelButtonAriaLabel","isFromSelection","select","hidden","onClose","createStorage","localStorage","setItem","removeItem","isLocalStorageSupported","getItem","parse","createStoredSearches","_ref$limit","limit","storage","_snippetResult","isQueryAlreadySaved","splice","unshift","getAll","createBrowserLocalStorageCache","namespaceKey","getStorage","getNamespace","setNamespace","namespace","removeOutdatedCacheItems","timeToLive","filteredNamespaceWithoutOldFormattedCacheItems","fromEntries","entries","timestamp","filteredNamespaceWithoutExpiredItems","cacheItem","currentTimestamp","Date","getTime","get","defaultValue","events","miss","keyAsString","exists","set","delete","clear","createFallbackableCache","caches","shift","createInMemoryCache","serializable","cache","shuffle","array","Math","floor","random","addMethods","base","methods","encode","format","encodeURIComponent","AuthMode","WithinQueryParameters","WithinHeaders","createMappedRequestOptions","requestOptions","data","queryParameters","cacheable","CallEnum","Read","Write","Any","HostStatusEnum","EXPIRATION_DELAY","createStatefulHost","host","lastUpdate","now","createStatelessHost","protocol","accept","MethodEnum","createRetryableOptions","hostsCache","statelessHosts","statelessHost","statefulHosts","hostsUp","isStatefulHostUp","hostsTimeouted","isStatefulHostTimeouted","hostsAvailable","getTimeout","timeoutsCount","baseTimeout","retryableRequest","transporter","stackTrace","serializeData","serializedHeaders","header","serializeHeaders","dataQueryParameters","retry","hosts","pop","message","transporterStackTrace","stackTraceWithoutCredentials","serializeUrl","connectTimeout","timeouts","connect","responseTimeout","pushToStackTrace","stackFrame","triesLeft","decisions","onSuccess","createDeserializationError","deserializeSuccess","onRetry","isTimedOut","logger","info","stackFrameWithoutCredentials","onFail","createApiError","deserializeFailure","requester","send","outcomes","isNetworkError","isRetryable","retryDecision","reverse","createUserAgent","addedUserAgent","queryParametersAsString","serializeQueryParameters","charAt","substr","parameters","modifiedHeaders","createSearchClient","auth","authMode","credentials","createAuth","requestsCache","responsesCache","read","mappedRequestOptions","createRetryableRequest","reject","write","createTransporter","addAlgoliaAgent","clearCache","customRequest","initIndex","searchIndex","multipleQueries","multipleSearchForFacetValues","facetName","facetQuery","searchForFacetValues","findAnswers","queryLanguages","LogLevelEnum","algoliasearch","logLevel","commonOptions","baseRequester","XMLHttpRequest","setRequestHeader","createTimeout","abort","onreadystatechange","readyState","OPENED","responseText","onload","DocSearchModal","_ref$placeholder","searchParameters","_ref$onClose","_ref$transformItems","transformItems","_ref$hitComponent","_ref$resultsFooterCom","_ref$initialScrollY","initialScrollY","_ref$transformSearchC","transformSearchClient","_ref$disableUserPerso","_ref$initialQuery","initialQuery","initialQueryFromProp","_ref$insights","footerTranslations","footer","searchBoxTranslations","searchBox","screenStateTranslations","containerRef","modalRef","formElementRef","dropdownRef","snippetLength","initialQueryFromSelection","getSelection","client","useSearchClient","saveRecentSearch","useCallback","sendItemClickEvent","insightsItem","insightsClickParams","autocomplete","sourcesState","insightsActive","attributesToRetrieve","attributesToSnippet","snippetEllipsisText","highlightPreTag","highlightPostTag","hitsPerPage","firstResult","nbHits","lvl1","groupedHits","potentialParent","siblingItem","flat","_getEnvironmentProps","addEventListener","removeEventListener","useTouchEvents","focusableElements","querySelectorAll","firstElement","lastElement","trapFocus","useTrapFocus","classList","_window$scrollTo","_window","scrollTo","matchMedia","scrollTop","setFullViewportHeight","vh","innerHeight","style","setProperty","tabIndex","DocSearch","_props$translations","_props$translations2","searchButtonRef","setInitialQuery","onOpen","_event$key","keyCode","element","isContentEditable","isEditingContent","fromCharCode","useDocSearchKeyboardEvents","createPortal","scrollY","modal","render","getHTMLElement"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../../../../node_modules/preact/dist/preact.module.js","../../../../node_modules/preact/hooks/dist/hooks.module.js","../../../../node_modules/preact/compat/dist/compat.module.js","../../../docsearch-react/dist/esm/index.js","../../src/docsearch.tsx"],"sourcesContent":["var n,l,u,t,i,o,r,f,e,c,s,a,h={},v=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function b(n){return n.children}function k(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));M.__r=0}function P(n,l,u,t,i,o,r,f,e,c,s){var a,p,y,d,w,_=t&&t.__k||v,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i).__=n,i.__b=n.__b+1,o=null,-1!==(f=i.__i=L(i,u,r,s))&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f==r-1?a--:f==r+1?a++:(f>r?a--:a++,i.__u|=65536))):i=n.__k[t]=null;if(s)for(t=0;t(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.forEach(function(n){n.__e=!0,S(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=v.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},k.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),S(this))},k.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),S(this))},k.prototype.render=b,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},M.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{k as Component,b as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function d(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function h(n){return o=1,p(D,n)}function p(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=d(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function _(n,u){var i=d(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function T(n,r){var u=d(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=d(t++,10),i=h();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.i=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.i=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,p as useReducer,A as useRef,h as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as c,createRef as f,cloneElement as l}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useCallback as a,useContext as s,useDebugValue as h,useEffect as v,useId as d,useImperativeHandle as p,useLayoutEffect as m,useMemo as y,useReducer as _,useRef as b,useState as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){this.props=n,this.context=t}function C(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:g(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(E.prototype=new n).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return g(this.props,n)||g(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function w(n){function t(t){if(!(\"ref\"in t))return n(t,null);var e=t.ref;delete t.ref;var r=n(t,e);return t.ref=e,r}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var k=function(n,t){return null==n?null:r(r(n).map(t))},I={map:k,forEach:k,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},N=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);N(n,t,e,r)};var M=e.unmount;function T(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=function(n,t){for(var e in t)n[e]=t[e];return n}({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return T(n,t,e)})),n}function A(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return A(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function L(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function O(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function F(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),M&&M(n)},(D.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=L(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(c):c())};e.__R=i;var c=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=A(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=T(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var U=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),o(t(V,{context:e.context},n.__v),e.l)}function P(n,e){var r=t(W,{__v:n,i:e});return r.containerInfo=e,r}(F.prototype=new n).__a=function(n){var t=this,e=L(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),U(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){U(n,e,t)})};var j=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,z=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,B=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,H=/[A-Z0-9]/g,Z=\"undefined\"!=typeof document,Y=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function $(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=e.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}e.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={enumerable:!1,configurable:!0,get:function(){return this.class}},tn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var c=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==c||Z&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var f=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===c?c=\"\":\"translate\"===f&&\"no\"===c?c=!1:\"o\"===f[0]&&\"n\"===f[1]?\"ondoubleclick\"===f?i=\"ondblclick\":\"onchange\"!==f||\"input\"!==e&&\"textarea\"!==e||Y(t.type)?\"onfocus\"===f?i=\"onfocusin\":\"onblur\"===f?i=\"onfocusout\":B.test(i)&&(i=f):f=i=\"oninput\":o&&z.test(i)?i=i.replace(H,\"-$&\").toLowerCase():null===c&&(c=void 0),\"oninput\"===f&&u[i=f]&&(i=\"oninputCapture\"),u[i]=c}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",nn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=j,tn&&tn(n)};var en=e.__r;e.__r=function(n){en&&en(n),X=n.__c};var rn=e.diffed;e.diffed=function(n){rn&&rn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),X=null};var un={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value},useCallback:a,useContext:s,useDebugValue:h,useDeferredValue:_n,useEffect:v,useId:d,useImperativeHandle:p,useInsertionEffect:Sn,useLayoutEffect:m,useMemo:y,useReducer:_,useRef:b,useState:S,useSyncExternalStore:En,useTransition:bn}}},on=\"18.3.1\";function cn(n){return t.bind(null,n)}function fn(n){return!!n&&n.$$typeof===j}function ln(n){return fn(n)&&n.type===u}function an(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function sn(n){return fn(n)?l.apply(null,arguments):n}function hn(n){return!!n.__k&&(o(null,n),!0)}function vn(n){return n&&(n.base||1===n.nodeType&&n)||null}var dn=function(n,t){return n(t)},pn=function(n,t){return n(t)},mn=u;function yn(n){n()}function _n(n){return n}function bn(){return[!1,yn]}var Sn=m,gn=fn;function En(n,t){var e=t(),r=S({h:{__:e,v:t}}),u=r[0].h,o=r[1];return m(function(){u.__=e,u.v=t,Cn(u)&&o({h:u})},[n,e,t]),v(function(){return Cn(u)&&o({h:u}),n(function(){Cn(u)&&o({h:u})})},[n]),e}function Cn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var xn={useState:S,useId:d,useReducer:_,useEffect:v,useLayoutEffect:m,useInsertionEffect:Sn,useTransition:bn,useDeferredValue:_n,useSyncExternalStore:En,startTransition:yn,useRef:b,useImperativeHandle:p,useMemo:y,useCallback:a,useContext:s,useDebugValue:h,version:\"18.3.1\",Children:I,render:$,hydrate:q,unmountComponentAtNode:hn,createPortal:P,createElement:t,createContext:c,createFactory:cn,cloneElement:sn,createRef:f,Fragment:u,isValidElement:fn,isElement:gn,isFragment:ln,isMemo:an,findDOMNode:vn,Component:n,PureComponent:E,memo:C,forwardRef:w,flushSync:pn,unstable_batchedUpdates:dn,StrictMode:mn,Suspense:D,SuspenseList:F,lazy:O,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:un};export{I as Children,E as PureComponent,mn as StrictMode,D as Suspense,F as SuspenseList,un as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sn as cloneElement,cn as createFactory,P as createPortal,xn as default,vn as findDOMNode,pn as flushSync,w as forwardRef,q as hydrate,gn as isElement,ln as isFragment,an as isMemo,fn as isValidElement,O as lazy,C as memo,$ as render,yn as startTransition,hn as unmountComponentAtNode,dn as unstable_batchedUpdates,_n as useDeferredValue,Sn as useInsertionEffect,En as useSyncExternalStore,bn as useTransition,on as version};\n//# sourceMappingURL=compat.module.js.map\n","import e,{useState as t,useEffect as r,createElement as n}from\"react\";import{createPortal as o}from\"react-dom\";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],c=a.completion;if(\"root\"===a.tryLoc)return o(\"end\");if(a.tryLoc<=this.prev){var u=n.call(a,\"catchLoc\"),l=n.call(a,\"finallyLoc\");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;_(r)}return o}}throw Error(\"illegal catch attempt\")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=e),h}},t}function S(e,t){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},S(e,t)}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,t)||E(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function w(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function E(e,t){if(e){if(\"string\"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}function j(e){var t=\"function\"==typeof Map?new Map:void 0;return j=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf(\"[native code]\")}catch(t){return\"function\"==typeof e}}(e))return e;if(\"function\"!=typeof e)throw new TypeError(\"Super expression must either be null or a function\");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(d())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&S(o,r.prototype),o}(e,arguments,p(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),S(r,e)},j(e)}function P(){return e.createElement(\"svg\",{width:\"15\",height:\"15\",className:\"DocSearch-Control-Key-Icon\"},e.createElement(\"path\",{d:\"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953\",strokeWidth:\"1.2\",stroke:\"currentColor\",fill:\"none\",strokeLinecap:\"square\"}))}function I(){return e.createElement(\"svg\",{width:\"20\",height:\"20\",className:\"DocSearch-Search-Icon\",viewBox:\"0 0 20 20\",\"aria-hidden\":\"true\"},e.createElement(\"path\",{d:\"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z\",stroke:\"currentColor\",fill:\"none\",fillRule:\"evenodd\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}))}var D=[\"translations\"],k=\"Ctrl\";var A=e.forwardRef((function(n,o){var i=n.translations,a=void 0===i?{}:i,c=g(n,D),u=a.buttonText,l=void 0===u?\"Search\":u,s=a.buttonAriaLabel,f=void 0===s?\"Search\":s,p=O(t(null),2),v=p[0],d=p[1];r((function(){\"undefined\"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?d(\"⌘\"):d(k))}),[]);var h=O(v===k?[k,\"Ctrl\",e.createElement(P,null)]:[\"Meta\",\"Command\",v],3),y=h[0],b=h[1],S=h[2];return e.createElement(\"button\",m({type:\"button\",className:\"DocSearch DocSearch-Button\",\"aria-label\":\"\".concat(f,\" (\").concat(b,\"+K)\")},c,{ref:o}),e.createElement(\"span\",{className:\"DocSearch-Button-Container\"},e.createElement(I,null),e.createElement(\"span\",{className:\"DocSearch-Button-Placeholder\"},l)),e.createElement(\"span\",{className:\"DocSearch-Button-Keys\"},null!==v&&e.createElement(e.Fragment,null,e.createElement(_,{reactsToKey:y},S),e.createElement(_,{reactsToKey:\"k\"},\"K\"))))}));function _(n){var o=n.reactsToKey,i=n.children,a=O(t(!1),2),c=a[0],u=a[1];return r((function(){if(o)return window.addEventListener(\"keydown\",e),window.addEventListener(\"keyup\",t),function(){window.removeEventListener(\"keydown\",e),window.removeEventListener(\"keyup\",t)};function e(e){e.key===o&&u(!0)}function t(e){e.key!==o&&\"Meta\"!==e.key||u(!1)}}),[o]),e.createElement(\"kbd\",{className:c?\"DocSearch-Button-Key DocSearch-Button-Key--pressed\":\"DocSearch-Button-Key\"},i)}function x(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Z(e){for(var t=1;t=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={\"X-Algolia-Application-Id\":i.appId,\"X-Algolia-API-Key\":i.apiKey};e.apply(void 0,[t].concat(z(r),[{headers:a}]))}else e.apply(void 0,[t].concat(z(r)))}return{init:function(t,r){e(\"init\",{appId:t,apiKey:r})},setAuthenticatedUserToken:function(t){e(\"setAuthenticatedUserToken\",t)},setUserToken:function(t){e(\"setUserToken\",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"clickedObjectIDsAfterSearch\",Y(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"clickedObjectIDs\",Y(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,[\"clickedFilters\"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"convertedObjectIDsAfterSearch\",Y(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i(\"convertedObjectIDs\",Y(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,[\"convertedFilters\"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=Q(t,K);return[].concat(z(e),z(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n0&&e.apply(void 0,[\"viewedFilters\"].concat(r))}}}function X(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:[\"autocomplete\"]}}))}function ee(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function te(e){return te=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},te(e)}function re(e){return function(e){if(Array.isArray(e))return ne(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return ne(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===r&&e.constructor&&(r=e.constructor.name);if(\"Map\"===r||\"Set\"===r)return Array.from(e);if(\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ne(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&le({onItemsChange:o,items:r,insights:l,state:t}))}}),0);return{name:\"aa.algoliaInsightsPlugin\",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive,o=!1;function s(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:ie(ie({},c?{clickAnalytics:!0}:{}),e?{userToken:me(e)}:{}),insights:l}})}u(\"addAlgoliaAgent\",\"insights-plugin\"),s(),u(\"onUserTokenChange\",(function(e){o||s(e)})),u(\"getUserToken\",null,(function(e,t){o||s(t)})),u(\"onAuthenticatedUserTokenChange\",(function(e){e?(o=!0,s(e)):(o=!1,u(\"getUserToken\",null,(function(e,t){return s(t)})))})),u(\"getAuthenticatedUserToken\",null,(function(e,t){t&&(o=!0,s(t))})),r((function(e){var t=e.item,r=e.state,n=e.event,o=e.source;ee(t)&&i({state:r,event:n,insights:l,item:t,insightsEvents:[ie({eventName:\"Item Selected\"},H({item:t,items:o.getItems().filter(ee)}))]})})),n((function(e){var t=e.item,r=e.source,n=e.state,o=e.event;ee(t)&&a({state:n,event:o,insights:l,item:t,insightsEvents:[ie({eventName:\"Item Active\"},H({item:t,items:r.getItems().filter(ee)}))]})}))},onStateChange:function(e){var t=e.state;f({state:t})},__autocomplete_pluginOptions:e}}function fe(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(re(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),[\"autocomplete-internal\"],re(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?[\"autocomplete-automatic\"]:[]))}function me(e){return\"number\"==typeof e?e.toString():e}function pe(e,t){var r=t;return{then:function(t,n){return pe(e.then(de(t,r,e),de(n,r,e)),r)},catch:function(t){return pe(e.catch(de(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),pe(e.finally(de(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ve(e){return pe(e,{isCanceled:!1,onCancelList:[]})}function de(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function he(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function ye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ge(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:\"autocomplete-\".concat(N++),plugins:o,initialState:qe({activeItemId:null,query:\"\",completion:null,collections:[],isOpen:!1,status:\"idle\",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Te(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(e.sourceId),\" is not unique.\"));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:q,onResolve:q};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=ge(ge({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return C(e)})).then((function(e){return e.map((function(e){return qe(qe({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:qe({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,\"_blank\",\"noopener\");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,\"_blank\",\"noopener\")}},e.navigator)})}function Be(e){return Be=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},Be(e)}function Fe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ue(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var at,ct,ut,lt=null,st=(at=-1,ct=-1,ut=void 0,function(e){var t=++at;return Promise.resolve(e).then((function(e){return ut&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function gt(e){return gt=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},gt(e)}var bt=[\"props\",\"refresh\",\"store\"],St=[\"inputElement\",\"formElement\",\"panelElement\"],Ot=[\"inputElement\"],wt=[\"inputElement\",\"maxLength\"],Et=[\"source\"],jt=[\"item\",\"source\"];function Pt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function It(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function At(e){var t=e.props,r=e.refresh,n=e.store,o=kt(e,bt);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch(\"blur\",null),t.debug||n.pendingRequests.cancelAll())}return It({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},kt(e,St))},getRootProps:function(e){return It({role:\"combobox\",\"aria-expanded\":n.getState().isOpen,\"aria-haspopup\":\"listbox\",\"aria-controls\":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return we(t.id,\"list\",r)})).join(\" \"):void 0,\"aria-labelledby\":we(t.id,\"label\")},e)},getFormProps:function(e){return e.inputElement,It({action:\"\",noValidate:!0,role:\"search\",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(It({event:i,refresh:r,state:n.getState()},o)),n.dispatch(\"submit\",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(It({event:i,refresh:r,state:n.getState()},o)),n.dispatch(\"reset\",null),null===(a=e.inputElement)||void 0===a||a.focus()}},kt(e,Ot))},getLabelProps:function(e){return It({htmlFor:we(t.id,\"input\"),id:we(t.id,\"label\")},e)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(n.getState().query))&&ft(It({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch(\"focus\",null)}var c=e||{};c.inputElement;var u=c.maxLength,l=void 0===u?512:u,s=kt(c,wt),f=Oe(n.getState()),m=function(e){return Boolean(e&&e.match(Ee))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||\"\"),p=t.enterKeyHint||(null!=f&&f.itemUrl&&!m?\"go\":\"search\");return It({\"aria-autocomplete\":\"both\",\"aria-activedescendant\":n.getState().isOpen&&null!==n.getState().activeItemId?we(t.id,\"item-\".concat(n.getState().activeItemId),null==f?void 0:f.source):void 0,\"aria-controls\":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return we(t.id,\"list\",r)})).join(\" \"):void 0,\"aria-labelledby\":we(t.id,\"label\"),value:n.getState().completion||n.getState().query,id:we(t.id,\"input\"),autoComplete:\"off\",autoCorrect:\"off\",autoCapitalize:\"off\",enterKeyHint:p,spellCheck:\"false\",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:\"search\",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&je(e).isComposing?o.setQuery(i):ft(It({event:e,props:t,query:i.slice(0,l),refresh:r,store:n},o))},onCompositionEnd:function(e){ft(It({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:r,store:n},o))},onKeyDown:function(e){je(e).isComposing||function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=yt(e,pt);if(\"ArrowUp\"===t.key||\"ArrowDown\"===t.key){var a=function(){var e=Oe(o.getState()),t=r.environment.document.getElementById(we(r.id,\"item-\".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},c=function(){var e=Oe(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,u=e.source;u.onActive(dt({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?ft(dt({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if(\"Escape\"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if(\"Tab\"===t.key)o.dispatch(\"blur\",null),o.pendingRequests.cancelAll();else if(\"Enter\"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var u=Oe(o.getState()),l=u.item,s=u.itemInputValue,f=u.itemUrl,m=u.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:l,state:o.getState()});ft(dt({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(It({event:e,props:t,refresh:r,store:n},o))},onFocus:a,onBlur:q,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||a(r)}},s)},getPanelProps:function(e){return It({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch(\"mouseleave\",null)}},e)},getListProps:function(e){var r=e||{},n=r.source,o=kt(r,Et);return It({role:\"listbox\",\"aria-labelledby\":we(t.id,\"label\"),id:we(t.id,\"list\",n)},o)},getItemProps:function(e){var i=e.item,a=e.source,c=kt(e,jt);return It({id:we(t.id,\"item-\".concat(i.__autocomplete_id),a),role:\"option\",\"aria-selected\":n.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==n.getState().activeItemId){n.dispatch(\"mousemove\",i.__autocomplete_id);var t=Oe(n.getState());if(null!==n.getState().activeItemId&&t){var a=t.item,c=t.itemInputValue,u=t.itemUrl,l=t.source;l.onActive(It({event:e,item:a,itemInputValue:c,itemUrl:u,refresh:r,source:l,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var c=a.getItemInputValue({item:i,state:n.getState()}),u=a.getItemUrl({item:i,state:n.getState()});(u?Promise.resolve():ft(It({event:e,nextState:{isOpen:!1},props:t,query:c,refresh:r,store:n},o))).then((function(){a.onSelect(It({event:e,item:i,itemInputValue:c,itemUrl:u,refresh:r,source:a,state:n.getState()},o))}))}},c)}}}function _t(e){return _t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_t(e)}function xt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ct(e){for(var t=1;t0&&e.createElement(\"div\",{className:\"DocSearch-NoResults-Prefill-List\"},e.createElement(\"p\",{className:\"DocSearch-Help\"},u,\":\"),e.createElement(\"ul\",null,p.slice(0,3).reduce((function(t,r){return[].concat(w(t),[e.createElement(\"li\",{key:r},e.createElement(\"button\",{className:\"DocSearch-Prefill\",key:r,type:\"button\",onClick:function(){o.setQuery(r.toLowerCase()+\" \"),o.refresh(),o.inputRef.current.focus()}},r))])}),[]))),o.getMissingResultsUrl&&e.createElement(\"p\",{className:\"DocSearch-Help\"},\"\".concat(s,\" \"),e.createElement(\"a\",{href:o.getMissingResultsUrl({query:o.state.query}),target:\"_blank\",rel:\"noopener noreferrer\"},m)))}var sr=[\"hit\",\"attribute\",\"tagName\"];function fr(e,t){return t.split(\".\").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function mr(e){var t=e.hit,r=e.attribute,o=e.tagName,i=void 0===o?\"span\":o,a=g(e,sr);return n(i,y(y({},a),{},{dangerouslySetInnerHTML:{__html:fr(t,\"_snippetResult.\".concat(r,\".value\"))||fr(t,r)}}))}function pr(t){return t.collection&&0!==t.collection.items.length?e.createElement(\"section\",{className:\"DocSearch-Hits\"},e.createElement(\"div\",{className:\"DocSearch-Hit-source\"},t.title),e.createElement(\"ul\",t.getListProps(),t.collection.items.map((function(r,n){return e.createElement(vr,m({key:[t.title,r.objectID].join(\":\"),item:r,index:n},t))})))):null}function vr(t){var r=t.item,n=t.index,o=t.renderIcon,i=t.renderAction,a=t.getItemProps,c=t.onItemClick,u=t.collection,l=t.hitComponent,s=O(e.useState(!1),2),f=s[0],p=s[1],v=O(e.useState(!1),2),d=v[0],h=v[1],y=e.useRef(null),g=l;return e.createElement(\"li\",m({className:[\"DocSearch-Hit\",r.__docsearch_parent&&\"DocSearch-Hit--Child\",f&&\"DocSearch-Hit--deleting\",d&&\"DocSearch-Hit--favoriting\"].filter(Boolean).join(\" \"),onTransitionEnd:function(){y.current&&y.current()}},a({item:r,source:u.source,onClick:function(e){c(r,e)}})),e.createElement(g,{hit:r},e.createElement(\"div\",{className:\"DocSearch-Hit-Container\"},o({item:r,index:n}),r.hierarchy[r.type]&&\"lvl1\"===r.type&&e.createElement(\"div\",{className:\"DocSearch-Hit-content-wrapper\"},e.createElement(mr,{className:\"DocSearch-Hit-title\",hit:r,attribute:\"hierarchy.lvl1\"}),r.content&&e.createElement(mr,{className:\"DocSearch-Hit-path\",hit:r,attribute:\"content\"})),r.hierarchy[r.type]&&(\"lvl2\"===r.type||\"lvl3\"===r.type||\"lvl4\"===r.type||\"lvl5\"===r.type||\"lvl6\"===r.type)&&e.createElement(\"div\",{className:\"DocSearch-Hit-content-wrapper\"},e.createElement(mr,{className:\"DocSearch-Hit-title\",hit:r,attribute:\"hierarchy.\".concat(r.type)}),e.createElement(mr,{className:\"DocSearch-Hit-path\",hit:r,attribute:\"hierarchy.lvl1\"})),\"content\"===r.type&&e.createElement(\"div\",{className:\"DocSearch-Hit-content-wrapper\"},e.createElement(mr,{className:\"DocSearch-Hit-title\",hit:r,attribute:\"content\"}),e.createElement(mr,{className:\"DocSearch-Hit-path\",hit:r,attribute:\"hierarchy.lvl1\"})),i({item:r,runDeleteTransition:function(e){p(!0),y.current=e},runFavoriteTransition:function(e){h(!0),y.current=e}}))))}function dr(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}function hr(e){return e}function yr(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function gr(){}var br=/(|<\\/mark>)/g,Sr=RegExp(br.source);function Or(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0;return o?o.value&&Sr.test(o.value)?o.value.replace(br,\"\"):o.value:e.hierarchy.lvl0}function wr(t){return e.createElement(\"div\",{className:\"DocSearch-Dropdown-Container\"},t.state.collections.map((function(r){if(0===r.items.length)return null;var n=Or(r.items[0]);return e.createElement(pr,m({},t,{key:r.source.sourceId,title:n,collection:r,renderIcon:function(t){var n,o=t.item,i=t.index;return e.createElement(e.Fragment,null,o.__docsearch_parent&&e.createElement(\"svg\",{className:\"DocSearch-Hit-Tree\",viewBox:\"0 0 24 54\"},e.createElement(\"g\",{stroke:\"currentColor\",fill:\"none\",fillRule:\"evenodd\",strokeLinecap:\"round\",strokeLinejoin:\"round\"},o.__docsearch_parent!==(null===(n=r.items[i+1])||void 0===n?void 0:n.__docsearch_parent)?e.createElement(\"path\",{d:\"M8 6v21M20 27H8.3\"}):e.createElement(\"path\",{d:\"M8 6v42M20 27H8.3\"}))),e.createElement(\"div\",{className:\"DocSearch-Hit-icon\"},e.createElement(tr,{type:o.type})))},renderAction:function(){return e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(Xt,null))}}))})),t.resultsFooterComponent&&e.createElement(\"section\",{className:\"DocSearch-HitsFooter\"},e.createElement(t.resultsFooterComponent,{state:t.state})))}var Er=[\"translations\"];function jr(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Er),i=n.recentSearchesTitle,a=void 0===i?\"Recent\":i,c=n.noRecentSearchesText,u=void 0===c?\"No recent searches\":c,l=n.saveRecentSearchButtonTitle,s=void 0===l?\"Save this search\":l,f=n.removeRecentSearchButtonTitle,p=void 0===f?\"Remove this search from history\":f,v=n.favoriteSearchesTitle,d=void 0===v?\"Favorite\":v,h=n.removeFavoriteSearchButtonTitle,y=void 0===h?\"Remove this search from favorites\":h;return\"idle\"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:e.createElement(\"div\",{className:\"DocSearch-StartScreen\"},e.createElement(\"p\",{className:\"DocSearch-Help\"},u)):!1===o.hasCollections?null:e.createElement(\"div\",{className:\"DocSearch-Dropdown-Container\"},e.createElement(pr,m({},o,{title:a,collection:o.state.collections[0],renderIcon:function(){return e.createElement(\"div\",{className:\"DocSearch-Hit-icon\"},e.createElement(Yt,null))},renderAction:function(t){var r=t.item,n=t.runFavoriteTransition,i=t.runDeleteTransition;return e.createElement(e.Fragment,null,e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(\"button\",{className:\"DocSearch-Hit-action-button\",title:s,type:\"submit\",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.add(r),o.recentSearches.remove(r),o.refresh()}))}},e.createElement(or,null))),e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(\"button\",{className:\"DocSearch-Hit-action-button\",title:p,type:\"submit\",onClick:function(e){e.preventDefault(),e.stopPropagation(),i((function(){o.recentSearches.remove(r),o.refresh()}))}},e.createElement($t,null))))}})),e.createElement(pr,m({},o,{title:d,collection:o.state.collections[1],renderIcon:function(){return e.createElement(\"div\",{className:\"DocSearch-Hit-icon\"},e.createElement(or,null))},renderAction:function(t){var r=t.item,n=t.runDeleteTransition;return e.createElement(\"div\",{className:\"DocSearch-Hit-action\"},e.createElement(\"button\",{className:\"DocSearch-Hit-action-button\",title:y,type:\"submit\",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.remove(r),o.refresh()}))}},e.createElement($t,null)))}})))}var Pr=[\"translations\"],Ir=e.memo((function(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Pr);if(\"error\"===o.state.status)return e.createElement(cr,{translations:null==n?void 0:n.errorScreen});var i=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===i?e.createElement(lr,m({},o,{translations:null==n?void 0:n.noResultsScreen})):e.createElement(wr,o):e.createElement(jr,m({},o,{hasCollections:i,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return\"loading\"===t.state.status||\"stalled\"===t.state.status})),Dr=[\"translations\"];function kr(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Dr),i=n.resetButtonTitle,a=void 0===i?\"Clear the query\":i,c=n.resetButtonAriaLabel,u=void 0===c?\"Clear the query\":c,l=n.cancelButtonText,s=void 0===l?\"Cancel\":l,f=n.cancelButtonAriaLabel,p=void 0===f?\"Cancel\":f,v=n.searchInputLabel,d=void 0===v?\"Search\":v,h=o.getFormProps({inputElement:o.inputRef.current}).onReset;return e.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),e.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),e.createElement(e.Fragment,null,e.createElement(\"form\",{className:\"DocSearch-Form\",onSubmit:function(e){e.preventDefault()},onReset:h},e.createElement(\"label\",m({className:\"DocSearch-MagnifierLabel\"},o.getLabelProps()),e.createElement(I,null),e.createElement(\"span\",{className:\"DocSearch-VisuallyHiddenForAccessibility\"},d)),e.createElement(\"div\",{className:\"DocSearch-LoadingIndicator\"},e.createElement(Gt,null)),e.createElement(\"input\",m({className:\"DocSearch-Input\",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),e.createElement(\"button\",{type:\"reset\",title:a,className:\"DocSearch-Reset\",\"aria-label\":u,hidden:!o.state.query},e.createElement($t,null))),e.createElement(\"button\",{className:\"DocSearch-Cancel\",type:\"reset\",\"aria-label\":p,onClick:o.onClose},s))}var Ar=[\"_highlightResult\",\"_snippetResult\"];function _r(e){return!1===function(){var e=\"__TEST_KEY__\";try{return localStorage.setItem(e,\"\"),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function xr(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=_r(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var r=g(t,Ar),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function Cr(e){var t,r=\"algolia-client-js-\".concat(e.key);function n(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(n().getItem(r)||\"{}\")}function i(e){n().setItem(r,JSON.stringify(e))}return{get:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r,n,a;return r=e.timeToLive?1e3*e.timeToLive:null,n=o(),i(a=Object.fromEntries(Object.entries(n).filter((function(e){return void 0!==O(e,2)[1].timestamp})))),r&&i(Object.fromEntries(Object.entries(a).filter((function(e){var t=O(e,2)[1],n=(new Date).getTime();return!(t.timestamp+r2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return O(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return Nr({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return Nr({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return Nr({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return Nr({caches:t}).clear()}))}}}function Tr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=n();return a.then((function(e){return o.miss(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Lr(e){var t=e.algoliaAgents,r=e.client,n=e.version,o=function(e){var t={value:\"Algolia for JavaScript (\".concat(e,\")\"),add:function(e){var r=\"; \".concat(e.segment).concat(void 0!==e.version?\" (\".concat(e.version,\")\"):\"\");return-1===t.value.indexOf(r)&&(t.value=\"\".concat(t.value).concat(r)),t}};return t}(n).add({segment:r,version:n});return t.forEach((function(e){return o.add(e)})),o}var Rr=12e4;function qr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"up\",r=Date.now();return y(y({},e),{},{status:t,lastUpdate:r,isUp:function(){return\"up\"===t||Date.now()-r>Rr},isTimedOut:function(){return\"timed out\"===t&&Date.now()-r<=Rr}})}var Mr=function(){function e(t,r){var n;return l(this,e),f(n=u(this,e,[t]),\"name\",\"AlgoliaError\"),r&&(n.name=r),n}return v(e,j(Error)),s(e)}(),Hr=function(){function e(t,r,n){var o;return l(this,e),f(o=u(this,e,[t,n]),\"stackTrace\",void 0),o.stackTrace=r,o}return v(e,Mr),s(e)}(),Br=function(){function e(t){return l(this,e),u(this,e,[\"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.\",t,\"RetryError\"])}return v(e,Hr),s(e)}(),Fr=function(){function e(t,r,n){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"ApiError\";return l(this,e),f(o=u(this,e,[t,n,i]),\"status\",void 0),o.status=r,o}return v(e,Hr),s(e)}(),Ur=function(){function e(t,r){var n;return l(this,e),f(n=u(this,e,[t,\"DeserializationError\"]),\"response\",void 0),n.response=r,n}return v(e,Mr),s(e)}(),Kr=function(){function e(t,r,n,o){var i;return l(this,e),f(i=u(this,e,[t,r,o,\"DetailedApiError\"]),\"error\",void 0),i.error=n,i}return v(e,Fr),s(e)}();function Vr(e,t,r){var n,o=(n=r,Object.keys(n).filter((function(e){return void 0!==n[e]})).sort().map((function(e){return\"\".concat(e,\"=\").concat(encodeURIComponent(\"[object Array]\"===Object.prototype.toString.call(n[e])?n[e].join(\",\"):n[e]).replace(/\\+/g,\"%20\"))})).join(\"&\")),i=\"\".concat(e.protocol,\"://\").concat(e.url).concat(e.port?\":\".concat(e.port):\"\",\"/\").concat(\"/\"===t.charAt(0)?t.substring(1):t);return o.length&&(i+=\"?\".concat(o)),i}function zr(e,t){if(\"GET\"!==e.method&&(void 0!==e.data||void 0!==t.data)){var r=Array.isArray(e.data)?e.data:y(y({},e.data),t.data);return JSON.stringify(r)}}function Jr(e,t,r){var n=y(y(y({Accept:\"application/json\"},e),t),r),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}function Qr(e){try{return JSON.parse(e.content)}catch(t){throw new Ur(t.message,e)}}function Wr(e,t){var r=e.content,n=e.status;try{var o=JSON.parse(r);return\"error\"in o?new Kr(o.message,n,o.error,t):new Fr(o.message,n,t)}catch(e){}return new Fr(r,n,t)}function Zr(e){return e.map((function(e){return Gr(e)}))}function Gr(e){var t=e.request.headers[\"x-algolia-api-key\"]?{\"x-algolia-api-key\":\"*****\"}:{};return y(y({},e),{},{request:y(y({},e.request),{},{headers:y(y({},e.request.headers),t)})})}var Yr=[\"appId\",\"apiKey\",\"authMode\",\"algoliaAgents\"],$r=[\"params\"],Xr=\"5.14.2\";function en(e){return[{url:\"\".concat(e,\"-dsn.algolia.net\"),accept:\"read\",protocol:\"https\"},{url:\"\".concat(e,\".algolia.net\"),accept:\"write\",protocol:\"https\"}].concat(function(e){for(var t=e,r=e.length-1;r>0;r--){var n=Math.floor(Math.random()*(r+1)),o=e[r];t[r]=e[n],t[n]=o}return t}([{url:\"\".concat(e,\"-1.algolianet.com\"),accept:\"readWrite\",protocol:\"https\"},{url:\"\".concat(e,\"-2.algolianet.com\"),accept:\"readWrite\",protocol:\"https\"},{url:\"\".concat(e,\"-3.algolianet.com\"),accept:\"readWrite\",protocol:\"https\"}]))}function tn(e){var t=e.appId,r=e.apiKey,n=e.authMode,o=e.algoliaAgents,i=g(e,Yr),a=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"WithinHeaders\",n={\"x-algolia-api-key\":t,\"x-algolia-application-id\":e};return{headers:function(){return\"WithinHeaders\"===r?n:{}},queryParameters:function(){return\"WithinQueryParameters\"===r?n:{}}}}(t,r,n),u=function(e){var t=e.hosts,r=e.hostsCache,n=e.baseHeaders,o=e.logger,i=e.baseQueryParameters,a=e.algoliaAgent,u=e.timeouts,l=e.requester,s=e.requestsCache,f=e.responsesCache;function m(e){return p.apply(this,arguments)}function p(){return(p=c(b().mark((function e(t){var n,o,i,a,c;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return r.get(e,(function(){return Promise.resolve(qr(e))}))})));case 2:return n=e.sent,o=n.filter((function(e){return e.isUp()})),i=n.filter((function(e){return e.isTimedOut()})),a=[].concat(w(o),w(i)),c=a.length>0?a:t,e.abrupt(\"return\",{hosts:c,getTimeout:function(e,t){return(0===i.length&&0===e?1:i.length+3+e)*t}});case 8:case\"end\":return e.stop()}}),e)})))).apply(this,arguments)}function v(e,t){return d.apply(this,arguments)}function d(){return d=c(b().mark((function e(s,f){var p,v,d,h,g,S,O,E,j,P,I,D,k,A=arguments;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p=!(A.length>2&&void 0!==A[2])||A[2],v=[],d=zr(s,f),h=Jr(n,s.headers,f.headers),g=\"GET\"===s.method?y(y({},s.data),f.data):{},S=y(y(y({},i),s.queryParameters),g),a.value&&(S[\"x-algolia-agent\"]=a.value),f&&f.queryParameters)for(O=0,E=Object.keys(f.queryParameters);O1&&void 0!==arguments[1]?arguments[1]:{},r=e.useReadTransporter||\"GET\"===e.method;if(!r)return v(e,t,r);var o=function(){return v(e,t)};if(!0!==(t.cacheable||e.cacheable))return o();var a={request:e,requestOptions:t,transporter:{queryParameters:i,headers:n}};return f.get(a,(function(){return s.get(a,(function(){return s.set(a,o()).then((function(e){return Promise.all([s.delete(a),e])}),(function(e){return Promise.all([s.delete(a),Promise.reject(e)])})).then((function(e){var t=O(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.set(a,e)}})},requestsCache:s,responsesCache:f}}(y(y({hosts:en(t)},i),{},{algoliaAgent:Lr({algoliaAgents:o,client:\"Lite\",version:Xr}),baseHeaders:y(y({\"content-type\":\"text/plain\"},a.headers()),i.baseHeaders),baseQueryParameters:y(y({},a.queryParameters()),i.baseQueryParameters)}));return{transporter:u,appId:t,clearCache:function(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then((function(){}))},get _ua(){return u.algoliaAgent.value},addAlgoliaAgent:function(e,t){u.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;n&&\"WithinHeaders\"!==n?u.baseQueryParameters[\"x-algolia-api-key\"]=t:u.baseHeaders[\"x-algolia-api-key\"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var r=e.path,n=e.parameters,o=e.body;if(!r)throw new Error(\"Parameter `path` is required when calling `customPost`.\");var i={method:\"POST\",path:\"/{path}\".replace(\"{path}\",r),queryParameters:n||{},headers:{},data:o||{}};return u.request(i,t)},getRecommendations:function(e,t){e&&Array.isArray(e)&&(e={requests:e});if(!e)throw new Error(\"Parameter `getRecommendationsParams` is required when calling `getRecommendations`.\");if(!e.requests)throw new Error(\"Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.\");var r={method:\"POST\",path:\"/1/indexes/*/recommendations\",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(r,t)},search:function(e,t){if(e&&Array.isArray(e)){var r={requests:e.map((function(e){var t=e.params,r=g(e,$r);return\"facet\"===r.type?y(y(y({},r),t),{},{type:\"facet\"}):y(y(y({},r),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=r}if(!e)throw new Error(\"Parameter `searchMethodParams` is required when calling `search`.\");if(!e.requests)throw new Error(\"Parameter `searchMethodParams.requests` is required when calling `search`.\");var n={method:\"POST\",path:\"/1/indexes/*/queries\",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(n,t)}}}var rn=\"3.8.2\";function nn(t,r,n){return e.useMemo((function(){var e=function(e,t,r){if(!e||\"string\"!=typeof e)throw new Error(\"`appId` is missing.\");if(!t||\"string\"!=typeof t)throw new Error(\"`apiKey` is missing.\");return tn(y({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),e)},i=o(e.connectTimeout,\"Connection timeout\");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(i),n=o(e.responseTimeout,\"Socket timeout\"))},r.onerror=function(){0===r.status&&(clearTimeout(i),clearTimeout(n),t({content:r.responseText||\"Network request failed\",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(i),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:\"Browser\"}],authMode:\"WithinQueryParameters\",responsesCache:Tr(),requestsCache:Tr({serializable:!1}),hostsCache:Nr({caches:[Cr({key:\"\".concat(Xr,\"-\").concat(e)}),Tr()]})},r))}(t,r);return e.addAlgoliaAgent(\"docsearch\",rn),!1===/docsearch.js \\(.*\\)/.test(e.transporter.algoliaAgent.value)&&e.addAlgoliaAgent(\"docsearch-react\",rn),n(e)}),[t,r,n])}var on=[\"footer\",\"searchBox\"];function an(t){var r=t.appId,n=t.apiKey,o=t.indexName,i=t.placeholder,a=void 0===i?\"Search docs\":i,c=t.searchParameters,u=t.maxResultsPerGroup,l=t.onClose,s=void 0===l?gr:l,f=t.transformItems,p=void 0===f?hr:f,v=t.hitComponent,d=void 0===v?Zt:v,h=t.resultsFooterComponent,b=void 0===h?function(){return null}:h,S=t.navigator,w=t.initialScrollY,E=void 0===w?0:w,j=t.transformSearchClient,P=void 0===j?hr:j,I=t.disableUserPersonalization,D=void 0!==I&&I,k=t.initialQuery,A=void 0===k?\"\":k,_=t.translations,x=void 0===_?{}:_,C=t.getMissingResultsUrl,N=t.insights,T=void 0!==N&&N,L=x.footer,R=x.searchBox,q=g(x,on),M=O(e.useState({query:\"\",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:\"idle\"}),2),H=M[0],B=M[1],F=e.useRef(null),U=e.useRef(null),K=e.useRef(null),V=e.useRef(null),z=e.useRef(null),J=e.useRef(10),Q=e.useRef(\"undefined\"!=typeof window?window.getSelection().toString().slice(0,64):\"\").current,W=e.useRef(A||Q).current,Z=nn(r,n,P),G=e.useRef(xr({key:\"__DOCSEARCH_FAVORITE_SEARCHES__\".concat(o),limit:10})).current,Y=e.useRef(xr({key:\"__DOCSEARCH_RECENT_SEARCHES__\".concat(o),limit:0===G.getAll().length?7:4})).current,$=e.useCallback((function(e){if(!D){var t=\"content\"===e.type?e.__docsearch_parent:e;t&&-1===G.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Y.add(t)}}),[G,Y,D]),X=e.useCallback((function(e){if(H.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:\"Item Selected\",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};H.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[H.context.algoliaInsightsPlugin]),ee=e.useMemo((function(){return zt({id:\"docsearch\",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:W,context:{searchSuggestions:[]}},insights:T,navigator:S,onStateChange:function(e){B(e.state)},getSources:function(e){var t=e.query,i=e.state,a=e.setContext,l=e.setStatus;if(!t)return D?[]:[{sourceId:\"recentSearches\",onSelect:function(e){var t=e.item,r=e.event;$(t),yr(r)||s()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}},{sourceId:\"favoriteSearches\",onSelect:function(e){var t=e.item,r=e.event;$(t),yr(r)||s()},getItemUrl:function(e){return e.item.url},getItems:function(){return G.getAll()}}];var f=Boolean(T);return Z.search({requests:[y({query:t,indexName:o,attributesToRetrieve:[\"hierarchy.lvl0\",\"hierarchy.lvl1\",\"hierarchy.lvl2\",\"hierarchy.lvl3\",\"hierarchy.lvl4\",\"hierarchy.lvl5\",\"hierarchy.lvl6\",\"content\",\"type\",\"url\"],attributesToSnippet:[\"hierarchy.lvl1:\".concat(J.current),\"hierarchy.lvl2:\".concat(J.current),\"hierarchy.lvl3:\".concat(J.current),\"hierarchy.lvl4:\".concat(J.current),\"hierarchy.lvl5:\".concat(J.current),\"hierarchy.lvl6:\".concat(J.current),\"content:\".concat(J.current)],snippetEllipsisText:\"…\",highlightPreTag:\"\",highlightPostTag:\"\",hitsPerPage:20,clickAnalytics:f},c)]}).catch((function(e){throw\"RetryError\"===e.name&&l(\"error\"),e})).then((function(e){var t=e.results[0],c=t.hits,l=t.nbHits,m=dr(c,(function(e){return Or(e)}),u);i.context.searchSuggestions.length0&&(ne(),z.current&&z.current.focus())}),[W,ne]),e.useEffect((function(){function e(){if(U.current){var e=.01*window.innerHeight;U.current.style.setProperty(\"--docsearch-vh\",\"\".concat(e,\"px\"))}}return e(),window.addEventListener(\"resize\",e),function(){window.removeEventListener(\"resize\",e)}}),[]),e.createElement(\"div\",m({ref:F},re({\"aria-expanded\":!0}),{className:[\"DocSearch\",\"DocSearch-Container\",\"stalled\"===H.status&&\"DocSearch-Container--Stalled\",\"error\"===H.status&&\"DocSearch-Container--Errored\"].filter(Boolean).join(\" \"),role:\"button\",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&s()}}),e.createElement(\"div\",{className:\"DocSearch-Modal\",ref:U},e.createElement(\"header\",{className:\"DocSearch-SearchBar\",ref:K},e.createElement(kr,m({},ee,{state:H,autoFocus:0===W.length,inputRef:z,isFromSelection:Boolean(W)&&W===Q,translations:R,onClose:s}))),e.createElement(\"div\",{className:\"DocSearch-Dropdown\",ref:V},e.createElement(Ir,m({},ee,{indexName:o,state:H,hitComponent:d,resultsFooterComponent:b,disableUserPersonalization:D,recentSearches:Y,favoriteSearches:G,inputRef:z,translations:q,getMissingResultsUrl:C,onItemClick:function(e,t){X(e),$(e),yr(t)||s()}}))),e.createElement(\"footer\",{className:\"DocSearch-Footer\"},e.createElement(Wt,{translations:L}))))}function cn(t){var r=t.isOpen,n=t.onOpen,o=t.onClose,i=t.onInput,a=t.searchButtonRef;e.useEffect((function(){function e(e){var t;if(\"Escape\"===e.code&&r||\"k\"===(null===(t=e.key)||void 0===t?void 0:t.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,r=t.tagName;return t.isContentEditable||\"INPUT\"===r||\"SELECT\"===r||\"TEXTAREA\"===r}(e)&&\"/\"===e.key&&!r)return e.preventDefault(),void(r?o():document.body.classList.contains(\"DocSearch--active\")||n());a&&a.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener(\"keydown\",e),function(){window.removeEventListener(\"keydown\",e)}}),[r,n,o,i,a])}function un(t){var r,n,i=e.useRef(null),a=O(e.useState(!1),2),c=a[0],u=a[1],l=O(e.useState((null==t?void 0:t.initialQuery)||void 0),2),s=l[0],f=l[1],p=e.useCallback((function(){u(!0)}),[u]),v=e.useCallback((function(){u(!1),f(null==t?void 0:t.initialQuery)}),[u,t.initialQuery]);return cn({isOpen:c,onOpen:p,onClose:v,onInput:e.useCallback((function(e){u(!0),f(e.key)}),[u,f]),searchButtonRef:i}),e.createElement(e.Fragment,null,e.createElement(A,{ref:i,translations:null==t||null===(r=t.translations)||void 0===r?void 0:r.button,onClick:p}),c&&o(e.createElement(an,m({},t,{initialScrollY:window.scrollY,initialQuery:s,translations:null==t||null===(n=t.translations)||void 0===n?void 0:n.modal,onClose:v})),document.body))}export{un as DocSearch,A as DocSearchButton,an as DocSearchModal,cn as useDocSearchKeyboardEvents,rn as version};\n","import type { DocSearchProps as DocSearchComponentProps } from '@docsearch/react';\nimport { DocSearch, version } from '@docsearch/react';\nimport React, { render } from 'preact/compat';\n\nfunction getHTMLElement(value: HTMLElement | string, environment: DocSearchProps['environment'] = window): HTMLElement {\n if (typeof value === 'string') {\n return environment.document.querySelector(value)!;\n }\n\n return value;\n}\n\ninterface DocSearchProps extends DocSearchComponentProps {\n container: HTMLElement | string;\n environment?: typeof window;\n}\n\nexport function docsearch(props: DocSearchProps): void {\n render(\n {\n searchClient.addAlgoliaAgent('docsearch.js', version);\n\n return props.transformSearchClient ? props.transformSearchClient(searchClient) : searchClient;\n }}\n />,\n getHTMLElement(props.container, props.environment),\n );\n}\n"],"names":["h","v","p","t","r","u","i","o","f","c","n","e","__b","a","__r","diffed","l","__c","m","unmount","s","__","d","__h","__H","length","push","D","__N","setState","filter","every","call","this","forEach","props","shouldComponentUpdate","componentWillUpdate","__e","y","__s","C","_","A","T","current","F","concat","q","x","context","sub","value","P","useDebugValue","g","__v","__m","j","shift","__P","z","B","__k","requestAnimationFrame","w","some","k","clearTimeout","cancelAnimationFrame","setTimeout","Array","done","Promise","resolve","then","arguments","apply","_typeof","TypeError","ReferenceError","Reflect","construct","constructor","Object","defineProperty","writable","Symbol","toPrimitive","String","enumerable","configurable","assign","bind","hasOwnProperty","setPrototypeOf","getPrototypeOf","__proto__","prototype","create","S","Boolean","valueOf","keys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","includes","propertyIsEnumerable","b","iterator","asyncIterator","toStringTag","type","arg","wrap","O","E","_invoke","I","__await","Error","method","delegate","sent","_sent","dispatchException","abrupt","return","resultName","next","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","reset","isNaN","displayName","isGeneratorFunction","name","mark","awrap","AsyncIterator","async","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","delegateYield","isArray","from","toString","test","Map","Function","indexOf","has","get","set","createElement","width","height","className","strokeWidth","stroke","fill","strokeLinecap","viewBox","fillRule","strokeLinejoin","forwardRef","translations","buttonText","buttonAriaLabel","navigator","platform","ref","Fragment","reactsToKey","children","window","addEventListener","removeEventListener","key","reduce","N","collections","items","L","R","M","segment","version","H","item","index","__autocomplete_indexName","positions","findIndex","objectID","queryID","__autocomplete_queryID","algoliaSource","U","K","V","J","Q","W","Z","G","Y","map","objectIDs","$","split","Number","__autocomplete_algoliaCredentials","appId","apiKey","headers","init","setAuthenticatedUserToken","setUserToken","clickedObjectIDsAfterSearch","clickedObjectIDs","clickedFilters","convertedObjectIDsAfterSearch","convertedObjectIDs","convertedFilters","viewedObjectIDs","payload","viewedFilters","X","ee","te","re","ne","oe","ie","ae","ce","ue","le","onItemsChange","insights","state","insightsEvents","eventName","se","fe","onSelect","onActive","__autocomplete_clickAnalytics","insightsClient","insightsInitParams","AlgoliaAnalyticsObject","queue","document","src","onerror","console","error","body","appendChild","partial","isOpen","subscribe","setContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","userToken","me","event","source","getItems","onStateChange","__autocomplete_pluginOptions","__automaticInsights","pe","de","finally","onCancelList","cancel","isCanceled","ve","he","ye","ge","be","Se","Oe","activeItemId","collection","itemInputValue","getItemInputValue","itemUrl","getItemUrl","we","sourceId","join","replace","Ee","je","nativeEvent","Pe","Ie","De","Ae","_e","xe","Ce","Ne","Le","Re","qe","Me","He","plugins","debug","openOnFocus","enterKeyHint","ignoreCompositionEvents","placeholder","autoFocus","defaultActiveItemId","stallThreshold","environment","shouldPanelOpen","reshape","sources","id","initialState","query","status","onSubmit","onReset","getSources","all","Te","JSON","stringify","setIsOpen","onResolve","__default","navigate","location","navigateNewTab","open","focus","navigateNewWindow","Be","Fe","Ue","Ke","Ve","ze","Je","Qe","We","Ze","Ge","execute","$e","searchClient","requesterId","requests","find","et","tt","rt","nt","ot","at","ct","ut","lt","st","ft","nextState","refresh","store","it","setCollections","setQuery","setActiveItemId","setStatus","getState","pendingRequests","add","queries","params","transformResponse","Ye","_automaticInsights","results","hits","facetHits","label","count","_highlightResult","highlighted","Xe","sourcesBySourceId","mt","pt","vt","dt","ht","gt","bt","St","Ot","wt","Et","jt","Pt","It","Dt","kt","At","getEnvironmentProps","inputElement","formElement","panelElement","isEmpty","target","contains","dispatch","cancelAll","onTouchStart","onMouseDown","onTouchMove","activeElement","blur","getRootProps","role","getFormProps","action","noValidate","preventDefault","getLabelProps","htmlFor","getInputProps","maxLength","match","userAgent","autoComplete","autoCorrect","autoCapitalize","spellCheck","onChange","currentTarget","isComposing","onCompositionEnd","onKeyDown","yt","getElementById","scrollIntoViewIfNeeded","scrollIntoView","nextActiveItemId","metaKey","ctrlKey","shiftKey","altKey","onFocus","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_t","xt","Ct","Nt","Tt","options","__autocomplete_metadata","userAgents","ua","Lt","Rt","qt","Mt","Ht","Bt","Ft","Ut","Kt","Vt","zt","prevState","ke","Event","metadata","querySelector","content","Jt","searchByText","href","hostname","rel","xmlns","rx","ry","Qt","ariaLabel","Wt","selectText","selectKeyAriaLabel","navigateText","navigateUpKeyAriaLabel","navigateDownKeyAriaLabel","closeText","closeKeyAriaLabel","Zt","hit","url","Gt","strokeOpacity","transform","cx","cy","attributeName","to","dur","repeatCount","Yt","$t","Xt","er","tr","nr","rr","or","ir","ar","cr","titleText","helpText","ur","lr","noResultsText","suggestedQueryText","reportMissingResultsText","reportMissingResultsLinkText","searchSuggestions","toLowerCase","inputRef","getMissingResultsUrl","sr","fr","mr","attribute","tagName","dangerouslySetInnerHTML","__html","pr","title","vr","renderIcon","renderAction","onItemClick","hitComponent","useState","useRef","__docsearch_parent","onTransitionEnd","hierarchy","runDeleteTransition","runFavoriteTransition","dr","hr","yr","button","gr","br","Sr","RegExp","Or","lvl0","wr","resultsFooterComponent","Er","jr","recentSearchesTitle","noRecentSearchesText","saveRecentSearchButtonTitle","removeRecentSearchButtonTitle","favoriteSearchesTitle","removeFavoriteSearchButtonTitle","hasCollections","disableUserPersonalization","stopPropagation","favoriteSearches","recentSearches","remove","Pr","Ir","memo","errorScreen","noResultsScreen","startScreen","Dr","kr","resetButtonTitle","resetButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","searchInputLabel","useEffect","isFromSelection","select","hidden","onClose","Ar","xr","limit","localStorage","setItem","removeItem","getItem","parse","_r","_snippetResult","splice","unshift","getAll","Cr","miss","timeToLive","fromEntries","entries","timestamp","Date","getTime","delete","clear","Nr","caches","Tr","serializable","Lr","algoliaAgents","client","Rr","qr","now","lastUpdate","isUp","isTimedOut","Mr","Hr","stackTrace","Br","Fr","Ur","response","Kr","Vr","sort","encodeURIComponent","protocol","port","substring","zr","data","Jr","Accept","Qr","message","Wr","Zr","Gr","request","Yr","$r","Xr","en","accept","Math","floor","random","rn","nn","useMemo","authMode","queryParameters","hosts","hostsCache","baseHeaders","logger","baseQueryParameters","algoliaAgent","timeouts","requester","requestsCache","responsesCache","getTimeout","path","connectTimeout","connect","responseTimeout","read","write","host","triesLeft","send","info","useReadTransporter","cacheable","requestOptions","transporter","reject","clearCache","_ua","addAlgoliaAgent","setClientApiKey","searchForHits","search","searchForFacets","customPost","parameters","getRecommendations","facet","maxFacetHits","facetQuery","tn","XMLHttpRequest","setRequestHeader","abort","onreadystatechange","readyState","OPENED","responseText","onload","on","an","indexName","searchParameters","maxResultsPerGroup","transformItems","initialScrollY","transformSearchClient","initialQuery","footer","searchBox","getSelection","useCallback","attributesToRetrieve","attributesToSnippet","snippetEllipsisText","highlightPreTag","highlightPostTag","hitsPerPage","nbHits","lvl1","flat","container","querySelectorAll","classList","scrollTo","matchMedia","matches","scrollTop","innerHeight","style","setProperty","tabIndex","un","onOpen","onInput","searchButtonRef","code","isContentEditable","fromCharCode","keyCode","cn","scrollY","modal","render","React","DocSearch","_extends","undefined","getHTMLElement"],"mappings":"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","x_google_ignoreList":[0,1,2]} \ No newline at end of file diff --git a/node_modules/@docsearch/js/package.json b/node_modules/@docsearch/js/package.json index c467ae1..c7e053e 100644 --- a/node_modules/@docsearch/js/package.json +++ b/node_modules/@docsearch/js/package.json @@ -1,10 +1,14 @@ { "name": "@docsearch/js", "description": "JavaScript package for DocSearch, the best search experience for docs.", - "version": "3.5.2", + "version": "3.8.2", "license": "MIT", "homepage": "https://docsearch.algolia.com", - "repository": "algolia/docsearch", + "repository": { + "type": "git", + "url": "git+https://github.com/algolia/docsearch.git", + "directory": "packages/docsearch-js" + }, "author": { "name": "Algolia, Inc.", "url": "https://www.algolia.com" @@ -22,15 +26,17 @@ "jsdelivr": "dist/umd/index.js", "scripts": { "build:clean": "rm -rf ./dist", - "build:esm": "cross-env BUILD=esm rollup --config", - "build:types": "tsc -p ./tsconfig.declaration.json --outDir ./dist/esm", - "build:umd": "cross-env BUILD=umd rollup --config", - "build": "yarn build:clean && yarn build:umd && yarn build:esm && yarn build:types", - "on:change": "concurrently \"yarn build:esm\" \"yarn build:types\"", + "build:types": "tsc -p ./tsconfig.declaration.json --outDir ./dist/esm/types", + "build:clean-types": "rm -rf ./dist/esm/types", + "build": "yarn build:clean && yarn build:types && rollup --config --bundleConfigAsCjs && yarn build:clean-types", + "on:change": "yarn build", "watch": "watch \"yarn on:change\" --ignoreDirectoryPattern \"/dist/\"" }, "dependencies": { - "@docsearch/react": "3.5.2", + "@docsearch/react": "3.8.2", "preact": "^10.0.0" + }, + "devDependencies": { + "@rollup/plugin-replace": "6.0.1" } } diff --git a/node_modules/@docsearch/react/README.md b/node_modules/@docsearch/react/README.md index b13eb61..85069ac 100644 --- a/node_modules/@docsearch/react/README.md +++ b/node_modules/@docsearch/react/README.md @@ -40,4 +40,4 @@ export default App; ## Documentation -[Read documentation →](https://docsearch.algolia.com/docs/DocSearch-v3) +[Read documentation →](https://docsearch.algolia.com/docs/docsearch-v3) diff --git a/node_modules/@docsearch/react/button.js b/node_modules/@docsearch/react/button.js index 5614c2a..6df05f2 100644 --- a/node_modules/@docsearch/react/button.js +++ b/node_modules/@docsearch/react/button.js @@ -1 +1 @@ -export { DocSearchButton } from './dist/esm/DocSearchButton.js'; +export { DocSearchButton } from './dist/esm'; diff --git a/node_modules/@docsearch/react/dist/esm/AlgoliaLogo.d.ts b/node_modules/@docsearch/react/dist/esm/AlgoliaLogo.d.ts deleted file mode 100644 index 9c08970..0000000 --- a/node_modules/@docsearch/react/dist/esm/AlgoliaLogo.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare type AlgoliaLogoTranslations = Partial<{ - searchByText: string; -}>; -declare type AlgoliaLogoProps = { - translations?: AlgoliaLogoTranslations; -}; -export declare function AlgoliaLogo({ translations }: AlgoliaLogoProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/AlgoliaLogo.js b/node_modules/@docsearch/react/dist/esm/AlgoliaLogo.js deleted file mode 100644 index 893c0e0..0000000 --- a/node_modules/@docsearch/react/dist/esm/AlgoliaLogo.js +++ /dev/null @@ -1,54 +0,0 @@ -import React from 'react'; -export function AlgoliaLogo(_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations; - var _translations$searchB = translations.searchByText, - searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB; - return /*#__PURE__*/React.createElement("a", { - href: "https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname, "&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"), - target: "_blank", - rel: "noopener noreferrer" - }, /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Label" - }, searchByText), /*#__PURE__*/React.createElement("svg", { - width: "77", - height: "19", - "aria-label": "Algolia", - role: "img", - id: "Layer_1", - xmlns: "http://www.w3.org/2000/svg", - viewBox: "0 0 2196.2 500" - }, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("style", null, ".cls-1,.cls-2{fill:#003dff;}.cls-2{fill-rule:evenodd;}")), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M1070.38,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z" - }), /*#__PURE__*/React.createElement("rect", { - className: "cls-1", - x: "1845.88", - y: "104.73", - width: "62.58", - height: "277.9", - rx: "5.9", - ry: "5.9" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M1851.78,71.38h50.77c3.26,0,5.9-2.64,5.9-5.9V5.9c0-3.62-3.24-6.39-6.82-5.83l-50.77,7.95c-2.87,.45-4.99,2.92-4.99,5.83v51.62c0,3.26,2.64,5.9,5.9,5.9Z" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M1764.03,275.3V5.91c0-3.63-3.24-6.39-6.82-5.83l-50.46,7.94c-2.87,.45-4.99,2.93-4.99,5.84l.17,273.22c0,12.92,0,92.7,95.97,95.49,3.33,.1,6.09-2.58,6.09-5.91v-40.78c0-2.96-2.19-5.51-5.12-5.84-34.85-4.01-34.85-47.57-34.85-54.72Z" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M1631.95,142.72c-11.14-12.25-24.83-21.65-40.78-28.31-15.92-6.53-33.26-9.85-52.07-9.85-18.78,0-36.15,3.17-51.92,9.85-15.59,6.66-29.29,16.05-40.76,28.31-11.47,12.23-20.38,26.87-26.76,44.03-6.38,17.17-9.24,37.37-9.24,58.36,0,20.99,3.19,36.87,9.55,54.21,6.38,17.32,15.14,32.11,26.45,44.36,11.29,12.23,24.83,21.62,40.6,28.46,15.77,6.83,40.12,10.33,52.4,10.48,12.25,0,36.78-3.82,52.7-10.48,15.92-6.68,29.46-16.23,40.78-28.46,11.29-12.25,20.05-27.04,26.25-44.36,6.22-17.34,9.24-33.22,9.24-54.21,0-20.99-3.34-41.19-10.03-58.36-6.38-17.17-15.14-31.8-26.43-44.03Zm-44.43,163.75c-11.47,15.75-27.56,23.7-48.09,23.7-20.55,0-36.63-7.8-48.1-23.7-11.47-15.75-17.21-34.01-17.21-61.2,0-26.89,5.59-49.14,17.06-64.87,11.45-15.75,27.54-23.52,48.07-23.52,20.55,0,36.63,7.78,48.09,23.52,11.47,15.57,17.36,37.98,17.36,64.87,0,27.19-5.72,45.3-17.19,61.2Z" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M894.42,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M2133.97,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-14.52,22.58-22.99,49.63-22.99,78.73,0,44.89,20.13,84.92,51.59,111.1,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47,1.23,0,2.46-.03,3.68-.09,.36-.02,.71-.05,1.07-.07,.87-.05,1.75-.11,2.62-.2,.34-.03,.68-.08,1.02-.12,.91-.1,1.82-.21,2.73-.34,.21-.03,.42-.07,.63-.1,32.89-5.07,61.56-30.82,70.9-62.81v57.83c0,3.26,2.64,5.9,5.9,5.9h50.42c3.26,0,5.9-2.64,5.9-5.9V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,206.92c-12.2,10.16-27.97,13.98-44.84,15.12-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-42.24,0-77.12-35.89-77.12-79.37,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33v142.83Z" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-2", - d: "M1314.05,104.73h-49.33c-48.36,0-90.91,25.48-115.75,64.1-11.79,18.34-19.6,39.64-22.11,62.59-.58,5.3-.88,10.68-.88,16.14s.31,11.15,.93,16.59c4.28,38.09,23.14,71.61,50.66,94.52,2.93,2.6,6.05,4.98,9.31,7.14,12.86,8.49,28.11,13.47,44.52,13.47h0c17.99,0,34.61-5.93,48.16-15.97,16.29-11.58,28.88-28.54,34.48-47.75v50.26h-.11v11.08c0,21.84-5.71,38.27-17.34,49.36-11.61,11.08-31.04,16.63-58.25,16.63-11.12,0-28.79-.59-46.6-2.41-2.83-.29-5.46,1.5-6.27,4.22l-12.78,43.11c-1.02,3.46,1.27,7.02,4.83,7.53,21.52,3.08,42.52,4.68,54.65,4.68,48.91,0,85.16-10.75,108.89-32.21,21.48-19.41,33.15-48.89,35.2-88.52V110.63c0-3.26-2.64-5.9-5.9-5.9h-56.32Zm0,64.1s.65,139.13,0,143.36c-12.08,9.77-27.11,13.59-43.49,14.7-.16,.01-.33,.03-.49,.04-1.12,.07-2.24,.1-3.36,.1-1.32,0-2.63-.03-3.94-.1-40.41-2.11-74.52-37.26-74.52-79.38,0-10.25,1.96-20.01,5.42-28.98,11.22-29.12,38.77-49.74,71.06-49.74h49.33Z" - }), /*#__PURE__*/React.createElement("path", { - className: "cls-1", - d: "M249.83,0C113.3,0,2,110.09,.03,246.16c-2,138.19,110.12,252.7,248.33,253.5,42.68,.25,83.79-10.19,120.3-30.03,3.56-1.93,4.11-6.83,1.08-9.51l-23.38-20.72c-4.75-4.21-11.51-5.4-17.36-2.92-25.48,10.84-53.17,16.38-81.71,16.03-111.68-1.37-201.91-94.29-200.13-205.96,1.76-110.26,92-199.41,202.67-199.41h202.69V407.41l-115-102.18c-3.72-3.31-9.42-2.66-12.42,1.31-18.46,24.44-48.53,39.64-81.93,37.34-46.33-3.2-83.87-40.5-87.34-86.81-4.15-55.24,39.63-101.52,94-101.52,49.18,0,89.68,37.85,93.91,85.95,.38,4.28,2.31,8.27,5.52,11.12l29.95,26.55c3.4,3.01,8.79,1.17,9.63-3.3,2.16-11.55,2.92-23.58,2.07-35.92-4.82-70.34-61.8-126.93-132.17-131.26-80.68-4.97-148.13,58.14-150.27,137.25-2.09,77.1,61.08,143.56,138.19,145.26,32.19,.71,62.03-9.41,86.14-26.95l150.26,133.2c6.44,5.71,16.61,1.14,16.61-7.47V9.48C499.66,4.25,495.42,0,490.18,0H249.83Z" - }))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/DocSearch.d.ts b/node_modules/@docsearch/react/dist/esm/DocSearch.d.ts deleted file mode 100644 index 7cacc5a..0000000 --- a/node_modules/@docsearch/react/dist/esm/DocSearch.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { AutocompleteState, AutocompleteOptions } from '@algolia/autocomplete-core'; -import type { SearchOptions } from '@algolia/client-search'; -import type { SearchClient } from 'algoliasearch/lite'; -import React from 'react'; -import type { DocSearchHit, InternalDocSearchHit, StoredDocSearchHit } from './types'; -import type { ButtonTranslations, ModalTranslations } from '.'; -export declare type DocSearchTranslations = Partial<{ - button: ButtonTranslations; - modal: ModalTranslations; -}>; -export interface DocSearchProps { - appId: string; - apiKey: string; - indexName: string; - placeholder?: string; - searchParameters?: SearchOptions; - maxResultsPerGroup?: number; - transformItems?: (items: DocSearchHit[]) => DocSearchHit[]; - hitComponent?: (props: { - hit: InternalDocSearchHit | StoredDocSearchHit; - children: React.ReactNode; - }) => JSX.Element; - resultsFooterComponent?: (props: { - state: AutocompleteState; - }) => JSX.Element | null; - transformSearchClient?: (searchClient: SearchClient) => SearchClient; - disableUserPersonalization?: boolean; - initialQuery?: string; - navigator?: AutocompleteOptions['navigator']; - translations?: DocSearchTranslations; - getMissingResultsUrl?: ({ query }: { - query: string; - }) => string; - insights?: AutocompleteOptions['insights']; -} -export declare function DocSearch(props: DocSearchProps): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/DocSearch.js b/node_modules/@docsearch/react/dist/esm/DocSearch.js deleted file mode 100644 index 5a859f3..0000000 --- a/node_modules/@docsearch/react/dist/esm/DocSearch.js +++ /dev/null @@ -1,62 +0,0 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -import React from 'react'; -import { createPortal } from 'react-dom'; -import { DocSearchButton } from './DocSearchButton'; -import { DocSearchModal } from './DocSearchModal'; -import { useDocSearchKeyboardEvents } from './useDocSearchKeyboardEvents'; -export function DocSearch(props) { - var _props$translations, _props$translations2; - - var searchButtonRef = React.useRef(null); - - var _React$useState = React.useState(false), - _React$useState2 = _slicedToArray(_React$useState, 2), - isOpen = _React$useState2[0], - setIsOpen = _React$useState2[1]; - - var _React$useState3 = React.useState((props === null || props === void 0 ? void 0 : props.initialQuery) || undefined), - _React$useState4 = _slicedToArray(_React$useState3, 2), - initialQuery = _React$useState4[0], - setInitialQuery = _React$useState4[1]; - - var onOpen = React.useCallback(function () { - setIsOpen(true); - }, [setIsOpen]); - var onClose = React.useCallback(function () { - setIsOpen(false); - }, [setIsOpen]); - var onInput = React.useCallback(function (event) { - setIsOpen(true); - setInitialQuery(event.key); - }, [setIsOpen, setInitialQuery]); - useDocSearchKeyboardEvents({ - isOpen: isOpen, - onOpen: onOpen, - onClose: onClose, - onInput: onInput, - searchButtonRef: searchButtonRef - }); - return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DocSearchButton, { - ref: searchButtonRef, - translations: props === null || props === void 0 || (_props$translations = props.translations) === null || _props$translations === void 0 ? void 0 : _props$translations.button, - onClick: onOpen - }), isOpen && createPortal( /*#__PURE__*/React.createElement(DocSearchModal, _extends({}, props, { - initialScrollY: window.scrollY, - initialQuery: initialQuery, - translations: props === null || props === void 0 || (_props$translations2 = props.translations) === null || _props$translations2 === void 0 ? void 0 : _props$translations2.modal, - onClose: onClose - })), document.body)); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/DocSearchButton.d.ts b/node_modules/@docsearch/react/dist/esm/DocSearchButton.d.ts deleted file mode 100644 index 25f088c..0000000 --- a/node_modules/@docsearch/react/dist/esm/DocSearchButton.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -export declare type ButtonTranslations = Partial<{ - buttonText: string; - buttonAriaLabel: string; -}>; -export declare type DocSearchButtonProps = React.ComponentProps<'button'> & { - translations?: ButtonTranslations; -}; -export declare const DocSearchButton: React.ForwardRefExoticComponent> & React.RefAttributes>; diff --git a/node_modules/@docsearch/react/dist/esm/DocSearchButton.js b/node_modules/@docsearch/react/dist/esm/DocSearchButton.js deleted file mode 100644 index 80fd46d..0000000 --- a/node_modules/@docsearch/react/dist/esm/DocSearchButton.js +++ /dev/null @@ -1,68 +0,0 @@ -var _excluded = ["translations"]; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import React, { useEffect, useState } from 'react'; -import { ControlKeyIcon } from './icons/ControlKeyIcon'; -import { SearchIcon } from './icons/SearchIcon'; -var ACTION_KEY_DEFAULT = 'Ctrl'; -var ACTION_KEY_APPLE = '⌘'; - -function isAppleDevice() { - return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform); -} - -export var DocSearchButton = React.forwardRef(function (_ref, ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations, - props = _objectWithoutProperties(_ref, _excluded); - - var _translations$buttonT = translations.buttonText, - buttonText = _translations$buttonT === void 0 ? 'Search' : _translations$buttonT, - _translations$buttonA = translations.buttonAriaLabel, - buttonAriaLabel = _translations$buttonA === void 0 ? 'Search' : _translations$buttonA; - - var _useState = useState(null), - _useState2 = _slicedToArray(_useState, 2), - key = _useState2[0], - setKey = _useState2[1]; - - useEffect(function () { - if (typeof navigator !== 'undefined') { - isAppleDevice() ? setKey(ACTION_KEY_APPLE) : setKey(ACTION_KEY_DEFAULT); - } - }, []); - return /*#__PURE__*/React.createElement("button", _extends({ - type: "button", - className: "DocSearch DocSearch-Button", - "aria-label": buttonAriaLabel - }, props, { - ref: ref - }), /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Button-Container" - }, /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Button-Placeholder" - }, buttonText)), /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Button-Keys" - }, key !== null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("kbd", { - className: "DocSearch-Button-Key" - }, key === ACTION_KEY_DEFAULT ? /*#__PURE__*/React.createElement(ControlKeyIcon, null) : key), /*#__PURE__*/React.createElement("kbd", { - className: "DocSearch-Button-Key" - }, "K")))); -}); \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/DocSearchModal.d.ts b/node_modules/@docsearch/react/dist/esm/DocSearchModal.d.ts deleted file mode 100644 index 79be69c..0000000 --- a/node_modules/@docsearch/react/dist/esm/DocSearchModal.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { DocSearchProps } from './DocSearch'; -import type { FooterTranslations } from './Footer'; -import type { ScreenStateTranslations } from './ScreenState'; -import type { SearchBoxTranslations } from './SearchBox'; -export declare type ModalTranslations = Partial<{ - searchBox: SearchBoxTranslations; - footer: FooterTranslations; -}> & ScreenStateTranslations; -export declare type DocSearchModalProps = DocSearchProps & { - initialScrollY: number; - onClose?: () => void; - translations?: ModalTranslations; -}; -export declare function DocSearchModal({ appId, apiKey, indexName, placeholder, searchParameters, maxResultsPerGroup, onClose, transformItems, hitComponent, resultsFooterComponent, navigator, initialScrollY, transformSearchClient, disableUserPersonalization, initialQuery: initialQueryFromProp, translations, getMissingResultsUrl, insights, }: DocSearchModalProps): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/DocSearchModal.js b/node_modules/@docsearch/react/dist/esm/DocSearchModal.js deleted file mode 100644 index 6e4167f..0000000 --- a/node_modules/@docsearch/react/dist/esm/DocSearchModal.js +++ /dev/null @@ -1,418 +0,0 @@ -var _excluded = ["footer", "searchBox"]; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import { createAutocomplete } from '@algolia/autocomplete-core'; -import React from 'react'; -import { MAX_QUERY_SIZE } from './constants'; -import { Footer } from './Footer'; -import { Hit } from './Hit'; -import { ScreenState } from './ScreenState'; -import { SearchBox } from './SearchBox'; -import { createStoredSearches } from './stored-searches'; -import { useSearchClient } from './useSearchClient'; -import { useTouchEvents } from './useTouchEvents'; -import { useTrapFocus } from './useTrapFocus'; -import { groupBy, identity, noop, removeHighlightTags, isModifierEvent } from './utils'; -export function DocSearchModal(_ref) { - var appId = _ref.appId, - apiKey = _ref.apiKey, - indexName = _ref.indexName, - _ref$placeholder = _ref.placeholder, - placeholder = _ref$placeholder === void 0 ? 'Search docs' : _ref$placeholder, - searchParameters = _ref.searchParameters, - maxResultsPerGroup = _ref.maxResultsPerGroup, - _ref$onClose = _ref.onClose, - onClose = _ref$onClose === void 0 ? noop : _ref$onClose, - _ref$transformItems = _ref.transformItems, - transformItems = _ref$transformItems === void 0 ? identity : _ref$transformItems, - _ref$hitComponent = _ref.hitComponent, - hitComponent = _ref$hitComponent === void 0 ? Hit : _ref$hitComponent, - _ref$resultsFooterCom = _ref.resultsFooterComponent, - resultsFooterComponent = _ref$resultsFooterCom === void 0 ? function () { - return null; - } : _ref$resultsFooterCom, - navigator = _ref.navigator, - _ref$initialScrollY = _ref.initialScrollY, - initialScrollY = _ref$initialScrollY === void 0 ? 0 : _ref$initialScrollY, - _ref$transformSearchC = _ref.transformSearchClient, - transformSearchClient = _ref$transformSearchC === void 0 ? identity : _ref$transformSearchC, - _ref$disableUserPerso = _ref.disableUserPersonalization, - disableUserPersonalization = _ref$disableUserPerso === void 0 ? false : _ref$disableUserPerso, - _ref$initialQuery = _ref.initialQuery, - initialQueryFromProp = _ref$initialQuery === void 0 ? '' : _ref$initialQuery, - _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations, - getMissingResultsUrl = _ref.getMissingResultsUrl, - _ref$insights = _ref.insights, - insights = _ref$insights === void 0 ? false : _ref$insights; - - var footerTranslations = translations.footer, - searchBoxTranslations = translations.searchBox, - screenStateTranslations = _objectWithoutProperties(translations, _excluded); - - var _React$useState = React.useState({ - query: '', - collections: [], - completion: null, - context: {}, - isOpen: false, - activeItemId: null, - status: 'idle' - }), - _React$useState2 = _slicedToArray(_React$useState, 2), - state = _React$useState2[0], - setState = _React$useState2[1]; - - var containerRef = React.useRef(null); - var modalRef = React.useRef(null); - var formElementRef = React.useRef(null); - var dropdownRef = React.useRef(null); - var inputRef = React.useRef(null); - var snippetLength = React.useRef(10); - var initialQueryFromSelection = React.useRef(typeof window !== 'undefined' ? window.getSelection().toString().slice(0, MAX_QUERY_SIZE) : '').current; - var initialQuery = React.useRef(initialQueryFromProp || initialQueryFromSelection).current; - var searchClient = useSearchClient(appId, apiKey, transformSearchClient); - var favoriteSearches = React.useRef(createStoredSearches({ - key: "__DOCSEARCH_FAVORITE_SEARCHES__".concat(indexName), - limit: 10 - })).current; - var recentSearches = React.useRef(createStoredSearches({ - key: "__DOCSEARCH_RECENT_SEARCHES__".concat(indexName), - // We display 7 recent searches and there's no favorites, but only - // 4 when there are favorites. - limit: favoriteSearches.getAll().length === 0 ? 7 : 4 - })).current; - var saveRecentSearch = React.useCallback(function saveRecentSearch(item) { - if (disableUserPersonalization) { - return; - } // We don't store `content` record, but their parent if available. - - - var search = item.type === 'content' ? item.__docsearch_parent : item; // We save the recent search only if it's not favorited. - - if (search && favoriteSearches.getAll().findIndex(function (x) { - return x.objectID === search.objectID; - }) === -1) { - recentSearches.add(search); - } - }, [favoriteSearches, recentSearches, disableUserPersonalization]); - var sendItemClickEvent = React.useCallback(function (item) { - if (!state.context.algoliaInsightsPlugin || !item.__autocomplete_id) return; - var insightsItem = item; - var insightsClickParams = { - eventName: 'Item Selected', - index: insightsItem.__autocomplete_indexName, - items: [insightsItem], - positions: [item.__autocomplete_id], - queryID: insightsItem.__autocomplete_queryID - }; - state.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(insightsClickParams); - }, [state.context.algoliaInsightsPlugin]); - var autocomplete = React.useMemo(function () { - return createAutocomplete({ - id: 'docsearch', - defaultActiveItemId: 0, - placeholder: placeholder, - openOnFocus: true, - initialState: { - query: initialQuery, - context: { - searchSuggestions: [] - } - }, - insights: insights, - navigator: navigator, - onStateChange: function onStateChange(props) { - setState(props.state); - }, - getSources: function getSources(_ref2) { - var query = _ref2.query, - sourcesState = _ref2.state, - setContext = _ref2.setContext, - setStatus = _ref2.setStatus; - - if (!query) { - if (disableUserPersonalization) { - return []; - } - - return [{ - sourceId: 'recentSearches', - onSelect: function onSelect(_ref3) { - var item = _ref3.item, - event = _ref3.event; - saveRecentSearch(item); - - if (!isModifierEvent(event)) { - onClose(); - } - }, - getItemUrl: function getItemUrl(_ref4) { - var item = _ref4.item; - return item.url; - }, - getItems: function getItems() { - return recentSearches.getAll(); - } - }, { - sourceId: 'favoriteSearches', - onSelect: function onSelect(_ref5) { - var item = _ref5.item, - event = _ref5.event; - saveRecentSearch(item); - - if (!isModifierEvent(event)) { - onClose(); - } - }, - getItemUrl: function getItemUrl(_ref6) { - var item = _ref6.item; - return item.url; - }, - getItems: function getItems() { - return favoriteSearches.getAll(); - } - }]; - } - - var insightsActive = Boolean(insights); - return searchClient.search([{ - query: query, - indexName: indexName, - params: _objectSpread({ - attributesToRetrieve: ['hierarchy.lvl0', 'hierarchy.lvl1', 'hierarchy.lvl2', 'hierarchy.lvl3', 'hierarchy.lvl4', 'hierarchy.lvl5', 'hierarchy.lvl6', 'content', 'type', 'url'], - attributesToSnippet: ["hierarchy.lvl1:".concat(snippetLength.current), "hierarchy.lvl2:".concat(snippetLength.current), "hierarchy.lvl3:".concat(snippetLength.current), "hierarchy.lvl4:".concat(snippetLength.current), "hierarchy.lvl5:".concat(snippetLength.current), "hierarchy.lvl6:".concat(snippetLength.current), "content:".concat(snippetLength.current)], - snippetEllipsisText: '…', - highlightPreTag: '', - highlightPostTag: '', - hitsPerPage: 20, - clickAnalytics: insightsActive - }, searchParameters) - }]).catch(function (error) { - // The Algolia `RetryError` happens when all the servers have - // failed, meaning that there's no chance the response comes - // back. This is the right time to display an error. - // See https://github.com/algolia/algoliasearch-client-javascript/blob/2ffddf59bc765cd1b664ee0346b28f00229d6e12/packages/transporter/src/errors/createRetryError.ts#L5 - if (error.name === 'RetryError') { - setStatus('error'); - } - - throw error; - }).then(function (_ref7) { - var results = _ref7.results; - var firstResult = results[0]; - var hits = firstResult.hits, - nbHits = firstResult.nbHits; - var sources = groupBy(hits, function (hit) { - return removeHighlightTags(hit); - }, maxResultsPerGroup); // We store the `lvl0`s to display them as search suggestions - // in the "no results" screen. - - if (sourcesState.context.searchSuggestions.length < Object.keys(sources).length) { - setContext({ - searchSuggestions: Object.keys(sources) - }); - } - - setContext({ - nbHits: nbHits - }); - var insightsParams = {}; - - if (insightsActive) { - insightsParams = { - __autocomplete_indexName: indexName, - __autocomplete_queryID: firstResult.queryID, - __autocomplete_algoliaCredentials: { - appId: appId, - apiKey: apiKey - } - }; - } - - return Object.values(sources).map(function (items, index) { - return { - sourceId: "hits".concat(index), - onSelect: function onSelect(_ref8) { - var item = _ref8.item, - event = _ref8.event; - saveRecentSearch(item); - - if (!isModifierEvent(event)) { - onClose(); - } - }, - getItemUrl: function getItemUrl(_ref9) { - var item = _ref9.item; - return item.url; - }, - getItems: function getItems() { - return Object.values(groupBy(items, function (item) { - return item.hierarchy.lvl1; - }, maxResultsPerGroup)).map(transformItems).map(function (groupedHits) { - return groupedHits.map(function (item) { - var parent = null; - var potentialParent = groupedHits.find(function (siblingItem) { - return siblingItem.type === 'lvl1' && siblingItem.hierarchy.lvl1 === item.hierarchy.lvl1; - }); - - if (item.type !== 'lvl1' && potentialParent) { - parent = potentialParent; - } - - return _objectSpread(_objectSpread({}, item), {}, { - __docsearch_parent: parent - }, insightsParams); - }); - }).flat(); - } - }; - }); - }); - } - }); - }, [indexName, searchParameters, maxResultsPerGroup, searchClient, onClose, recentSearches, favoriteSearches, saveRecentSearch, initialQuery, placeholder, navigator, transformItems, disableUserPersonalization, insights, appId, apiKey]); - var getEnvironmentProps = autocomplete.getEnvironmentProps, - getRootProps = autocomplete.getRootProps, - refresh = autocomplete.refresh; - useTouchEvents({ - getEnvironmentProps: getEnvironmentProps, - panelElement: dropdownRef.current, - formElement: formElementRef.current, - inputElement: inputRef.current - }); - useTrapFocus({ - container: containerRef.current - }); - React.useEffect(function () { - document.body.classList.add('DocSearch--active'); - return function () { - var _window$scrollTo, _window; - - document.body.classList.remove('DocSearch--active'); // IE11 doesn't support `scrollTo` so we check that the method exists - // first. - - (_window$scrollTo = (_window = window).scrollTo) === null || _window$scrollTo === void 0 ? void 0 : _window$scrollTo.call(_window, 0, initialScrollY); - }; // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - React.useEffect(function () { - var isMobileMediaQuery = window.matchMedia('(max-width: 768px)'); - - if (isMobileMediaQuery.matches) { - snippetLength.current = 5; - } - }, []); - React.useEffect(function () { - if (dropdownRef.current) { - dropdownRef.current.scrollTop = 0; - } - }, [state.query]); // We don't focus the input when there's an initial query (i.e. Selection - // Search) because users rather want to see the results directly, without the - // keyboard appearing. - // We therefore need to refresh the autocomplete instance to load all the - // results, which is usually triggered on focus. - - React.useEffect(function () { - if (initialQuery.length > 0) { - refresh(); - - if (inputRef.current) { - inputRef.current.focus(); - } - } - }, [initialQuery, refresh]); // We rely on a CSS property to set the modal height to the full viewport height - // because all mobile browsers don't compute their height the same way. - // See https://css-tricks.com/the-trick-to-viewport-units-on-mobile/ - - React.useEffect(function () { - function setFullViewportHeight() { - if (modalRef.current) { - var vh = window.innerHeight * 0.01; - modalRef.current.style.setProperty('--docsearch-vh', "".concat(vh, "px")); - } - } - - setFullViewportHeight(); - window.addEventListener('resize', setFullViewportHeight); - return function () { - window.removeEventListener('resize', setFullViewportHeight); - }; - }, []); - return /*#__PURE__*/React.createElement("div", _extends({ - ref: containerRef - }, getRootProps({ - 'aria-expanded': true - }), { - className: ['DocSearch', 'DocSearch-Container', state.status === 'stalled' && 'DocSearch-Container--Stalled', state.status === 'error' && 'DocSearch-Container--Errored'].filter(Boolean).join(' '), - role: "button", - tabIndex: 0, - onMouseDown: function onMouseDown(event) { - if (event.target === event.currentTarget) { - onClose(); - } - } - }), /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Modal", - ref: modalRef - }, /*#__PURE__*/React.createElement("header", { - className: "DocSearch-SearchBar", - ref: formElementRef - }, /*#__PURE__*/React.createElement(SearchBox, _extends({}, autocomplete, { - state: state, - autoFocus: initialQuery.length === 0, - inputRef: inputRef, - isFromSelection: Boolean(initialQuery) && initialQuery === initialQueryFromSelection, - translations: searchBoxTranslations, - onClose: onClose - }))), /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Dropdown", - ref: dropdownRef - }, /*#__PURE__*/React.createElement(ScreenState, _extends({}, autocomplete, { - indexName: indexName, - state: state, - hitComponent: hitComponent, - resultsFooterComponent: resultsFooterComponent, - disableUserPersonalization: disableUserPersonalization, - recentSearches: recentSearches, - favoriteSearches: favoriteSearches, - inputRef: inputRef, - translations: screenStateTranslations, - getMissingResultsUrl: getMissingResultsUrl, - onItemClick: function onItemClick(item, event) { - // If insights is active, send insights click event - sendItemClickEvent(item); - saveRecentSearch(item); - - if (!isModifierEvent(event)) { - onClose(); - } - } - }))), /*#__PURE__*/React.createElement("footer", { - className: "DocSearch-Footer" - }, /*#__PURE__*/React.createElement(Footer, { - translations: footerTranslations - })))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/ErrorScreen.d.ts b/node_modules/@docsearch/react/dist/esm/ErrorScreen.d.ts deleted file mode 100644 index e2cb514..0000000 --- a/node_modules/@docsearch/react/dist/esm/ErrorScreen.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export declare type ErrorScreenTranslations = Partial<{ - titleText: string; - helpText: string; -}>; -declare type ErrorScreenProps = { - translations?: ErrorScreenTranslations; -}; -export declare function ErrorScreen({ translations }: ErrorScreenProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/ErrorScreen.js b/node_modules/@docsearch/react/dist/esm/ErrorScreen.js deleted file mode 100644 index b8b0920..0000000 --- a/node_modules/@docsearch/react/dist/esm/ErrorScreen.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import { ErrorIcon } from './icons'; -export function ErrorScreen(_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations; - var _translations$titleTe = translations.titleText, - titleText = _translations$titleTe === void 0 ? 'Unable to fetch results' : _translations$titleTe, - _translations$helpTex = translations.helpText, - helpText = _translations$helpTex === void 0 ? 'You might want to check your network connection.' : _translations$helpTex; - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-ErrorScreen" - }, /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Screen-Icon" - }, /*#__PURE__*/React.createElement(ErrorIcon, null)), /*#__PURE__*/React.createElement("p", { - className: "DocSearch-Title" - }, titleText), /*#__PURE__*/React.createElement("p", { - className: "DocSearch-Help" - }, helpText)); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/Footer.d.ts b/node_modules/@docsearch/react/dist/esm/Footer.d.ts deleted file mode 100644 index 5f18bdf..0000000 --- a/node_modules/@docsearch/react/dist/esm/Footer.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export declare type FooterTranslations = Partial<{ - selectText: string; - selectKeyAriaLabel: string; - navigateText: string; - navigateUpKeyAriaLabel: string; - navigateDownKeyAriaLabel: string; - closeText: string; - closeKeyAriaLabel: string; - searchByText: string; -}>; -declare type FooterProps = Partial<{ - translations: FooterTranslations; -}>; -export declare function Footer({ translations }: FooterProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/Footer.js b/node_modules/@docsearch/react/dist/esm/Footer.js deleted file mode 100644 index fee0167..0000000 --- a/node_modules/@docsearch/react/dist/esm/Footer.js +++ /dev/null @@ -1,77 +0,0 @@ -import React from 'react'; -import { AlgoliaLogo } from './AlgoliaLogo'; - -function CommandIcon(props) { - return /*#__PURE__*/React.createElement("svg", { - width: "15", - height: "15", - "aria-label": props.ariaLabel, - role: "img" - }, /*#__PURE__*/React.createElement("g", { - fill: "none", - stroke: "currentColor", - strokeLinecap: "round", - strokeLinejoin: "round", - strokeWidth: "1.2" - }, props.children)); -} - -export function Footer(_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations; - var _translations$selectT = translations.selectText, - selectText = _translations$selectT === void 0 ? 'to select' : _translations$selectT, - _translations$selectK = translations.selectKeyAriaLabel, - selectKeyAriaLabel = _translations$selectK === void 0 ? 'Enter key' : _translations$selectK, - _translations$navigat = translations.navigateText, - navigateText = _translations$navigat === void 0 ? 'to navigate' : _translations$navigat, - _translations$navigat2 = translations.navigateUpKeyAriaLabel, - navigateUpKeyAriaLabel = _translations$navigat2 === void 0 ? 'Arrow up' : _translations$navigat2, - _translations$navigat3 = translations.navigateDownKeyAriaLabel, - navigateDownKeyAriaLabel = _translations$navigat3 === void 0 ? 'Arrow down' : _translations$navigat3, - _translations$closeTe = translations.closeText, - closeText = _translations$closeTe === void 0 ? 'to close' : _translations$closeTe, - _translations$closeKe = translations.closeKeyAriaLabel, - closeKeyAriaLabel = _translations$closeKe === void 0 ? 'Escape key' : _translations$closeKe, - _translations$searchB = translations.searchByText, - searchByText = _translations$searchB === void 0 ? 'Search by' : _translations$searchB; - return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Logo" - }, /*#__PURE__*/React.createElement(AlgoliaLogo, { - translations: { - searchByText: searchByText - } - })), /*#__PURE__*/React.createElement("ul", { - className: "DocSearch-Commands" - }, /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("kbd", { - className: "DocSearch-Commands-Key" - }, /*#__PURE__*/React.createElement(CommandIcon, { - ariaLabel: selectKeyAriaLabel - }, /*#__PURE__*/React.createElement("path", { - d: "M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3" - }))), /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Label" - }, selectText)), /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("kbd", { - className: "DocSearch-Commands-Key" - }, /*#__PURE__*/React.createElement(CommandIcon, { - ariaLabel: navigateDownKeyAriaLabel - }, /*#__PURE__*/React.createElement("path", { - d: "M7.5 3.5v8M10.5 8.5l-3 3-3-3" - }))), /*#__PURE__*/React.createElement("kbd", { - className: "DocSearch-Commands-Key" - }, /*#__PURE__*/React.createElement(CommandIcon, { - ariaLabel: navigateUpKeyAriaLabel - }, /*#__PURE__*/React.createElement("path", { - d: "M7.5 11.5v-8M10.5 6.5l-3-3-3 3" - }))), /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Label" - }, navigateText)), /*#__PURE__*/React.createElement("li", null, /*#__PURE__*/React.createElement("kbd", { - className: "DocSearch-Commands-Key" - }, /*#__PURE__*/React.createElement(CommandIcon, { - ariaLabel: closeKeyAriaLabel - }, /*#__PURE__*/React.createElement("path", { - d: "M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956" - }))), /*#__PURE__*/React.createElement("span", { - className: "DocSearch-Label" - }, closeText)))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/Hit.d.ts b/node_modules/@docsearch/react/dist/esm/Hit.d.ts deleted file mode 100644 index b010736..0000000 --- a/node_modules/@docsearch/react/dist/esm/Hit.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import type { InternalDocSearchHit, StoredDocSearchHit } from './types'; -interface HitProps { - hit: InternalDocSearchHit | StoredDocSearchHit; - children: React.ReactNode; -} -export declare function Hit({ hit, children }: HitProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/Hit.js b/node_modules/@docsearch/react/dist/esm/Hit.js deleted file mode 100644 index 00bf82c..0000000 --- a/node_modules/@docsearch/react/dist/esm/Hit.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -export function Hit(_ref) { - var hit = _ref.hit, - children = _ref.children; - return /*#__PURE__*/React.createElement("a", { - href: hit.url - }, children); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/NoResultsScreen.d.ts b/node_modules/@docsearch/react/dist/esm/NoResultsScreen.d.ts deleted file mode 100644 index 89f84e3..0000000 --- a/node_modules/@docsearch/react/dist/esm/NoResultsScreen.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { ScreenStateProps } from './ScreenState'; -import type { InternalDocSearchHit } from './types'; -export declare type NoResultsScreenTranslations = Partial<{ - noResultsText: string; - suggestedQueryText: string; - reportMissingResultsText: string; - reportMissingResultsLinkText: string; -}>; -declare type NoResultsScreenProps = Omit, 'translations'> & { - translations?: NoResultsScreenTranslations; -}; -export declare function NoResultsScreen({ translations, ...props }: NoResultsScreenProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/NoResultsScreen.js b/node_modules/@docsearch/react/dist/esm/NoResultsScreen.js deleted file mode 100644 index 1ad1e98..0000000 --- a/node_modules/@docsearch/react/dist/esm/NoResultsScreen.js +++ /dev/null @@ -1,67 +0,0 @@ -var _excluded = ["translations"]; - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import React from 'react'; -import { NoResultsIcon } from './icons'; -export function NoResultsScreen(_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations, - props = _objectWithoutProperties(_ref, _excluded); - - var _translations$noResul = translations.noResultsText, - noResultsText = _translations$noResul === void 0 ? 'No results for' : _translations$noResul, - _translations$suggest = translations.suggestedQueryText, - suggestedQueryText = _translations$suggest === void 0 ? 'Try searching for' : _translations$suggest, - _translations$reportM = translations.reportMissingResultsText, - reportMissingResultsText = _translations$reportM === void 0 ? 'Believe this query should return results?' : _translations$reportM, - _translations$reportM2 = translations.reportMissingResultsLinkText, - reportMissingResultsLinkText = _translations$reportM2 === void 0 ? 'Let us know.' : _translations$reportM2; - var searchSuggestions = props.state.context.searchSuggestions; - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-NoResults" - }, /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Screen-Icon" - }, /*#__PURE__*/React.createElement(NoResultsIcon, null)), /*#__PURE__*/React.createElement("p", { - className: "DocSearch-Title" - }, noResultsText, " \"", /*#__PURE__*/React.createElement("strong", null, props.state.query), "\""), searchSuggestions && searchSuggestions.length > 0 && /*#__PURE__*/React.createElement("div", { - className: "DocSearch-NoResults-Prefill-List" - }, /*#__PURE__*/React.createElement("p", { - className: "DocSearch-Help" - }, suggestedQueryText, ":"), /*#__PURE__*/React.createElement("ul", null, searchSuggestions.slice(0, 3).reduce(function (acc, search) { - return [].concat(_toConsumableArray(acc), [/*#__PURE__*/React.createElement("li", { - key: search - }, /*#__PURE__*/React.createElement("button", { - className: "DocSearch-Prefill", - key: search, - type: "button", - onClick: function onClick() { - props.setQuery(search.toLowerCase() + ' '); - props.refresh(); - props.inputRef.current.focus(); - } - }, search))]); - }, []))), props.getMissingResultsUrl && /*#__PURE__*/React.createElement("p", { - className: "DocSearch-Help" - }, "".concat(reportMissingResultsText, " "), /*#__PURE__*/React.createElement("a", { - href: props.getMissingResultsUrl({ - query: props.state.query - }), - target: "_blank", - rel: "noopener noreferrer" - }, reportMissingResultsLinkText))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/Results.d.ts b/node_modules/@docsearch/react/dist/esm/Results.d.ts deleted file mode 100644 index 119c972..0000000 --- a/node_modules/@docsearch/react/dist/esm/Results.d.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { AutocompleteApi, AutocompleteState, BaseItem } from '@algolia/autocomplete-core'; -import React from 'react'; -import type { DocSearchProps } from './DocSearch'; -import type { StoredDocSearchHit } from './types'; -interface ResultsProps extends AutocompleteApi { - title: string; - collection: AutocompleteState['collections'][0]; - renderIcon: (props: { - item: TItem; - index: number; - }) => React.ReactNode; - renderAction: (props: { - item: TItem; - runDeleteTransition: (cb: () => void) => void; - runFavoriteTransition: (cb: () => void) => void; - }) => React.ReactNode; - onItemClick: (item: TItem, event: KeyboardEvent | MouseEvent) => void; - hitComponent: DocSearchProps['hitComponent']; -} -export declare function Results(props: ResultsProps): JSX.Element | null; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/Results.js b/node_modules/@docsearch/react/dist/esm/Results.js deleted file mode 100644 index cd15629..0000000 --- a/node_modules/@docsearch/react/dist/esm/Results.js +++ /dev/null @@ -1,123 +0,0 @@ -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } - -function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -import React from 'react'; -import { Snippet } from './Snippet'; -export function Results(props) { - if (!props.collection || props.collection.items.length === 0) { - return null; - } - - return /*#__PURE__*/React.createElement("section", { - className: "DocSearch-Hits" - }, /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-source" - }, props.title), /*#__PURE__*/React.createElement("ul", props.getListProps(), props.collection.items.map(function (item, index) { - return /*#__PURE__*/React.createElement(Result, _extends({ - key: [props.title, item.objectID].join(':'), - item: item, - index: index - }, props)); - }))); -} - -function Result(_ref) { - var item = _ref.item, - index = _ref.index, - renderIcon = _ref.renderIcon, - renderAction = _ref.renderAction, - getItemProps = _ref.getItemProps, - onItemClick = _ref.onItemClick, - collection = _ref.collection, - hitComponent = _ref.hitComponent; - - var _React$useState = React.useState(false), - _React$useState2 = _slicedToArray(_React$useState, 2), - isDeleting = _React$useState2[0], - setIsDeleting = _React$useState2[1]; - - var _React$useState3 = React.useState(false), - _React$useState4 = _slicedToArray(_React$useState3, 2), - isFavoriting = _React$useState4[0], - setIsFavoriting = _React$useState4[1]; - - var action = React.useRef(null); - var Hit = hitComponent; - - function runDeleteTransition(cb) { - setIsDeleting(true); - action.current = cb; - } - - function runFavoriteTransition(cb) { - setIsFavoriting(true); - action.current = cb; - } - - return /*#__PURE__*/React.createElement("li", _extends({ - className: ['DocSearch-Hit', item.__docsearch_parent && 'DocSearch-Hit--Child', isDeleting && 'DocSearch-Hit--deleting', isFavoriting && 'DocSearch-Hit--favoriting'].filter(Boolean).join(' '), - onTransitionEnd: function onTransitionEnd() { - if (action.current) { - action.current(); - } - } - }, getItemProps({ - item: item, - source: collection.source, - onClick: function onClick(event) { - onItemClick(item, event); - } - })), /*#__PURE__*/React.createElement(Hit, { - hit: item - }, /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-Container" - }, renderIcon({ - item: item, - index: index - }), item.hierarchy[item.type] && item.type === 'lvl1' && /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-content-wrapper" - }, /*#__PURE__*/React.createElement(Snippet, { - className: "DocSearch-Hit-title", - hit: item, - attribute: "hierarchy.lvl1" - }), item.content && /*#__PURE__*/React.createElement(Snippet, { - className: "DocSearch-Hit-path", - hit: item, - attribute: "content" - })), item.hierarchy[item.type] && (item.type === 'lvl2' || item.type === 'lvl3' || item.type === 'lvl4' || item.type === 'lvl5' || item.type === 'lvl6') && /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-content-wrapper" - }, /*#__PURE__*/React.createElement(Snippet, { - className: "DocSearch-Hit-title", - hit: item, - attribute: "hierarchy.".concat(item.type) - }), /*#__PURE__*/React.createElement(Snippet, { - className: "DocSearch-Hit-path", - hit: item, - attribute: "hierarchy.lvl1" - })), item.type === 'content' && /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-content-wrapper" - }, /*#__PURE__*/React.createElement(Snippet, { - className: "DocSearch-Hit-title", - hit: item, - attribute: "content" - }), /*#__PURE__*/React.createElement(Snippet, { - className: "DocSearch-Hit-path", - hit: item, - attribute: "hierarchy.lvl1" - })), renderAction({ - item: item, - runDeleteTransition: runDeleteTransition, - runFavoriteTransition: runFavoriteTransition - })))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/ResultsScreen.d.ts b/node_modules/@docsearch/react/dist/esm/ResultsScreen.d.ts deleted file mode 100644 index c915e10..0000000 --- a/node_modules/@docsearch/react/dist/esm/ResultsScreen.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { ScreenStateProps } from './ScreenState'; -import type { InternalDocSearchHit } from './types'; -declare type ResultsScreenProps = Omit, 'translations'>; -export declare function ResultsScreen(props: ResultsScreenProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/ResultsScreen.js b/node_modules/@docsearch/react/dist/esm/ResultsScreen.js deleted file mode 100644 index 27c2bf5..0000000 --- a/node_modules/@docsearch/react/dist/esm/ResultsScreen.js +++ /dev/null @@ -1,55 +0,0 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -import React from 'react'; -import { SelectIcon, SourceIcon } from './icons'; -import { Results } from './Results'; -import { removeHighlightTags } from './utils'; -export function ResultsScreen(props) { - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Dropdown-Container" - }, props.state.collections.map(function (collection) { - if (collection.items.length === 0) { - return null; - } - - var title = removeHighlightTags(collection.items[0]); - return /*#__PURE__*/React.createElement(Results, _extends({}, props, { - key: collection.source.sourceId, - title: title, - collection: collection, - renderIcon: function renderIcon(_ref) { - var _collection$items; - - var item = _ref.item, - index = _ref.index; - return /*#__PURE__*/React.createElement(React.Fragment, null, item.__docsearch_parent && /*#__PURE__*/React.createElement("svg", { - className: "DocSearch-Hit-Tree", - viewBox: "0 0 24 54" - }, /*#__PURE__*/React.createElement("g", { - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinecap: "round", - strokeLinejoin: "round" - }, item.__docsearch_parent !== ((_collection$items = collection.items[index + 1]) === null || _collection$items === void 0 ? void 0 : _collection$items.__docsearch_parent) ? /*#__PURE__*/React.createElement("path", { - d: "M8 6v21M20 27H8.3" - }) : /*#__PURE__*/React.createElement("path", { - d: "M8 6v42M20 27H8.3" - }))), /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-icon" - }, /*#__PURE__*/React.createElement(SourceIcon, { - type: item.type - }))); - }, - renderAction: function renderAction() { - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-action" - }, /*#__PURE__*/React.createElement(SelectIcon, null)); - } - })); - }), props.resultsFooterComponent && /*#__PURE__*/React.createElement("section", { - className: "DocSearch-HitsFooter" - }, /*#__PURE__*/React.createElement(props.resultsFooterComponent, { - state: props.state - }))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/ScreenState.d.ts b/node_modules/@docsearch/react/dist/esm/ScreenState.d.ts deleted file mode 100644 index 52bdf8e..0000000 --- a/node_modules/@docsearch/react/dist/esm/ScreenState.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { AutocompleteApi, AutocompleteState, BaseItem } from '@algolia/autocomplete-core'; -import React from 'react'; -import type { DocSearchProps } from './DocSearch'; -import type { ErrorScreenTranslations } from './ErrorScreen'; -import type { NoResultsScreenTranslations } from './NoResultsScreen'; -import type { StartScreenTranslations } from './StartScreen'; -import type { StoredSearchPlugin } from './stored-searches'; -import type { InternalDocSearchHit, StoredDocSearchHit } from './types'; -export declare type ScreenStateTranslations = Partial<{ - errorScreen: ErrorScreenTranslations; - startScreen: StartScreenTranslations; - noResultsScreen: NoResultsScreenTranslations; -}>; -export interface ScreenStateProps extends AutocompleteApi { - state: AutocompleteState; - recentSearches: StoredSearchPlugin; - favoriteSearches: StoredSearchPlugin; - onItemClick: (item: InternalDocSearchHit, event: KeyboardEvent | MouseEvent) => void; - inputRef: React.MutableRefObject; - hitComponent: DocSearchProps['hitComponent']; - indexName: DocSearchProps['indexName']; - disableUserPersonalization: boolean; - resultsFooterComponent: DocSearchProps['resultsFooterComponent']; - translations: ScreenStateTranslations; - getMissingResultsUrl?: DocSearchProps['getMissingResultsUrl']; -} -export declare const ScreenState: React.MemoExoticComponent<({ translations, ...props }: ScreenStateProps) => JSX.Element>; diff --git a/node_modules/@docsearch/react/dist/esm/ScreenState.js b/node_modules/@docsearch/react/dist/esm/ScreenState.js deleted file mode 100644 index 1dbf1a4..0000000 --- a/node_modules/@docsearch/react/dist/esm/ScreenState.js +++ /dev/null @@ -1,49 +0,0 @@ -var _excluded = ["translations"]; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import React from 'react'; -import { ErrorScreen } from './ErrorScreen'; -import { NoResultsScreen } from './NoResultsScreen'; -import { ResultsScreen } from './ResultsScreen'; -import { StartScreen } from './StartScreen'; -export var ScreenState = React.memo(function (_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations, - props = _objectWithoutProperties(_ref, _excluded); - - if (props.state.status === 'error') { - return /*#__PURE__*/React.createElement(ErrorScreen, { - translations: translations === null || translations === void 0 ? void 0 : translations.errorScreen - }); - } - - var hasCollections = props.state.collections.some(function (collection) { - return collection.items.length > 0; - }); - - if (!props.state.query) { - return /*#__PURE__*/React.createElement(StartScreen, _extends({}, props, { - hasCollections: hasCollections, - translations: translations === null || translations === void 0 ? void 0 : translations.startScreen - })); - } - - if (hasCollections === false) { - return /*#__PURE__*/React.createElement(NoResultsScreen, _extends({}, props, { - translations: translations === null || translations === void 0 ? void 0 : translations.noResultsScreen - })); - } - - return /*#__PURE__*/React.createElement(ResultsScreen, props); -}, function areEqual(_prevProps, nextProps) { - // We don't update the screen when Autocomplete is loading or stalled to - // avoid UI flashes: - // - Empty screen → Results screen - // - NoResults screen → NoResults screen with another query - return nextProps.state.status === 'loading' || nextProps.state.status === 'stalled'; -}); \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/SearchBox.d.ts b/node_modules/@docsearch/react/dist/esm/SearchBox.d.ts deleted file mode 100644 index 65401a0..0000000 --- a/node_modules/@docsearch/react/dist/esm/SearchBox.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { AutocompleteApi, AutocompleteState } from '@algolia/autocomplete-core'; -import type { MutableRefObject } from 'react'; -import React from 'react'; -import type { InternalDocSearchHit } from './types'; -export declare type SearchBoxTranslations = Partial<{ - resetButtonTitle: string; - resetButtonAriaLabel: string; - cancelButtonText: string; - cancelButtonAriaLabel: string; -}>; -interface SearchBoxProps extends AutocompleteApi { - state: AutocompleteState; - autoFocus: boolean; - inputRef: MutableRefObject; - onClose: () => void; - isFromSelection: boolean; - translations?: SearchBoxTranslations; -} -export declare function SearchBox({ translations, ...props }: SearchBoxProps): JSX.Element; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/SearchBox.js b/node_modules/@docsearch/react/dist/esm/SearchBox.js deleted file mode 100644 index 9213025..0000000 --- a/node_modules/@docsearch/react/dist/esm/SearchBox.js +++ /dev/null @@ -1,72 +0,0 @@ -var _excluded = ["translations"]; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import React from 'react'; -import { MAX_QUERY_SIZE } from './constants'; -import { LoadingIcon } from './icons/LoadingIcon'; -import { ResetIcon } from './icons/ResetIcon'; -import { SearchIcon } from './icons/SearchIcon'; -export function SearchBox(_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations, - props = _objectWithoutProperties(_ref, _excluded); - - var _translations$resetBu = translations.resetButtonTitle, - resetButtonTitle = _translations$resetBu === void 0 ? 'Clear the query' : _translations$resetBu, - _translations$resetBu2 = translations.resetButtonAriaLabel, - resetButtonAriaLabel = _translations$resetBu2 === void 0 ? 'Clear the query' : _translations$resetBu2, - _translations$cancelB = translations.cancelButtonText, - cancelButtonText = _translations$cancelB === void 0 ? 'Cancel' : _translations$cancelB, - _translations$cancelB2 = translations.cancelButtonAriaLabel, - cancelButtonAriaLabel = _translations$cancelB2 === void 0 ? 'Cancel' : _translations$cancelB2; - - var _props$getFormProps = props.getFormProps({ - inputElement: props.inputRef.current - }), - onReset = _props$getFormProps.onReset; - - React.useEffect(function () { - if (props.autoFocus && props.inputRef.current) { - props.inputRef.current.focus(); - } - }, [props.autoFocus, props.inputRef]); - React.useEffect(function () { - if (props.isFromSelection && props.inputRef.current) { - props.inputRef.current.select(); - } - }, [props.isFromSelection, props.inputRef]); - return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("form", { - className: "DocSearch-Form", - onSubmit: function onSubmit(event) { - event.preventDefault(); - }, - onReset: onReset - }, /*#__PURE__*/React.createElement("label", _extends({ - className: "DocSearch-MagnifierLabel" - }, props.getLabelProps()), /*#__PURE__*/React.createElement(SearchIcon, null)), /*#__PURE__*/React.createElement("div", { - className: "DocSearch-LoadingIndicator" - }, /*#__PURE__*/React.createElement(LoadingIcon, null)), /*#__PURE__*/React.createElement("input", _extends({ - className: "DocSearch-Input", - ref: props.inputRef - }, props.getInputProps({ - inputElement: props.inputRef.current, - autoFocus: props.autoFocus, - maxLength: MAX_QUERY_SIZE - }))), /*#__PURE__*/React.createElement("button", { - type: "reset", - title: resetButtonTitle, - className: "DocSearch-Reset", - "aria-label": resetButtonAriaLabel, - hidden: !props.state.query - }, /*#__PURE__*/React.createElement(ResetIcon, null))), /*#__PURE__*/React.createElement("button", { - className: "DocSearch-Cancel", - type: "reset", - "aria-label": cancelButtonAriaLabel, - onClick: props.onClose - }, cancelButtonText)); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/Snippet.d.ts b/node_modules/@docsearch/react/dist/esm/Snippet.d.ts deleted file mode 100644 index 655e17e..0000000 --- a/node_modules/@docsearch/react/dist/esm/Snippet.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/// -import type { StoredDocSearchHit } from './types'; -interface SnippetProps { - hit: TItem; - attribute: string; - tagName?: string; - [prop: string]: unknown; -} -export declare function Snippet({ hit, attribute, tagName, ...rest }: SnippetProps): import("react").DOMElement<{ - dangerouslySetInnerHTML: { - __html: any; - }; -}, Element>; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/Snippet.js b/node_modules/@docsearch/react/dist/esm/Snippet.js deleted file mode 100644 index 3937093..0000000 --- a/node_modules/@docsearch/react/dist/esm/Snippet.js +++ /dev/null @@ -1,35 +0,0 @@ -var _excluded = ["hit", "attribute", "tagName"]; - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import { createElement } from 'react'; - -function getPropertyByPath(object, path) { - var parts = path.split('.'); - return parts.reduce(function (prev, current) { - if (prev !== null && prev !== void 0 && prev[current]) return prev[current]; - return null; - }, object); -} - -export function Snippet(_ref) { - var hit = _ref.hit, - attribute = _ref.attribute, - _ref$tagName = _ref.tagName, - tagName = _ref$tagName === void 0 ? 'span' : _ref$tagName, - rest = _objectWithoutProperties(_ref, _excluded); - - return createElement(tagName, _objectSpread(_objectSpread({}, rest), {}, { - dangerouslySetInnerHTML: { - __html: getPropertyByPath(hit, "_snippetResult.".concat(attribute, ".value")) || getPropertyByPath(hit, attribute) - } - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/StartScreen.d.ts b/node_modules/@docsearch/react/dist/esm/StartScreen.d.ts deleted file mode 100644 index 7f4f212..0000000 --- a/node_modules/@docsearch/react/dist/esm/StartScreen.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ScreenStateProps } from './ScreenState'; -import type { InternalDocSearchHit } from './types'; -export declare type StartScreenTranslations = Partial<{ - recentSearchesTitle: string; - noRecentSearchesText: string; - saveRecentSearchButtonTitle: string; - removeRecentSearchButtonTitle: string; - favoriteSearchesTitle: string; - removeFavoriteSearchButtonTitle: string; -}>; -declare type StartScreenProps = Omit, 'translations'> & { - hasCollections: boolean; - translations?: StartScreenTranslations; -}; -export declare function StartScreen({ translations, ...props }: StartScreenProps): JSX.Element | null; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/StartScreen.js b/node_modules/@docsearch/react/dist/esm/StartScreen.js deleted file mode 100644 index 595ccb5..0000000 --- a/node_modules/@docsearch/react/dist/esm/StartScreen.js +++ /dev/null @@ -1,119 +0,0 @@ -var _excluded = ["translations"]; - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -import React from 'react'; -import { RecentIcon, ResetIcon, StarIcon } from './icons'; -import { Results } from './Results'; -export function StartScreen(_ref) { - var _ref$translations = _ref.translations, - translations = _ref$translations === void 0 ? {} : _ref$translations, - props = _objectWithoutProperties(_ref, _excluded); - - var _translations$recentS = translations.recentSearchesTitle, - recentSearchesTitle = _translations$recentS === void 0 ? 'Recent' : _translations$recentS, - _translations$noRecen = translations.noRecentSearchesText, - noRecentSearchesText = _translations$noRecen === void 0 ? 'No recent searches' : _translations$noRecen, - _translations$saveRec = translations.saveRecentSearchButtonTitle, - saveRecentSearchButtonTitle = _translations$saveRec === void 0 ? 'Save this search' : _translations$saveRec, - _translations$removeR = translations.removeRecentSearchButtonTitle, - removeRecentSearchButtonTitle = _translations$removeR === void 0 ? 'Remove this search from history' : _translations$removeR, - _translations$favorit = translations.favoriteSearchesTitle, - favoriteSearchesTitle = _translations$favorit === void 0 ? 'Favorite' : _translations$favorit, - _translations$removeF = translations.removeFavoriteSearchButtonTitle, - removeFavoriteSearchButtonTitle = _translations$removeF === void 0 ? 'Remove this search from favorites' : _translations$removeF; - - if (props.state.status === 'idle' && props.hasCollections === false) { - if (props.disableUserPersonalization) { - return null; - } - - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-StartScreen" - }, /*#__PURE__*/React.createElement("p", { - className: "DocSearch-Help" - }, noRecentSearchesText)); - } - - if (props.hasCollections === false) { - return null; - } - - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Dropdown-Container" - }, /*#__PURE__*/React.createElement(Results, _extends({}, props, { - title: recentSearchesTitle, - collection: props.state.collections[0], - renderIcon: function renderIcon() { - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-icon" - }, /*#__PURE__*/React.createElement(RecentIcon, null)); - }, - renderAction: function renderAction(_ref2) { - var item = _ref2.item, - runFavoriteTransition = _ref2.runFavoriteTransition, - runDeleteTransition = _ref2.runDeleteTransition; - return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-action" - }, /*#__PURE__*/React.createElement("button", { - className: "DocSearch-Hit-action-button", - title: saveRecentSearchButtonTitle, - type: "submit", - onClick: function onClick(event) { - event.preventDefault(); - event.stopPropagation(); - runFavoriteTransition(function () { - props.favoriteSearches.add(item); - props.recentSearches.remove(item); - props.refresh(); - }); - } - }, /*#__PURE__*/React.createElement(StarIcon, null))), /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-action" - }, /*#__PURE__*/React.createElement("button", { - className: "DocSearch-Hit-action-button", - title: removeRecentSearchButtonTitle, - type: "submit", - onClick: function onClick(event) { - event.preventDefault(); - event.stopPropagation(); - runDeleteTransition(function () { - props.recentSearches.remove(item); - props.refresh(); - }); - } - }, /*#__PURE__*/React.createElement(ResetIcon, null)))); - } - })), /*#__PURE__*/React.createElement(Results, _extends({}, props, { - title: favoriteSearchesTitle, - collection: props.state.collections[1], - renderIcon: function renderIcon() { - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-icon" - }, /*#__PURE__*/React.createElement(StarIcon, null)); - }, - renderAction: function renderAction(_ref3) { - var item = _ref3.item, - runDeleteTransition = _ref3.runDeleteTransition; - return /*#__PURE__*/React.createElement("div", { - className: "DocSearch-Hit-action" - }, /*#__PURE__*/React.createElement("button", { - className: "DocSearch-Hit-action-button", - title: removeFavoriteSearchButtonTitle, - type: "submit", - onClick: function onClick(event) { - event.preventDefault(); - event.stopPropagation(); - runDeleteTransition(function () { - props.favoriteSearches.remove(item); - props.refresh(); - }); - } - }, /*#__PURE__*/React.createElement(ResetIcon, null))); - } - }))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/__tests__/api.test.js b/node_modules/@docsearch/react/dist/esm/__tests__/api.test.js deleted file mode 100644 index 797b919..0000000 --- a/node_modules/@docsearch/react/dist/esm/__tests__/api.test.js +++ /dev/null @@ -1,461 +0,0 @@ -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } - -import { render, act, fireEvent, screen } from '@testing-library/react'; -import React from 'react'; -import '@testing-library/jest-dom'; -import { DocSearch as DocSearchComponent } from '../DocSearch'; - -function DocSearch(props) { - return /*#__PURE__*/React.createElement(DocSearchComponent, _extends({ - appId: "woo", - apiKey: "foo", - indexName: "bar" - }, props)); -} // mock empty response - - -function noResultSearch(_queries, _requestOptions) { - return new Promise(function (resolve) { - resolve({ - results: [{ - hits: [], - hitsPerPage: 0, - nbHits: 0, - nbPages: 0, - page: 0, - processingTimeMS: 0, - exhaustiveNbHits: true, - params: '', - query: '' - }] - }); - }); -} - -describe('api', function () { - var container; - var docSearchSelector = '.DocSearch'; - beforeEach(function () { - container = document.createElement('div'); - document.body.appendChild(container); - }); - afterEach(function () { - document.body.removeChild(container); - container = null; - }); - it('renders with minimal parameters', function () { - render( /*#__PURE__*/React.createElement(DocSearch, null)); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - }); - describe('translations', function () { - it('overrides the default DocSearchButton text', function () { - render( /*#__PURE__*/React.createElement(DocSearch, { - translations: { - button: { - buttonText: 'Recherche', - buttonAriaLabel: 'Recherche' - } - } - })); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - expect(document.querySelector('.DocSearch-Button-Placeholder').innerHTML).toBe('Recherche'); - expect(document.querySelector('.DocSearch-Button').getAttribute('aria-label')).toBe('Recherche'); - }); - it('overrides the default DocSearchModal startScreen text', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { - return regeneratorRuntime.wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - render( /*#__PURE__*/React.createElement(DocSearch, { - translations: { - modal: { - startScreen: { - noRecentSearchesText: 'Pas de recherche récentes' - } - } - } - })); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - _context2.next = 4; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.t0 = fireEvent; - _context.next = 3; - return screen.findByText('Search'); - - case 3: - _context.t1 = _context.sent; - - _context.t0.click.call(_context.t0, _context.t1); - - case 5: - case "end": - return _context.stop(); - } - }, _callee); - }))); - - case 4: - expect(document.querySelector('.DocSearch-Modal')).toBeInTheDocument(); - expect(screen.getByText('Pas de recherche récentes')).toBeInTheDocument(); - - case 6: - case "end": - return _context2.stop(); - } - }, _callee2); - }))); - it('overrides the default DocSearchModal noResultsScreen text', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { - return regeneratorRuntime.wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - render( /*#__PURE__*/React.createElement(DocSearch, { - transformSearchClient: function transformSearchClient(searchClient) { - return _objectSpread(_objectSpread({}, searchClient), {}, { - search: noResultSearch - }); - }, - translations: { - modal: { - noResultsScreen: { - noResultsText: 'Pas de résultats pour', - reportMissingResultsText: 'Ouvrez une issue sur docsearch-configs', - reportMissingResultsLinkText: 'Lien du repo' - } - } - }, - getMissingResultsUrl: function getMissingResultsUrl() { - return 'algolia.com'; - } - })); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - _context5.next = 4; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { - return regeneratorRuntime.wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _context3.t0 = fireEvent; - _context3.next = 3; - return screen.findByText('Search'); - - case 3: - _context3.t1 = _context3.sent; - - _context3.t0.click.call(_context3.t0, _context3.t1); - - case 5: - case "end": - return _context3.stop(); - } - }, _callee3); - }))); - - case 4: - _context5.next = 6; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { - return regeneratorRuntime.wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.t0 = fireEvent; - _context4.next = 3; - return screen.findByPlaceholderText('Search docs'); - - case 3: - _context4.t1 = _context4.sent; - _context4.t2 = { - target: { - value: 'q' - } - }; - - _context4.t0.input.call(_context4.t0, _context4.t1, _context4.t2); - - case 6: - case "end": - return _context4.stop(); - } - }, _callee4); - }))); - - case 6: - expect(screen.getByText(/Pas de résultats pour/)).toBeInTheDocument(); - expect(screen.getByText(/Ouvrez une issue sur docsearch-configs/)).toBeInTheDocument(); - expect(screen.getByRole('link', { - name: 'Lien du repo' - })).toBeInTheDocument(); - - case 9: - case "end": - return _context5.stop(); - } - }, _callee5); - }))); - it('overrides the default DocSearchModal searchbox text', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { - return regeneratorRuntime.wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - render( /*#__PURE__*/React.createElement(DocSearch, { - translations: { - modal: { - searchBox: { - resetButtonTitle: 'Effacer', - resetButtonAriaLabel: 'Effacer', - cancelButtonText: 'Annuler', - cancelButtonAriaLabel: 'Annuler' - } - } - } - })); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - _context7.next = 4; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { - return regeneratorRuntime.wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - _context6.t0 = fireEvent; - _context6.next = 3; - return screen.findByText('Search'); - - case 3: - _context6.t1 = _context6.sent; - - _context6.t0.click.call(_context6.t0, _context6.t1); - - case 5: - case "end": - return _context6.stop(); - } - }, _callee6); - }))); - - case 4: - expect(document.querySelector('.DocSearch-Cancel').innerHTML).toBe('Annuler'); - expect(document.querySelector('.DocSearch-Cancel').getAttribute('aria-label')).toBe('Annuler'); - expect(document.querySelector('.DocSearch-Reset').getAttribute('title')).toBe('Effacer'); - expect(document.querySelector('.DocSearch-Reset').getAttribute('aria-label')).toBe('Effacer'); - - case 8: - case "end": - return _context7.stop(); - } - }, _callee7); - }))); - it('overrides the default DocSearchModal footer text', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { - return regeneratorRuntime.wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - render( /*#__PURE__*/React.createElement(DocSearch, { - translations: { - modal: { - footer: { - closeText: 'Pour fermer', - closeKeyAriaLabel: "Touche d'échappement", - navigateText: 'Pour naviguer', - navigateUpKeyAriaLabel: 'Flèche vers le haut', - navigateDownKeyAriaLabel: 'Flèche le bas', - searchByText: 'Recherche par', - selectText: 'Pour selectionner', - selectKeyAriaLabel: "Touche d'entrée" - } - } - } - })); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - _context9.next = 4; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { - return regeneratorRuntime.wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - _context8.t0 = fireEvent; - _context8.next = 3; - return screen.findByText('Search'); - - case 3: - _context8.t1 = _context8.sent; - - _context8.t0.click.call(_context8.t0, _context8.t1); - - case 5: - case "end": - return _context8.stop(); - } - }, _callee8); - }))); - - case 4: - expect(screen.getByText('Recherche par')).toBeInTheDocument(); - expect(screen.getByText('Pour fermer')).toBeInTheDocument(); - expect(screen.getByText('Pour naviguer')).toBeInTheDocument(); - expect(screen.getByText('Pour selectionner')).toBeInTheDocument(); - expect(document.querySelector('.DocSearch-Commands-Key > svg[aria-label="Touche d\'échappement"]')).toBeInTheDocument(); - expect(document.querySelector('.DocSearch-Commands-Key > svg[aria-label="Flèche vers le haut"]')).toBeInTheDocument(); - expect(document.querySelector('.DocSearch-Commands-Key > svg[aria-label="Flèche le bas"]')).toBeInTheDocument(); - expect(document.querySelector('.DocSearch-Commands-Key > svg[aria-label="Touche d\'entrée"]')).toBeInTheDocument(); - - case 12: - case "end": - return _context9.stop(); - } - }, _callee9); - }))); - }); - describe('getMissingResultsUrl', function () { - it('does not render the link to the repository by default', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { - return regeneratorRuntime.wrap(function _callee12$(_context12) { - while (1) switch (_context12.prev = _context12.next) { - case 0: - render( /*#__PURE__*/React.createElement(DocSearch, { - transformSearchClient: function transformSearchClient(searchClient) { - return _objectSpread(_objectSpread({}, searchClient), {}, { - search: noResultSearch - }); - } - })); - expect(document.querySelector(docSearchSelector)).toBeInTheDocument(); - _context12.next = 4; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { - return regeneratorRuntime.wrap(function _callee10$(_context10) { - while (1) switch (_context10.prev = _context10.next) { - case 0: - _context10.t0 = fireEvent; - _context10.next = 3; - return screen.findByText('Search'); - - case 3: - _context10.t1 = _context10.sent; - - _context10.t0.click.call(_context10.t0, _context10.t1); - - case 5: - case "end": - return _context10.stop(); - } - }, _callee10); - }))); - - case 4: - _context12.next = 6; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { - return regeneratorRuntime.wrap(function _callee11$(_context11) { - while (1) switch (_context11.prev = _context11.next) { - case 0: - _context11.t0 = fireEvent; - _context11.next = 3; - return screen.findByPlaceholderText('Search docs'); - - case 3: - _context11.t1 = _context11.sent; - _context11.t2 = { - target: { - value: 'q' - } - }; - - _context11.t0.input.call(_context11.t0, _context11.t1, _context11.t2); - - case 6: - case "end": - return _context11.stop(); - } - }, _callee11); - }))); - - case 6: - expect(screen.getByText(/No results for/)).toBeInTheDocument(); - expect(document.querySelector('.DocSearch-Help a')).not.toBeInTheDocument(); - - case 8: - case "end": - return _context12.stop(); - } - }, _callee12); - }))); - it('render the link to the repository', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { - var link; - return regeneratorRuntime.wrap(function _callee15$(_context15) { - while (1) switch (_context15.prev = _context15.next) { - case 0: - render( /*#__PURE__*/React.createElement(DocSearch, { - transformSearchClient: function transformSearchClient(searchClient) { - return _objectSpread(_objectSpread({}, searchClient), {}, { - search: noResultSearch - }); - }, - getMissingResultsUrl: function getMissingResultsUrl(_ref14) { - var query = _ref14.query; - return "https://github.com/algolia/docsearch/issues/new?title=".concat(query); - } - })); - _context15.next = 3; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { - return regeneratorRuntime.wrap(function _callee13$(_context13) { - while (1) switch (_context13.prev = _context13.next) { - case 0: - _context13.t0 = fireEvent; - _context13.next = 3; - return screen.findByText('Search'); - - case 3: - _context13.t1 = _context13.sent; - - _context13.t0.click.call(_context13.t0, _context13.t1); - - case 5: - case "end": - return _context13.stop(); - } - }, _callee13); - }))); - - case 3: - _context15.next = 5; - return act( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { - return regeneratorRuntime.wrap(function _callee14$(_context14) { - while (1) switch (_context14.prev = _context14.next) { - case 0: - _context14.t0 = fireEvent; - _context14.next = 3; - return screen.findByPlaceholderText('Search docs'); - - case 3: - _context14.t1 = _context14.sent; - _context14.t2 = { - target: { - value: 'q' - } - }; - - _context14.t0.input.call(_context14.t0, _context14.t1, _context14.t2); - - case 6: - case "end": - return _context14.stop(); - } - }, _callee14); - }))); - - case 5: - expect(screen.getByText(/No results for/)).toBeInTheDocument(); - link = document.querySelector('.DocSearch-Help a'); - expect(link).toBeInTheDocument(); - expect(link.getAttribute('href')).toBe('https://github.com/algolia/docsearch/issues/new?title=q'); - - case 9: - case "end": - return _context15.stop(); - } - }, _callee15); - }))); - }); -}); \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/constants.d.ts b/node_modules/@docsearch/react/dist/esm/constants.d.ts deleted file mode 100644 index b44c014..0000000 --- a/node_modules/@docsearch/react/dist/esm/constants.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const MAX_QUERY_SIZE = 64; diff --git a/node_modules/@docsearch/react/dist/esm/constants.js b/node_modules/@docsearch/react/dist/esm/constants.js deleted file mode 100644 index 9325780..0000000 --- a/node_modules/@docsearch/react/dist/esm/constants.js +++ /dev/null @@ -1 +0,0 @@ -export var MAX_QUERY_SIZE = 64; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.d.ts deleted file mode 100644 index be8fcd0..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function ControlKeyIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.js b/node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.js deleted file mode 100644 index ee3513d..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/ControlKeyIcon.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -export function ControlKeyIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "15", - height: "15", - className: "DocSearch-Control-Key-Icon" - }, /*#__PURE__*/React.createElement("path", { - d: "M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953", - strokeWidth: "1.2", - stroke: "currentColor", - fill: "none", - strokeLinecap: "square" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.d.ts deleted file mode 100644 index 4fd3310..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function ErrorIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.js b/node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.js deleted file mode 100644 index dee377d..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/ErrorIcon.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -export function ErrorIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "40", - height: "40", - viewBox: "0 0 20 20", - fill: "none", - fillRule: "evenodd", - stroke: "currentColor", - strokeLinecap: "round", - strokeLinejoin: "round" - }, /*#__PURE__*/React.createElement("path", { - d: "M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.d.ts deleted file mode 100644 index bef40a3..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function GoToExternal(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.js b/node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.js deleted file mode 100644 index d15deb7..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/GoToExternalIcon.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -export function GoToExternal() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20" - }, /*#__PURE__*/React.createElement("path", { - d: "M5 6v9h9v-3a1 1 0 112 0v4l-1 1H4l-1-1V5l1-1h4a1 1 0 110 2H5zm5 5a1 1 0 11-1-1l5-6h-3a1 1 0 110-2h6a1 1 0 011 1v6a1 1 0 11-2 0V6l-6 5z", - fill: "currentColor", - fillRule: "nonzero" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.d.ts deleted file mode 100644 index 9ed8ffb..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function LoadingIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.js b/node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.js deleted file mode 100644 index 6aec628..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/LoadingIcon.js +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -export function LoadingIcon() { - return /*#__PURE__*/React.createElement("svg", { - viewBox: "0 0 38 38", - stroke: "currentColor", - strokeOpacity: ".5" - }, /*#__PURE__*/React.createElement("g", { - fill: "none", - fillRule: "evenodd" - }, /*#__PURE__*/React.createElement("g", { - transform: "translate(1 1)", - strokeWidth: "2" - }, /*#__PURE__*/React.createElement("circle", { - strokeOpacity: ".3", - cx: "18", - cy: "18", - r: "18" - }), /*#__PURE__*/React.createElement("path", { - d: "M36 18c0-9.94-8.06-18-18-18" - }, /*#__PURE__*/React.createElement("animateTransform", { - attributeName: "transform", - type: "rotate", - from: "0 18 18", - to: "360 18 18", - dur: "1s", - repeatCount: "indefinite" - }))))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.d.ts deleted file mode 100644 index 460ef16..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function NoResultsIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.js b/node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.js deleted file mode 100644 index e5cf412..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/NoResultsIcon.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -export function NoResultsIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "40", - height: "40", - viewBox: "0 0 20 20", - fill: "none", - fillRule: "evenodd", - stroke: "currentColor", - strokeLinecap: "round", - strokeLinejoin: "round" - }, /*#__PURE__*/React.createElement("path", { - d: "M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/RecentIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/RecentIcon.d.ts deleted file mode 100644 index c10a698..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/RecentIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function RecentIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/RecentIcon.js b/node_modules/@docsearch/react/dist/esm/icons/RecentIcon.js deleted file mode 100644 index 6670ff6..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/RecentIcon.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -export function RecentIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("g", { - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinecap: "round", - strokeLinejoin: "round" - }, /*#__PURE__*/React.createElement("path", { - d: "M3.18 6.6a8.23 8.23 0 1112.93 9.94h0a8.23 8.23 0 01-11.63 0" - }), /*#__PURE__*/React.createElement("path", { - d: "M6.44 7.25H2.55V3.36M10.45 6v5.6M10.45 11.6L13 13" - }))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/ResetIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/ResetIcon.d.ts deleted file mode 100644 index 1c6e453..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/ResetIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function ResetIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/ResetIcon.js b/node_modules/@docsearch/react/dist/esm/icons/ResetIcon.js deleted file mode 100644 index be14662..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/ResetIcon.js +++ /dev/null @@ -1,15 +0,0 @@ -import React from 'react'; -export function ResetIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("path", { - d: "M10 10l5.09-5.09L10 10l5.09 5.09L10 10zm0 0L4.91 4.91 10 10l-5.09 5.09L10 10z", - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinecap: "round", - strokeLinejoin: "round" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/SearchIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/SearchIcon.d.ts deleted file mode 100644 index 87216b7..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/SearchIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function SearchIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/SearchIcon.js b/node_modules/@docsearch/react/dist/esm/icons/SearchIcon.js deleted file mode 100644 index ff57b51..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/SearchIcon.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -export function SearchIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - className: "DocSearch-Search-Icon", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("path", { - d: "M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z", - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinecap: "round", - strokeLinejoin: "round" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/SelectIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/SelectIcon.d.ts deleted file mode 100644 index 3cf6dc4..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/SelectIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function SelectIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/SelectIcon.js b/node_modules/@docsearch/react/dist/esm/icons/SelectIcon.js deleted file mode 100644 index 83e3ba2..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/SelectIcon.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -export function SelectIcon() { - return /*#__PURE__*/React.createElement("svg", { - className: "DocSearch-Hit-Select-Icon", - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("g", { - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinecap: "round", - strokeLinejoin: "round" - }, /*#__PURE__*/React.createElement("path", { - d: "M18 3v4c0 2-2 4-4 4H2" - }), /*#__PURE__*/React.createElement("path", { - d: "M8 17l-6-6 6-6" - }))); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/SourceIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/SourceIcon.d.ts deleted file mode 100644 index 3b645b1..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/SourceIcon.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare function SourceIcon(props: { - type: string; -}): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/SourceIcon.js b/node_modules/@docsearch/react/dist/esm/icons/SourceIcon.js deleted file mode 100644 index 2249468..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/SourceIcon.js +++ /dev/null @@ -1,57 +0,0 @@ -import React from 'react'; - -var LvlIcon = function LvlIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("path", { - d: "M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4", - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinejoin: "round" - })); -}; - -export function SourceIcon(props) { - switch (props.type) { - case 'lvl1': - return /*#__PURE__*/React.createElement(LvlIcon, null); - - case 'content': - return /*#__PURE__*/React.createElement(ContentIcon, null); - - default: - return /*#__PURE__*/React.createElement(AnchorIcon, null); - } -} - -function AnchorIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("path", { - d: "M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z", - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinecap: "round", - strokeLinejoin: "round" - })); -} - -function ContentIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("path", { - d: "M17 5H3h14zm0 5H3h14zm0 5H3h14z", - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinejoin: "round" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/StarIcon.d.ts b/node_modules/@docsearch/react/dist/esm/icons/StarIcon.d.ts deleted file mode 100644 index 2916ccc..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/StarIcon.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function StarIcon(): JSX.Element; diff --git a/node_modules/@docsearch/react/dist/esm/icons/StarIcon.js b/node_modules/@docsearch/react/dist/esm/icons/StarIcon.js deleted file mode 100644 index 62aacc2..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/StarIcon.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react'; -export function StarIcon() { - return /*#__PURE__*/React.createElement("svg", { - width: "20", - height: "20", - viewBox: "0 0 20 20" - }, /*#__PURE__*/React.createElement("path", { - d: "M10 14.2L5 17l1-5.6-4-4 5.5-.7 2.5-5 2.5 5 5.6.8-4 4 .9 5.5z", - stroke: "currentColor", - fill: "none", - fillRule: "evenodd", - strokeLinejoin: "round" - })); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/icons/index.d.ts b/node_modules/@docsearch/react/dist/esm/icons/index.d.ts deleted file mode 100644 index b3c85dc..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from './GoToExternalIcon'; -export * from './LoadingIcon'; -export * from './RecentIcon'; -export * from './ResetIcon'; -export * from './SearchIcon'; -export * from './SelectIcon'; -export * from './SourceIcon'; -export * from './StarIcon'; -export * from './ErrorIcon'; -export * from './NoResultsIcon'; diff --git a/node_modules/@docsearch/react/dist/esm/icons/index.js b/node_modules/@docsearch/react/dist/esm/icons/index.js deleted file mode 100644 index 969d380..0000000 --- a/node_modules/@docsearch/react/dist/esm/icons/index.js +++ /dev/null @@ -1,10 +0,0 @@ -export * from './GoToExternalIcon'; -export * from './LoadingIcon'; -export * from './RecentIcon'; -export * from './ResetIcon'; -export * from './SearchIcon'; -export * from './SelectIcon'; -export * from './SourceIcon'; -export * from './StarIcon'; -export * from './ErrorIcon'; -export * from './NoResultsIcon'; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/index.d.ts b/node_modules/@docsearch/react/dist/esm/index.d.ts index d4e9396..1e027ef 100644 --- a/node_modules/@docsearch/react/dist/esm/index.d.ts +++ b/node_modules/@docsearch/react/dist/esm/index.d.ts @@ -1,5 +1,208 @@ -export * from './DocSearch'; -export * from './DocSearchButton'; -export * from './DocSearchModal'; -export * from './useDocSearchKeyboardEvents'; -export * from './version'; +import { BaseItem, AutocompleteState, AutocompleteContext, AutocompleteInsightsApi, AutocompleteOptions } from '@algolia/autocomplete-core'; +import { LiteClient, SearchParamsObject } from 'algoliasearch/lite'; +import React from 'react'; + +type ContentType = 'content' | 'lvl0' | 'lvl1' | 'lvl2' | 'lvl3' | 'lvl4' | 'lvl5' | 'lvl6'; +interface DocSearchHitAttributeHighlightResult { + value: string; + matchLevel: 'full' | 'none' | 'partial'; + matchedWords: string[]; + fullyHighlighted?: boolean; +} +interface DocSearchHitHighlightResultHierarchy { + lvl0: DocSearchHitAttributeHighlightResult; + lvl1: DocSearchHitAttributeHighlightResult; + lvl2: DocSearchHitAttributeHighlightResult; + lvl3: DocSearchHitAttributeHighlightResult; + lvl4: DocSearchHitAttributeHighlightResult; + lvl5: DocSearchHitAttributeHighlightResult; + lvl6: DocSearchHitAttributeHighlightResult; +} +interface DocSearchHitHighlightResult { + content: DocSearchHitAttributeHighlightResult; + hierarchy: DocSearchHitHighlightResultHierarchy; + hierarchy_camel: DocSearchHitHighlightResultHierarchy[]; +} +interface DocSearchHitAttributeSnippetResult { + value: string; + matchLevel: 'full' | 'none' | 'partial'; +} +interface DocSearchHitSnippetResult { + content: DocSearchHitAttributeSnippetResult; + hierarchy: DocSearchHitHighlightResultHierarchy; + hierarchy_camel: DocSearchHitHighlightResultHierarchy[]; +} +declare type DocSearchHit = { + objectID: string; + content: string | null; + url: string; + url_without_anchor: string; + type: ContentType; + anchor: string | null; + hierarchy: { + lvl0: string; + lvl1: string; + lvl2: string | null; + lvl3: string | null; + lvl4: string | null; + lvl5: string | null; + lvl6: string | null; + }; + _highlightResult: DocSearchHitHighlightResult; + _snippetResult: DocSearchHitSnippetResult; + _rankingInfo?: { + promoted: boolean; + nbTypos: number; + firstMatchedWord: number; + proximityDistance?: number; + geoDistance: number; + geoPrecision?: number; + nbExactWords: number; + words: number; + filters: number; + userScore: number; + matchedGeoLocation?: { + lat: number; + lng: number; + distance: number; + }; + }; + _distinctSeqID?: number; + __autocomplete_indexName?: string; + __autocomplete_queryID?: string; + __autocomplete_algoliaCredentials?: { + appId: string; + apiKey: string; + }; + __autocomplete_id?: number; +}; + +interface DocSearchContext extends AutocompleteContext { + algoliaInsightsPlugin?: { + insights: AutocompleteInsightsApi; + }; +} +interface DocSearchState extends AutocompleteState { + context: DocSearchContext; +} + +type InternalDocSearchHit = DocSearchHit & { + __docsearch_parent: InternalDocSearchHit | null; +}; + +type StoredDocSearchHit = Omit; + +type DocSearchTranslations = Partial<{ + button: ButtonTranslations; + modal: ModalTranslations; +}>; +type DocSearchTransformClient = { + search: LiteClient['search']; + addAlgoliaAgent: LiteClient['addAlgoliaAgent']; + transporter: Pick; +}; +interface DocSearchProps { + appId: string; + apiKey: string; + indexName: string; + placeholder?: string; + searchParameters?: SearchParamsObject; + maxResultsPerGroup?: number; + transformItems?: (items: DocSearchHit[]) => DocSearchHit[]; + hitComponent?: (props: { + hit: InternalDocSearchHit | StoredDocSearchHit; + children: React.ReactNode; + }) => JSX.Element; + resultsFooterComponent?: (props: { + state: AutocompleteState; + }) => JSX.Element | null; + transformSearchClient?: (searchClient: DocSearchTransformClient) => DocSearchTransformClient; + disableUserPersonalization?: boolean; + initialQuery?: string; + navigator?: AutocompleteOptions['navigator']; + translations?: DocSearchTranslations; + getMissingResultsUrl?: ({ query }: { + query: string; + }) => string; + insights?: AutocompleteOptions['insights']; +} +declare function DocSearch(props: DocSearchProps): JSX.Element; + +type ButtonTranslations = Partial<{ + buttonText: string; + buttonAriaLabel: string; +}>; +type DocSearchButtonProps = React.ComponentProps<'button'> & { + translations?: ButtonTranslations; +}; +declare const DocSearchButton: React.ForwardRefExoticComponent & React.RefAttributes>; + +type FooterTranslations = Partial<{ + selectText: string; + selectKeyAriaLabel: string; + navigateText: string; + navigateUpKeyAriaLabel: string; + navigateDownKeyAriaLabel: string; + closeText: string; + closeKeyAriaLabel: string; + searchByText: string; +}>; + +type ErrorScreenTranslations = Partial<{ + titleText: string; + helpText: string; +}>; + +type NoResultsScreenTranslations = Partial<{ + noResultsText: string; + suggestedQueryText: string; + reportMissingResultsText: string; + reportMissingResultsLinkText: string; +}>; + +type StartScreenTranslations = Partial<{ + recentSearchesTitle: string; + noRecentSearchesText: string; + saveRecentSearchButtonTitle: string; + removeRecentSearchButtonTitle: string; + favoriteSearchesTitle: string; + removeFavoriteSearchButtonTitle: string; +}>; + +type ScreenStateTranslations = Partial<{ + errorScreen: ErrorScreenTranslations; + startScreen: StartScreenTranslations; + noResultsScreen: NoResultsScreenTranslations; +}>; + +type SearchBoxTranslations = Partial<{ + resetButtonTitle: string; + resetButtonAriaLabel: string; + cancelButtonText: string; + cancelButtonAriaLabel: string; + searchInputLabel: string; +}>; + +type ModalTranslations = Partial<{ + searchBox: SearchBoxTranslations; + footer: FooterTranslations; +}> & ScreenStateTranslations; +type DocSearchModalProps = DocSearchProps & { + initialScrollY: number; + onClose?: () => void; + translations?: ModalTranslations; +}; +declare function DocSearchModal({ appId, apiKey, indexName, placeholder, searchParameters, maxResultsPerGroup, onClose, transformItems, hitComponent, resultsFooterComponent, navigator, initialScrollY, transformSearchClient, disableUserPersonalization, initialQuery: initialQueryFromProp, translations, getMissingResultsUrl, insights, }: DocSearchModalProps): JSX.Element; + +interface UseDocSearchKeyboardEventsProps { + isOpen: boolean; + onOpen: () => void; + onClose: () => void; + onInput?: (event: KeyboardEvent) => void; + searchButtonRef?: React.RefObject; +} +declare function useDocSearchKeyboardEvents({ isOpen, onOpen, onClose, onInput, searchButtonRef, }: UseDocSearchKeyboardEventsProps): void; + +declare const version = "3.8.2"; + +export { type ButtonTranslations, DocSearch, DocSearchButton, type DocSearchButtonProps, type DocSearchHit, DocSearchModal, type DocSearchModalProps, type DocSearchProps, type DocSearchState, type DocSearchTransformClient, type DocSearchTranslations, type InternalDocSearchHit, type ModalTranslations, type StoredDocSearchHit, type UseDocSearchKeyboardEventsProps, useDocSearchKeyboardEvents, version }; diff --git a/node_modules/@docsearch/react/dist/esm/index.js b/node_modules/@docsearch/react/dist/esm/index.js index 9791a57..533d9c2 100644 --- a/node_modules/@docsearch/react/dist/esm/index.js +++ b/node_modules/@docsearch/react/dist/esm/index.js @@ -1,5 +1 @@ -export * from './DocSearch'; -export * from './DocSearchButton'; -export * from './DocSearchModal'; -export * from './useDocSearchKeyboardEvents'; -export * from './version'; \ No newline at end of file +import e,{useState as t,useEffect as r,createElement as n}from"react";import{createPortal as o}from"react-dom";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}function S(e,t){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},S(e,t)}function O(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}function j(e){var t="function"==typeof Map?new Map:void 0;return j=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(d())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&S(o,r.prototype),o}(e,arguments,p(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),S(r,e)},j(e)}function P(){return e.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},e.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function I(){return e.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},e.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var D=["translations"],k="Ctrl";var A=e.forwardRef((function(n,o){var i=n.translations,a=void 0===i?{}:i,c=g(n,D),u=a.buttonText,l=void 0===u?"Search":u,s=a.buttonAriaLabel,f=void 0===s?"Search":s,p=O(t(null),2),v=p[0],d=p[1];r((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?d("⌘"):d(k))}),[]);var h=O(v===k?[k,"Ctrl",e.createElement(P,null)]:["Meta","Command",v],3),y=h[0],b=h[1],S=h[2];return e.createElement("button",m({type:"button",className:"DocSearch DocSearch-Button","aria-label":"".concat(f," (").concat(b,"+K)")},c,{ref:o}),e.createElement("span",{className:"DocSearch-Button-Container"},e.createElement(I,null),e.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),e.createElement("span",{className:"DocSearch-Button-Keys"},null!==v&&e.createElement(e.Fragment,null,e.createElement(_,{reactsToKey:y},S),e.createElement(_,{reactsToKey:"k"},"K"))))}));function _(n){var o=n.reactsToKey,i=n.children,a=O(t(!1),2),c=a[0],u=a[1];return r((function(){if(o)return window.addEventListener("keydown",e),window.addEventListener("keyup",t),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",t)};function e(e){e.key===o&&u(!0)}function t(e){e.key!==o&&"Meta"!==e.key||u(!1)}}),[o]),e.createElement("kbd",{className:c?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},i)}function x(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function W(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Z(e){for(var t=1;t=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(z(r),[{headers:a}]))}else e.apply(void 0,[t].concat(z(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDsAfterSearch",Y(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDs",Y(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDsAfterSearch",Y(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDs",Y(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=Q(t,K);return[].concat(z(e),z(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function X(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function ee(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function re(e){return function(e){if(Array.isArray(e))return ne(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ne(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ne(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&le({onItemsChange:o,items:r,insights:l,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive,o=!1;function s(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:ie(ie({},c?{clickAnalytics:!0}:{}),e?{userToken:me(e)}:{}),insights:l}})}u("addAlgoliaAgent","insights-plugin"),s(),u("onUserTokenChange",(function(e){o||s(e)})),u("getUserToken",null,(function(e,t){o||s(t)})),u("onAuthenticatedUserTokenChange",(function(e){e?(o=!0,s(e)):(o=!1,u("getUserToken",null,(function(e,t){return s(t)})))})),u("getAuthenticatedUserToken",null,(function(e,t){t&&(o=!0,s(t))})),r((function(e){var t=e.item,r=e.state,n=e.event,o=e.source;ee(t)&&i({state:r,event:n,insights:l,item:t,insightsEvents:[ie({eventName:"Item Selected"},H({item:t,items:o.getItems().filter(ee)}))]})})),n((function(e){var t=e.item,r=e.source,n=e.state,o=e.event;ee(t)&&a({state:n,event:o,insights:l,item:t,insightsEvents:[ie({eventName:"Item Active"},H({item:t,items:r.getItems().filter(ee)}))]})}))},onStateChange:function(e){var t=e.state;f({state:t})},__autocomplete_pluginOptions:e}}function fe(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(re(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],re(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function me(e){return"number"==typeof e?e.toString():e}function pe(e,t){var r=t;return{then:function(t,n){return pe(e.then(de(t,r,e),de(n,r,e)),r)},catch:function(t){return pe(e.catch(de(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),pe(e.finally(de(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ve(e){return pe(e,{isCanceled:!1,onCancelList:[]})}function de(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function he(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function ye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ge(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(N++),plugins:o,initialState:qe({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Te(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:q,onResolve:q};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=ge(ge({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return C(e)})).then((function(e){return e.map((function(e){return qe(qe({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:qe({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}function Be(e){return Be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Be(e)}function Fe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ue(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var at,ct,ut,lt=null,st=(at=-1,ct=-1,ut=void 0,function(e){var t=++at;return Promise.resolve(e).then((function(e){return ut&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function gt(e){return gt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gt(e)}var bt=["props","refresh","store"],St=["inputElement","formElement","panelElement"],Ot=["inputElement"],wt=["inputElement","maxLength"],Et=["source"],jt=["item","source"];function Pt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function It(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function At(e){var t=e.props,r=e.refresh,n=e.store,o=kt(e,bt);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return It({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},kt(e,St))},getRootProps:function(e){return It({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-controls":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return we(t.id,"list",r)})).join(" "):void 0,"aria-labelledby":we(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,It({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(It({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(It({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},kt(e,Ot))},getLabelProps:function(e){return It({htmlFor:we(t.id,"input"),id:we(t.id,"label")},e)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(n.getState().query))&&ft(It({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var c=e||{};c.inputElement;var u=c.maxLength,l=void 0===u?512:u,s=kt(c,wt),f=Oe(n.getState()),m=function(e){return Boolean(e&&e.match(Ee))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),p=t.enterKeyHint||(null!=f&&f.itemUrl&&!m?"go":"search");return It({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?we(t.id,"item-".concat(n.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return we(t.id,"list",r)})).join(" "):void 0,"aria-labelledby":we(t.id,"label"),value:n.getState().completion||n.getState().query,id:we(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:p,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&je(e).isComposing?o.setQuery(i):ft(It({event:e,props:t,query:i.slice(0,l),refresh:r,store:n},o))},onCompositionEnd:function(e){ft(It({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:r,store:n},o))},onKeyDown:function(e){je(e).isComposing||function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=yt(e,pt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=Oe(o.getState()),t=r.environment.document.getElementById(we(r.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},c=function(){var e=Oe(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,u=e.source;u.onActive(dt({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?ft(dt({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var u=Oe(o.getState()),l=u.item,s=u.itemInputValue,f=u.itemUrl,m=u.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:l,state:o.getState()});ft(dt({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(dt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(It({event:e,props:t,refresh:r,store:n},o))},onFocus:a,onBlur:q,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||a(r)}},s)},getPanelProps:function(e){return It({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.source,o=kt(r,Et);return It({role:"listbox","aria-labelledby":we(t.id,"label"),id:we(t.id,"list",n)},o)},getItemProps:function(e){var i=e.item,a=e.source,c=kt(e,jt);return It({id:we(t.id,"item-".concat(i.__autocomplete_id),a),role:"option","aria-selected":n.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",i.__autocomplete_id);var t=Oe(n.getState());if(null!==n.getState().activeItemId&&t){var a=t.item,c=t.itemInputValue,u=t.itemUrl,l=t.source;l.onActive(It({event:e,item:a,itemInputValue:c,itemUrl:u,refresh:r,source:l,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var c=a.getItemInputValue({item:i,state:n.getState()}),u=a.getItemUrl({item:i,state:n.getState()});(u?Promise.resolve():ft(It({event:e,nextState:{isOpen:!1},props:t,query:c,refresh:r,store:n},o))).then((function(){a.onSelect(It({event:e,item:i,itemInputValue:c,itemUrl:u,refresh:r,source:a,state:n.getState()},o))}))}},c)}}}function _t(e){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_t(e)}function xt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ct(e){for(var t=1;t0&&e.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},e.createElement("p",{className:"DocSearch-Help"},u,":"),e.createElement("ul",null,p.slice(0,3).reduce((function(t,r){return[].concat(w(t),[e.createElement("li",{key:r},e.createElement("button",{className:"DocSearch-Prefill",key:r,type:"button",onClick:function(){o.setQuery(r.toLowerCase()+" "),o.refresh(),o.inputRef.current.focus()}},r))])}),[]))),o.getMissingResultsUrl&&e.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),e.createElement("a",{href:o.getMissingResultsUrl({query:o.state.query}),target:"_blank",rel:"noopener noreferrer"},m)))}var sr=["hit","attribute","tagName"];function fr(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function mr(e){var t=e.hit,r=e.attribute,o=e.tagName,i=void 0===o?"span":o,a=g(e,sr);return n(i,y(y({},a),{},{dangerouslySetInnerHTML:{__html:fr(t,"_snippetResult.".concat(r,".value"))||fr(t,r)}}))}function pr(t){return t.collection&&0!==t.collection.items.length?e.createElement("section",{className:"DocSearch-Hits"},e.createElement("div",{className:"DocSearch-Hit-source"},t.title),e.createElement("ul",t.getListProps(),t.collection.items.map((function(r,n){return e.createElement(vr,m({key:[t.title,r.objectID].join(":"),item:r,index:n},t))})))):null}function vr(t){var r=t.item,n=t.index,o=t.renderIcon,i=t.renderAction,a=t.getItemProps,c=t.onItemClick,u=t.collection,l=t.hitComponent,s=O(e.useState(!1),2),f=s[0],p=s[1],v=O(e.useState(!1),2),d=v[0],h=v[1],y=e.useRef(null),g=l;return e.createElement("li",m({className:["DocSearch-Hit",r.__docsearch_parent&&"DocSearch-Hit--Child",f&&"DocSearch-Hit--deleting",d&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){y.current&&y.current()}},a({item:r,source:u.source,onClick:function(e){c(r,e)}})),e.createElement(g,{hit:r},e.createElement("div",{className:"DocSearch-Hit-Container"},o({item:r,index:n}),r.hierarchy[r.type]&&"lvl1"===r.type&&e.createElement("div",{className:"DocSearch-Hit-content-wrapper"},e.createElement(mr,{className:"DocSearch-Hit-title",hit:r,attribute:"hierarchy.lvl1"}),r.content&&e.createElement(mr,{className:"DocSearch-Hit-path",hit:r,attribute:"content"})),r.hierarchy[r.type]&&("lvl2"===r.type||"lvl3"===r.type||"lvl4"===r.type||"lvl5"===r.type||"lvl6"===r.type)&&e.createElement("div",{className:"DocSearch-Hit-content-wrapper"},e.createElement(mr,{className:"DocSearch-Hit-title",hit:r,attribute:"hierarchy.".concat(r.type)}),e.createElement(mr,{className:"DocSearch-Hit-path",hit:r,attribute:"hierarchy.lvl1"})),"content"===r.type&&e.createElement("div",{className:"DocSearch-Hit-content-wrapper"},e.createElement(mr,{className:"DocSearch-Hit-title",hit:r,attribute:"content"}),e.createElement(mr,{className:"DocSearch-Hit-path",hit:r,attribute:"hierarchy.lvl1"})),i({item:r,runDeleteTransition:function(e){p(!0),y.current=e},runFavoriteTransition:function(e){h(!0),y.current=e}}))))}function dr(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}function hr(e){return e}function yr(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function gr(){}var br=/(|<\/mark>)/g,Sr=RegExp(br.source);function Or(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0;return o?o.value&&Sr.test(o.value)?o.value.replace(br,""):o.value:e.hierarchy.lvl0}function wr(t){return e.createElement("div",{className:"DocSearch-Dropdown-Container"},t.state.collections.map((function(r){if(0===r.items.length)return null;var n=Or(r.items[0]);return e.createElement(pr,m({},t,{key:r.source.sourceId,title:n,collection:r,renderIcon:function(t){var n,o=t.item,i=t.index;return e.createElement(e.Fragment,null,o.__docsearch_parent&&e.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},e.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},o.__docsearch_parent!==(null===(n=r.items[i+1])||void 0===n?void 0:n.__docsearch_parent)?e.createElement("path",{d:"M8 6v21M20 27H8.3"}):e.createElement("path",{d:"M8 6v42M20 27H8.3"}))),e.createElement("div",{className:"DocSearch-Hit-icon"},e.createElement(tr,{type:o.type})))},renderAction:function(){return e.createElement("div",{className:"DocSearch-Hit-action"},e.createElement(Xt,null))}}))})),t.resultsFooterComponent&&e.createElement("section",{className:"DocSearch-HitsFooter"},e.createElement(t.resultsFooterComponent,{state:t.state})))}var Er=["translations"];function jr(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Er),i=n.recentSearchesTitle,a=void 0===i?"Recent":i,c=n.noRecentSearchesText,u=void 0===c?"No recent searches":c,l=n.saveRecentSearchButtonTitle,s=void 0===l?"Save this search":l,f=n.removeRecentSearchButtonTitle,p=void 0===f?"Remove this search from history":f,v=n.favoriteSearchesTitle,d=void 0===v?"Favorite":v,h=n.removeFavoriteSearchButtonTitle,y=void 0===h?"Remove this search from favorites":h;return"idle"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:e.createElement("div",{className:"DocSearch-StartScreen"},e.createElement("p",{className:"DocSearch-Help"},u)):!1===o.hasCollections?null:e.createElement("div",{className:"DocSearch-Dropdown-Container"},e.createElement(pr,m({},o,{title:a,collection:o.state.collections[0],renderIcon:function(){return e.createElement("div",{className:"DocSearch-Hit-icon"},e.createElement(Yt,null))},renderAction:function(t){var r=t.item,n=t.runFavoriteTransition,i=t.runDeleteTransition;return e.createElement(e.Fragment,null,e.createElement("div",{className:"DocSearch-Hit-action"},e.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.add(r),o.recentSearches.remove(r),o.refresh()}))}},e.createElement(or,null))),e.createElement("div",{className:"DocSearch-Hit-action"},e.createElement("button",{className:"DocSearch-Hit-action-button",title:p,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),i((function(){o.recentSearches.remove(r),o.refresh()}))}},e.createElement($t,null))))}})),e.createElement(pr,m({},o,{title:d,collection:o.state.collections[1],renderIcon:function(){return e.createElement("div",{className:"DocSearch-Hit-icon"},e.createElement(or,null))},renderAction:function(t){var r=t.item,n=t.runDeleteTransition;return e.createElement("div",{className:"DocSearch-Hit-action"},e.createElement("button",{className:"DocSearch-Hit-action-button",title:y,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.remove(r),o.refresh()}))}},e.createElement($t,null)))}})))}var Pr=["translations"],Ir=e.memo((function(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Pr);if("error"===o.state.status)return e.createElement(cr,{translations:null==n?void 0:n.errorScreen});var i=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===i?e.createElement(lr,m({},o,{translations:null==n?void 0:n.noResultsScreen})):e.createElement(wr,o):e.createElement(jr,m({},o,{hasCollections:i,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),Dr=["translations"];function kr(t){var r=t.translations,n=void 0===r?{}:r,o=g(t,Dr),i=n.resetButtonTitle,a=void 0===i?"Clear the query":i,c=n.resetButtonAriaLabel,u=void 0===c?"Clear the query":c,l=n.cancelButtonText,s=void 0===l?"Cancel":l,f=n.cancelButtonAriaLabel,p=void 0===f?"Cancel":f,v=n.searchInputLabel,d=void 0===v?"Search":v,h=o.getFormProps({inputElement:o.inputRef.current}).onReset;return e.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),e.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),e.createElement(e.Fragment,null,e.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:h},e.createElement("label",m({className:"DocSearch-MagnifierLabel"},o.getLabelProps()),e.createElement(I,null),e.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},d)),e.createElement("div",{className:"DocSearch-LoadingIndicator"},e.createElement(Gt,null)),e.createElement("input",m({className:"DocSearch-Input",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),e.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":u,hidden:!o.state.query},e.createElement($t,null))),e.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":p,onClick:o.onClose},s))}var Ar=["_highlightResult","_snippetResult"];function _r(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function xr(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=_r(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var r=g(t,Ar),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function Cr(e){var t,r="algolia-client-js-".concat(e.key);function n(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(n().getItem(r)||"{}")}function i(e){n().setItem(r,JSON.stringify(e))}return{get:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r,n,a;return r=e.timeToLive?1e3*e.timeToLive:null,n=o(),i(a=Object.fromEntries(Object.entries(n).filter((function(e){return void 0!==O(e,2)[1].timestamp})))),r&&i(Object.fromEntries(Object.entries(a).filter((function(e){var t=O(e,2)[1],n=(new Date).getTime();return!(t.timestamp+r2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return O(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return Nr({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return Nr({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return Nr({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return Nr({caches:t}).clear()}))}}}function Tr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=n();return a.then((function(e){return o.miss(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Lr(e){var t=e.algoliaAgents,r=e.client,n=e.version,o=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}(n).add({segment:r,version:n});return t.forEach((function(e){return o.add(e)})),o}var Rr=12e4;function qr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",r=Date.now();return y(y({},e),{},{status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>Rr},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=Rr}})}var Mr=function(){function e(t,r){var n;return l(this,e),f(n=u(this,e,[t]),"name","AlgoliaError"),r&&(n.name=r),n}return v(e,j(Error)),s(e)}(),Hr=function(){function e(t,r,n){var o;return l(this,e),f(o=u(this,e,[t,n]),"stackTrace",void 0),o.stackTrace=r,o}return v(e,Mr),s(e)}(),Br=function(){function e(t){return l(this,e),u(this,e,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",t,"RetryError"])}return v(e,Hr),s(e)}(),Fr=function(){function e(t,r,n){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return l(this,e),f(o=u(this,e,[t,n,i]),"status",void 0),o.status=r,o}return v(e,Hr),s(e)}(),Ur=function(){function e(t,r){var n;return l(this,e),f(n=u(this,e,[t,"DeserializationError"]),"response",void 0),n.response=r,n}return v(e,Mr),s(e)}(),Kr=function(){function e(t,r,n,o){var i;return l(this,e),f(i=u(this,e,[t,r,o,"DetailedApiError"]),"error",void 0),i.error=n,i}return v(e,Fr),s(e)}();function Vr(e,t,r){var n,o=(n=r,Object.keys(n).filter((function(e){return void 0!==n[e]})).sort().map((function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(n[e])?n[e].join(","):n[e]).replace(/\+/g,"%20"))})).join("&")),i="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return o.length&&(i+="?".concat(o)),i}function zr(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var r=Array.isArray(e.data)?e.data:y(y({},e.data),t.data);return JSON.stringify(r)}}function Jr(e,t,r){var n=y(y(y({Accept:"application/json"},e),t),r),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}function Qr(e){try{return JSON.parse(e.content)}catch(t){throw new Ur(t.message,e)}}function Wr(e,t){var r=e.content,n=e.status;try{var o=JSON.parse(r);return"error"in o?new Kr(o.message,n,o.error,t):new Fr(o.message,n,t)}catch(e){}return new Fr(r,n,t)}function Zr(e){return e.map((function(e){return Gr(e)}))}function Gr(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return y(y({},e),{},{request:y(y({},e.request),{},{headers:y(y({},e.request.headers),t)})})}var Yr=["appId","apiKey","authMode","algoliaAgents"],$r=["params"],Xr="5.14.2";function en(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,r=e.length-1;r>0;r--){var n=Math.floor(Math.random()*(r+1)),o=e[r];t[r]=e[n],t[n]=o}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}function tn(e){var t=e.appId,r=e.apiKey,n=e.authMode,o=e.algoliaAgents,i=g(e,Yr),a=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",n={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===r?n:{}},queryParameters:function(){return"WithinQueryParameters"===r?n:{}}}}(t,r,n),u=function(e){var t=e.hosts,r=e.hostsCache,n=e.baseHeaders,o=e.logger,i=e.baseQueryParameters,a=e.algoliaAgent,u=e.timeouts,l=e.requester,s=e.requestsCache,f=e.responsesCache;function m(e){return p.apply(this,arguments)}function p(){return(p=c(b().mark((function e(t){var n,o,i,a,c;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return r.get(e,(function(){return Promise.resolve(qr(e))}))})));case 2:return n=e.sent,o=n.filter((function(e){return e.isUp()})),i=n.filter((function(e){return e.isTimedOut()})),a=[].concat(w(o),w(i)),c=a.length>0?a:t,e.abrupt("return",{hosts:c,getTimeout:function(e,t){return(0===i.length&&0===e?1:i.length+3+e)*t}});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function v(e,t){return d.apply(this,arguments)}function d(){return d=c(b().mark((function e(s,f){var p,v,d,h,g,S,O,E,j,P,I,D,k,A=arguments;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p=!(A.length>2&&void 0!==A[2])||A[2],v=[],d=zr(s,f),h=Jr(n,s.headers,f.headers),g="GET"===s.method?y(y({},s.data),f.data):{},S=y(y(y({},i),s.queryParameters),g),a.value&&(S["x-algolia-agent"]=a.value),f&&f.queryParameters)for(O=0,E=Object.keys(f.queryParameters);O1&&void 0!==arguments[1]?arguments[1]:{},r=e.useReadTransporter||"GET"===e.method;if(!r)return v(e,t,r);var o=function(){return v(e,t)};if(!0!==(t.cacheable||e.cacheable))return o();var a={request:e,requestOptions:t,transporter:{queryParameters:i,headers:n}};return f.get(a,(function(){return s.get(a,(function(){return s.set(a,o()).then((function(e){return Promise.all([s.delete(a),e])}),(function(e){return Promise.all([s.delete(a),Promise.reject(e)])})).then((function(e){var t=O(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.set(a,e)}})},requestsCache:s,responsesCache:f}}(y(y({hosts:en(t)},i),{},{algoliaAgent:Lr({algoliaAgents:o,client:"Lite",version:Xr}),baseHeaders:y(y({"content-type":"text/plain"},a.headers()),i.baseHeaders),baseQueryParameters:y(y({},a.queryParameters()),i.baseQueryParameters)}));return{transporter:u,appId:t,clearCache:function(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then((function(){}))},get _ua(){return u.algoliaAgent.value},addAlgoliaAgent:function(e,t){u.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;n&&"WithinHeaders"!==n?u.baseQueryParameters["x-algolia-api-key"]=t:u.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var r=e.path,n=e.parameters,o=e.body;if(!r)throw new Error("Parameter `path` is required when calling `customPost`.");var i={method:"POST",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{},data:o||{}};return u.request(i,t)},getRecommendations:function(e,t){e&&Array.isArray(e)&&(e={requests:e});if(!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var r={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(r,t)},search:function(e,t){if(e&&Array.isArray(e)){var r={requests:e.map((function(e){var t=e.params,r=g(e,$r);return"facet"===r.type?y(y(y({},r),t),{},{type:"facet"}):y(y(y({},r),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=r}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var n={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(n,t)}}}var rn="3.8.2";function nn(t,r,n){return e.useMemo((function(){var e=function(e,t,r){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return tn(y({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),e)},i=o(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(i),n=o(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(i),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(i),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:Tr(),requestsCache:Tr({serializable:!1}),hostsCache:Nr({caches:[Cr({key:"".concat(Xr,"-").concat(e)}),Tr()]})},r))}(t,r);return e.addAlgoliaAgent("docsearch",rn),!1===/docsearch.js \(.*\)/.test(e.transporter.algoliaAgent.value)&&e.addAlgoliaAgent("docsearch-react",rn),n(e)}),[t,r,n])}var on=["footer","searchBox"];function an(t){var r=t.appId,n=t.apiKey,o=t.indexName,i=t.placeholder,a=void 0===i?"Search docs":i,c=t.searchParameters,u=t.maxResultsPerGroup,l=t.onClose,s=void 0===l?gr:l,f=t.transformItems,p=void 0===f?hr:f,v=t.hitComponent,d=void 0===v?Zt:v,h=t.resultsFooterComponent,b=void 0===h?function(){return null}:h,S=t.navigator,w=t.initialScrollY,E=void 0===w?0:w,j=t.transformSearchClient,P=void 0===j?hr:j,I=t.disableUserPersonalization,D=void 0!==I&&I,k=t.initialQuery,A=void 0===k?"":k,_=t.translations,x=void 0===_?{}:_,C=t.getMissingResultsUrl,N=t.insights,T=void 0!==N&&N,L=x.footer,R=x.searchBox,q=g(x,on),M=O(e.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),H=M[0],B=M[1],F=e.useRef(null),U=e.useRef(null),K=e.useRef(null),V=e.useRef(null),z=e.useRef(null),J=e.useRef(10),Q=e.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,W=e.useRef(A||Q).current,Z=nn(r,n,P),G=e.useRef(xr({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(o),limit:10})).current,Y=e.useRef(xr({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(o),limit:0===G.getAll().length?7:4})).current,$=e.useCallback((function(e){if(!D){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===G.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Y.add(t)}}),[G,Y,D]),X=e.useCallback((function(e){if(H.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};H.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[H.context.algoliaInsightsPlugin]),ee=e.useMemo((function(){return zt({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:W,context:{searchSuggestions:[]}},insights:T,navigator:S,onStateChange:function(e){B(e.state)},getSources:function(e){var t=e.query,i=e.state,a=e.setContext,l=e.setStatus;if(!t)return D?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;$(t),yr(r)||s()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;$(t),yr(r)||s()},getItemUrl:function(e){return e.item.url},getItems:function(){return G.getAll()}}];var f=Boolean(T);return Z.search({requests:[y({query:t,indexName:o,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(J.current),"hierarchy.lvl2:".concat(J.current),"hierarchy.lvl3:".concat(J.current),"hierarchy.lvl4:".concat(J.current),"hierarchy.lvl5:".concat(J.current),"hierarchy.lvl6:".concat(J.current),"content:".concat(J.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:f},c)]}).catch((function(e){throw"RetryError"===e.name&&l("error"),e})).then((function(e){var t=e.results[0],c=t.hits,l=t.nbHits,m=dr(c,(function(e){return Or(e)}),u);i.context.searchSuggestions.length0&&(ne(),z.current&&z.current.focus())}),[W,ne]),e.useEffect((function(){function e(){if(U.current){var e=.01*window.innerHeight;U.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),e.createElement("div",m({ref:F},re({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===H.status&&"DocSearch-Container--Stalled","error"===H.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&s()}}),e.createElement("div",{className:"DocSearch-Modal",ref:U},e.createElement("header",{className:"DocSearch-SearchBar",ref:K},e.createElement(kr,m({},ee,{state:H,autoFocus:0===W.length,inputRef:z,isFromSelection:Boolean(W)&&W===Q,translations:R,onClose:s}))),e.createElement("div",{className:"DocSearch-Dropdown",ref:V},e.createElement(Ir,m({},ee,{indexName:o,state:H,hitComponent:d,resultsFooterComponent:b,disableUserPersonalization:D,recentSearches:Y,favoriteSearches:G,inputRef:z,translations:q,getMissingResultsUrl:C,onItemClick:function(e,t){X(e),$(e),yr(t)||s()}}))),e.createElement("footer",{className:"DocSearch-Footer"},e.createElement(Wt,{translations:L}))))}function cn(t){var r=t.isOpen,n=t.onOpen,o=t.onClose,i=t.onInput,a=t.searchButtonRef;e.useEffect((function(){function e(e){var t;if("Escape"===e.code&&r||"k"===(null===(t=e.key)||void 0===t?void 0:t.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,r=t.tagName;return t.isContentEditable||"INPUT"===r||"SELECT"===r||"TEXTAREA"===r}(e)&&"/"===e.key&&!r)return e.preventDefault(),void(r?o():document.body.classList.contains("DocSearch--active")||n());a&&a.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[r,n,o,i,a])}function un(t){var r,n,i=e.useRef(null),a=O(e.useState(!1),2),c=a[0],u=a[1],l=O(e.useState((null==t?void 0:t.initialQuery)||void 0),2),s=l[0],f=l[1],p=e.useCallback((function(){u(!0)}),[u]),v=e.useCallback((function(){u(!1),f(null==t?void 0:t.initialQuery)}),[u,t.initialQuery]);return cn({isOpen:c,onOpen:p,onClose:v,onInput:e.useCallback((function(e){u(!0),f(e.key)}),[u,f]),searchButtonRef:i}),e.createElement(e.Fragment,null,e.createElement(A,{ref:i,translations:null==t||null===(r=t.translations)||void 0===r?void 0:r.button,onClick:p}),c&&o(e.createElement(an,m({},t,{initialScrollY:window.scrollY,initialQuery:s,translations:null==t||null===(n=t.translations)||void 0===n?void 0:n.modal,onClose:v})),document.body))}export{un as DocSearch,A as DocSearchButton,an as DocSearchModal,cn as useDocSearchKeyboardEvents,rn as version}; diff --git a/node_modules/@docsearch/react/dist/esm/stored-searches.d.ts b/node_modules/@docsearch/react/dist/esm/stored-searches.d.ts deleted file mode 100644 index d7f2661..0000000 --- a/node_modules/@docsearch/react/dist/esm/stored-searches.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { StoredDocSearchHit } from './types'; -declare type CreateStoredSearchesOptions = { - key: string; - limit?: number; -}; -export declare type StoredSearchPlugin = { - add: (item: TItem) => void; - remove: (item: TItem) => void; - getAll: () => TItem[]; -}; -export declare function createStoredSearches({ key, limit, }: CreateStoredSearchesOptions): StoredSearchPlugin; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/stored-searches.js b/node_modules/@docsearch/react/dist/esm/stored-searches.js deleted file mode 100644 index 6c1c9d0..0000000 --- a/node_modules/@docsearch/react/dist/esm/stored-searches.js +++ /dev/null @@ -1,75 +0,0 @@ -var _excluded = ["_highlightResult", "_snippetResult"]; - -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -function isLocalStorageSupported() { - var key = '__TEST_KEY__'; - - try { - localStorage.setItem(key, ''); - localStorage.removeItem(key); - return true; - } catch (error) { - return false; - } -} - -function createStorage(key) { - if (isLocalStorageSupported() === false) { - return { - setItem: function setItem() {}, - getItem: function getItem() { - return []; - } - }; - } - - return { - setItem: function setItem(item) { - return window.localStorage.setItem(key, JSON.stringify(item)); - }, - getItem: function getItem() { - var item = window.localStorage.getItem(key); - return item ? JSON.parse(item) : []; - } - }; -} - -export function createStoredSearches(_ref) { - var key = _ref.key, - _ref$limit = _ref.limit, - limit = _ref$limit === void 0 ? 5 : _ref$limit; - var storage = createStorage(key); - var items = storage.getItem().slice(0, limit); - return { - add: function add(item) { - var _ref2 = item, - _highlightResult = _ref2._highlightResult, - _snippetResult = _ref2._snippetResult, - hit = _objectWithoutProperties(_ref2, _excluded); - - var isQueryAlreadySaved = items.findIndex(function (x) { - return x.objectID === hit.objectID; - }); - - if (isQueryAlreadySaved > -1) { - items.splice(isQueryAlreadySaved, 1); - } - - items.unshift(hit); - items = items.slice(0, limit); - storage.setItem(items); - }, - remove: function remove(item) { - items = items.filter(function (x) { - return x.objectID !== item.objectID; - }); - storage.setItem(items); - }, - getAll: function getAll() { - return items; - } - }; -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/types/DocSearchHit.d.ts b/node_modules/@docsearch/react/dist/esm/types/DocSearchHit.d.ts deleted file mode 100644 index dc2c84f..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/DocSearchHit.d.ts +++ /dev/null @@ -1,75 +0,0 @@ -declare type ContentType = 'content' | 'lvl0' | 'lvl1' | 'lvl2' | 'lvl3' | 'lvl4' | 'lvl5' | 'lvl6'; -interface DocSearchHitAttributeHighlightResult { - value: string; - matchLevel: 'full' | 'none' | 'partial'; - matchedWords: string[]; - fullyHighlighted?: boolean; -} -interface DocSearchHitHighlightResultHierarchy { - lvl0: DocSearchHitAttributeHighlightResult; - lvl1: DocSearchHitAttributeHighlightResult; - lvl2: DocSearchHitAttributeHighlightResult; - lvl3: DocSearchHitAttributeHighlightResult; - lvl4: DocSearchHitAttributeHighlightResult; - lvl5: DocSearchHitAttributeHighlightResult; - lvl6: DocSearchHitAttributeHighlightResult; -} -interface DocSearchHitHighlightResult { - content: DocSearchHitAttributeHighlightResult; - hierarchy: DocSearchHitHighlightResultHierarchy; - hierarchy_camel: DocSearchHitHighlightResultHierarchy[]; -} -interface DocSearchHitAttributeSnippetResult { - value: string; - matchLevel: 'full' | 'none' | 'partial'; -} -interface DocSearchHitSnippetResult { - content: DocSearchHitAttributeSnippetResult; - hierarchy: DocSearchHitHighlightResultHierarchy; - hierarchy_camel: DocSearchHitHighlightResultHierarchy[]; -} -export declare type DocSearchHit = { - objectID: string; - content: string | null; - url: string; - url_without_anchor: string; - type: ContentType; - anchor: string | null; - hierarchy: { - lvl0: string; - lvl1: string; - lvl2: string | null; - lvl3: string | null; - lvl4: string | null; - lvl5: string | null; - lvl6: string | null; - }; - _highlightResult: DocSearchHitHighlightResult; - _snippetResult: DocSearchHitSnippetResult; - _rankingInfo?: { - promoted: boolean; - nbTypos: number; - firstMatchedWord: number; - proximityDistance?: number; - geoDistance: number; - geoPrecision?: number; - nbExactWords: number; - words: number; - filters: number; - userScore: number; - matchedGeoLocation?: { - lat: number; - lng: number; - distance: number; - }; - }; - _distinctSeqID?: number; - __autocomplete_indexName?: string; - __autocomplete_queryID?: string; - __autocomplete_algoliaCredentials?: { - appId: string; - apiKey: string; - }; - __autocomplete_id?: number; -}; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/types/DocSearchHit.js b/node_modules/@docsearch/react/dist/esm/types/DocSearchHit.js deleted file mode 100644 index 8cec2e9..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/DocSearchHit.js +++ /dev/null @@ -1 +0,0 @@ -export {}; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/types/DocSearchState.d.ts b/node_modules/@docsearch/react/dist/esm/types/DocSearchState.d.ts deleted file mode 100644 index 6a84019..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/DocSearchState.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { AutocompleteContext, AutocompleteInsightsApi, AutocompleteState, BaseItem } from '@algolia/autocomplete-core'; -interface DocSearchContext extends AutocompleteContext { - algoliaInsightsPlugin?: { - insights: AutocompleteInsightsApi; - }; -} -export interface DocSearchState extends AutocompleteState { - context: DocSearchContext; -} -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/types/DocSearchState.js b/node_modules/@docsearch/react/dist/esm/types/DocSearchState.js deleted file mode 100644 index 8cec2e9..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/DocSearchState.js +++ /dev/null @@ -1 +0,0 @@ -export {}; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.d.ts b/node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.d.ts deleted file mode 100644 index 7c106cc..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import type { DocSearchHit } from './DocSearchHit'; -export declare type InternalDocSearchHit = DocSearchHit & { - __docsearch_parent: InternalDocSearchHit | null; -}; diff --git a/node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.js b/node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.js deleted file mode 100644 index 8cec2e9..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/InternalDocSearchHit.js +++ /dev/null @@ -1 +0,0 @@ -export {}; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.d.ts b/node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.d.ts deleted file mode 100644 index eb92d47..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import type { DocSearchHit } from './DocSearchHit'; -export declare type StoredDocSearchHit = Omit; diff --git a/node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.js b/node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.js deleted file mode 100644 index 8cec2e9..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/StoredDocSearchHit.js +++ /dev/null @@ -1 +0,0 @@ -export {}; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/types/index.d.ts b/node_modules/@docsearch/react/dist/esm/types/index.d.ts deleted file mode 100644 index 37ac8f9..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './DocSearchHit'; -export * from './DocSearchState'; -export * from './InternalDocSearchHit'; -export * from './StoredDocSearchHit'; diff --git a/node_modules/@docsearch/react/dist/esm/types/index.js b/node_modules/@docsearch/react/dist/esm/types/index.js deleted file mode 100644 index aed269f..0000000 --- a/node_modules/@docsearch/react/dist/esm/types/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export * from './DocSearchHit'; -export * from './DocSearchState'; -export * from './InternalDocSearchHit'; -export * from './StoredDocSearchHit'; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.d.ts b/node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.d.ts deleted file mode 100644 index b1e76ac..0000000 --- a/node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -export interface UseDocSearchKeyboardEventsProps { - isOpen: boolean; - onOpen: () => void; - onClose: () => void; - onInput?: (event: KeyboardEvent) => void; - searchButtonRef?: React.RefObject; -} -export declare function useDocSearchKeyboardEvents({ isOpen, onOpen, onClose, onInput, searchButtonRef, }: UseDocSearchKeyboardEventsProps): void; diff --git a/node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.js b/node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.js deleted file mode 100644 index bdb4571..0000000 --- a/node_modules/@docsearch/react/dist/esm/useDocSearchKeyboardEvents.js +++ /dev/null @@ -1,55 +0,0 @@ -import React from 'react'; - -function isEditingContent(event) { - var element = event.target; - var tagName = element.tagName; - return element.isContentEditable || tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA'; -} - -export function useDocSearchKeyboardEvents(_ref) { - var isOpen = _ref.isOpen, - onOpen = _ref.onOpen, - onClose = _ref.onClose, - onInput = _ref.onInput, - searchButtonRef = _ref.searchButtonRef; - React.useEffect(function () { - function onKeyDown(event) { - var _event$key; - - function open() { - // We check that no other DocSearch modal is showing before opening - // another one. - if (!document.body.classList.contains('DocSearch--active')) { - onOpen(); - } - } - - if (event.keyCode === 27 && isOpen || // The `Cmd+K` shortcut both opens and closes the modal. - // We need to check for `event.key` because it can be `undefined` with - // Chrome's autofill feature. - // See https://github.com/paperjs/paper.js/issues/1398 - ((_event$key = event.key) === null || _event$key === void 0 ? void 0 : _event$key.toLowerCase()) === 'k' && (event.metaKey || event.ctrlKey) || // The `/` shortcut opens but doesn't close the modal because it's - // a character. - !isEditingContent(event) && event.key === '/' && !isOpen) { - event.preventDefault(); - - if (isOpen) { - onClose(); - } else if (!document.body.classList.contains('DocSearch--active')) { - open(); - } - } - - if (searchButtonRef && searchButtonRef.current === document.activeElement && onInput) { - if (/[a-zA-Z0-9]/.test(String.fromCharCode(event.keyCode))) { - onInput(event); - } - } - } - - window.addEventListener('keydown', onKeyDown); - return function () { - window.removeEventListener('keydown', onKeyDown); - }; - }, [isOpen, onOpen, onClose, onInput, searchButtonRef]); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/useSearchClient.d.ts b/node_modules/@docsearch/react/dist/esm/useSearchClient.d.ts deleted file mode 100644 index c82166b..0000000 --- a/node_modules/@docsearch/react/dist/esm/useSearchClient.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import type { SearchClient } from 'algoliasearch/lite'; -export declare function useSearchClient(appId: string, apiKey: string, transformSearchClient: (searchClient: SearchClient) => SearchClient): SearchClient; diff --git a/node_modules/@docsearch/react/dist/esm/useSearchClient.js b/node_modules/@docsearch/react/dist/esm/useSearchClient.js deleted file mode 100644 index 16ead8c..0000000 --- a/node_modules/@docsearch/react/dist/esm/useSearchClient.js +++ /dev/null @@ -1,20 +0,0 @@ -import algoliasearch from 'algoliasearch/dist/algoliasearch-lite.esm.browser'; -import React from 'react'; -import { version } from './version'; -export function useSearchClient(appId, apiKey, transformSearchClient) { - var searchClient = React.useMemo(function () { - var client = algoliasearch(appId, apiKey); - client.addAlgoliaAgent('docsearch', version); // Since DocSearch.js relies on DocSearch React with an alias to Preact, - // we cannot add the `docsearch-react` user agent by default, otherwise - // it would also be sent on a DocSearch.js integration. - // We therefore only add the `docsearch-react` user agent if `docsearch.js` - // is not present. - - if (/docsearch.js \(.*\)/.test(client.transporter.userAgent.value) === false) { - client.addAlgoliaAgent('docsearch-react', version); - } - - return transformSearchClient(client); - }, [appId, apiKey, transformSearchClient]); - return searchClient; -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/useTouchEvents.d.ts b/node_modules/@docsearch/react/dist/esm/useTouchEvents.d.ts deleted file mode 100644 index ec9108d..0000000 --- a/node_modules/@docsearch/react/dist/esm/useTouchEvents.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { AutocompleteApi } from '@algolia/autocomplete-core'; -interface UseTouchEventsProps { - getEnvironmentProps: AutocompleteApi['getEnvironmentProps']; - panelElement: HTMLDivElement | null; - formElement: HTMLDivElement | null; - inputElement: HTMLInputElement | null; -} -export declare function useTouchEvents({ getEnvironmentProps, panelElement, formElement, inputElement, }: UseTouchEventsProps): void; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/useTouchEvents.js b/node_modules/@docsearch/react/dist/esm/useTouchEvents.js deleted file mode 100644 index a35b2c4..0000000 --- a/node_modules/@docsearch/react/dist/esm/useTouchEvents.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; -export function useTouchEvents(_ref) { - var getEnvironmentProps = _ref.getEnvironmentProps, - panelElement = _ref.panelElement, - formElement = _ref.formElement, - inputElement = _ref.inputElement; - React.useEffect(function () { - if (!(panelElement && formElement && inputElement)) { - return undefined; - } - - var _getEnvironmentProps = getEnvironmentProps({ - panelElement: panelElement, - formElement: formElement, - inputElement: inputElement - }), - onTouchStart = _getEnvironmentProps.onTouchStart, - onTouchMove = _getEnvironmentProps.onTouchMove; - - window.addEventListener('touchstart', onTouchStart); - window.addEventListener('touchmove', onTouchMove); - return function () { - window.removeEventListener('touchstart', onTouchStart); - window.removeEventListener('touchmove', onTouchMove); - }; - }, [getEnvironmentProps, panelElement, formElement, inputElement]); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/useTrapFocus.d.ts b/node_modules/@docsearch/react/dist/esm/useTrapFocus.d.ts deleted file mode 100644 index 8d5f45a..0000000 --- a/node_modules/@docsearch/react/dist/esm/useTrapFocus.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -interface UseTrapFocusProps { - container: HTMLElement | null; -} -export declare function useTrapFocus({ container }: UseTrapFocusProps): void; -export {}; diff --git a/node_modules/@docsearch/react/dist/esm/useTrapFocus.js b/node_modules/@docsearch/react/dist/esm/useTrapFocus.js deleted file mode 100644 index c5b11b8..0000000 --- a/node_modules/@docsearch/react/dist/esm/useTrapFocus.js +++ /dev/null @@ -1,34 +0,0 @@ -import React from 'react'; -export function useTrapFocus(_ref) { - var container = _ref.container; - React.useEffect(function () { - if (!container) { - return undefined; - } - - var focusableElements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), input:not([disabled])'); - var firstElement = focusableElements[0]; - var lastElement = focusableElements[focusableElements.length - 1]; - - function trapFocus(event) { - if (event.key !== 'Tab') { - return; - } - - if (event.shiftKey) { - if (document.activeElement === firstElement) { - event.preventDefault(); - lastElement.focus(); - } - } else if (document.activeElement === lastElement) { - event.preventDefault(); - firstElement.focus(); - } - } - - container.addEventListener('keydown', trapFocus); - return function () { - container.removeEventListener('keydown', trapFocus); - }; - }, [container]); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/utils/groupBy.d.ts b/node_modules/@docsearch/react/dist/esm/utils/groupBy.d.ts deleted file mode 100644 index 2d3df1b..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/groupBy.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function groupBy>(values: TValue[], predicate: (value: TValue) => string, maxResultsPerGroup?: number): Record; diff --git a/node_modules/@docsearch/react/dist/esm/utils/groupBy.js b/node_modules/@docsearch/react/dist/esm/utils/groupBy.js deleted file mode 100644 index f8f063e..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/groupBy.js +++ /dev/null @@ -1,17 +0,0 @@ -export function groupBy(values, predicate, maxResultsPerGroup) { - return values.reduce(function (acc, item) { - var key = predicate(item); - - if (!acc.hasOwnProperty(key)) { - acc[key] = []; - } // We limit each section to show 5 hits maximum. - // This acts as a frontend alternative to `distinct`. - - - if (acc[key].length < (maxResultsPerGroup || 5)) { - acc[key].push(item); - } - - return acc; - }, {}); -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/utils/identity.d.ts b/node_modules/@docsearch/react/dist/esm/utils/identity.d.ts deleted file mode 100644 index 343901f..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/identity.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function identity(x: TParam): TParam; diff --git a/node_modules/@docsearch/react/dist/esm/utils/identity.js b/node_modules/@docsearch/react/dist/esm/utils/identity.js deleted file mode 100644 index c4c3c77..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/identity.js +++ /dev/null @@ -1,3 +0,0 @@ -export function identity(x) { - return x; -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/utils/index.d.ts b/node_modules/@docsearch/react/dist/esm/utils/index.d.ts deleted file mode 100644 index a442683..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './groupBy'; -export * from './identity'; -export * from './isModifierEvent'; -export * from './noop'; -export * from './removeHighlightTags'; diff --git a/node_modules/@docsearch/react/dist/esm/utils/index.js b/node_modules/@docsearch/react/dist/esm/utils/index.js deleted file mode 100644 index 3fc41af..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export * from './groupBy'; -export * from './identity'; -export * from './isModifierEvent'; -export * from './noop'; -export * from './removeHighlightTags'; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.d.ts b/node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.d.ts deleted file mode 100644 index 3fde000..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Detect when an event is modified with a special key to let the browser - * trigger its default behavior. - */ -export declare function isModifierEvent(event: TEvent): boolean; diff --git a/node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.js b/node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.js deleted file mode 100644 index 4c816a1..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/isModifierEvent.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Detect when an event is modified with a special key to let the browser - * trigger its default behavior. - */ -export function isModifierEvent(event) { - var isMiddleClick = event.button === 1; - return isMiddleClick || event.altKey || event.ctrlKey || event.metaKey || event.shiftKey; -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/utils/noop.d.ts b/node_modules/@docsearch/react/dist/esm/utils/noop.d.ts deleted file mode 100644 index 7db1996..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/noop.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function noop(..._args: any[]): void; diff --git a/node_modules/@docsearch/react/dist/esm/utils/noop.js b/node_modules/@docsearch/react/dist/esm/utils/noop.js deleted file mode 100644 index 628cbae..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/noop.js +++ /dev/null @@ -1 +0,0 @@ -export function noop() {} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.d.ts b/node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.d.ts deleted file mode 100644 index 4797720..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import type { DocSearchHit, InternalDocSearchHit } from '../types'; -export declare function removeHighlightTags(hit: DocSearchHit | InternalDocSearchHit): string; diff --git a/node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.js b/node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.js deleted file mode 100644 index db815c2..0000000 --- a/node_modules/@docsearch/react/dist/esm/utils/removeHighlightTags.js +++ /dev/null @@ -1,16 +0,0 @@ -var regexHighlightTags = /(|<\/mark>)/g; -var regexHasHighlightTags = RegExp(regexHighlightTags.source); -export function removeHighlightTags(hit) { - var _internalDocSearchHit, _hit$_highlightResult; - - var internalDocSearchHit = hit; - - if (!internalDocSearchHit.__docsearch_parent && !hit._highlightResult) { - return hit.hierarchy.lvl0; - } - - var _ref = (internalDocSearchHit.__docsearch_parent ? (_internalDocSearchHit = internalDocSearchHit.__docsearch_parent) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit._highlightResult) === null || _internalDocSearchHit === void 0 || (_internalDocSearchHit = _internalDocSearchHit.hierarchy) === null || _internalDocSearchHit === void 0 ? void 0 : _internalDocSearchHit.lvl0 : (_hit$_highlightResult = hit._highlightResult) === null || _hit$_highlightResult === void 0 || (_hit$_highlightResult = _hit$_highlightResult.hierarchy) === null || _hit$_highlightResult === void 0 ? void 0 : _hit$_highlightResult.lvl0) || {}, - value = _ref.value; - - return value && regexHasHighlightTags.test(value) ? value.replace(regexHighlightTags, '') : value; -} \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/esm/version.d.ts b/node_modules/@docsearch/react/dist/esm/version.d.ts deleted file mode 100644 index 0a68539..0000000 --- a/node_modules/@docsearch/react/dist/esm/version.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare const version = "3.5.2"; diff --git a/node_modules/@docsearch/react/dist/esm/version.js b/node_modules/@docsearch/react/dist/esm/version.js deleted file mode 100644 index fd66465..0000000 --- a/node_modules/@docsearch/react/dist/esm/version.js +++ /dev/null @@ -1 +0,0 @@ -export var version = '3.5.2'; \ No newline at end of file diff --git a/node_modules/@docsearch/react/dist/umd/index.js b/node_modules/@docsearch/react/dist/umd/index.js index 4212399..ba09a64 100644 --- a/node_modules/@docsearch/react/dist/umd/index.js +++ b/node_modules/@docsearch/react/dist/umd/index.js @@ -1,3 +1,3 @@ -/*! @docsearch/react 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom"],t):t((e=e||self)["@docsearch/react"]={},e.React,e.ReactDOM)}(this,(function(e,t,r){"use strict";var n="default"in t?t.default:t;function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||f(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||f(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?m(e,t):void 0}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function R(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function q(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(_(r),[{headers:a}]))}else e.apply(void 0,[t].concat(_(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDsAfterSearch",H(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDs",H(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDsAfterSearch",H(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDs",H(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=T(t,k);return[].concat(_(e),_(M(q(q({},n),{},{objectIDs:(null==r?void 0:r.map((function(e){return e.objectID})))||n.objectIDs})).map((function(e){return{items:r,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function F(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function U(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function V(e){return V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},V(e)}function K(e){return function(e){if(Array.isArray(e))return J(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return J(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return J(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&Y({onItemsChange:n,items:r,insights:c,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive;a("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:c}}),r((function(e){var t=e.item,r=e.state,n=e.event;U(t)&&o({state:r,event:n,insights:c,item:t,insightsEvents:[z({eventName:"Item Selected"},P({item:t,items:l.current}))]})})),n((function(e){var t=e.item,r=e.state,n=e.event;U(t)&&i({state:r,event:n,insights:c,item:t,insightsEvents:[z({eventName:"Item Active"},P({item:t,items:l.current}))]})}))},onStateChange:function(e){var t=e.state;u({state:t})},__autocomplete_pluginOptions:e}}function G(e,t){var r=t;return{then:function(t,n){return G(e.then(te(t,r,e),te(n,r,e)),r)},catch:function(t){return G(e.catch(te(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),G(e.finally(te(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function ee(e){return G(e,{isCanceled:!1,onCancelList:[]})}function te(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function re(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function oe(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(S++),plugins:o,initialState:Oe({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(be(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:w,onResolve:w};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=oe(oe({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return g(e)})).then((function(e){return e.map((function(e){return Oe(Oe({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:Oe({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}function we(e){return we="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},we(e)}function Ie(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pe(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ke,Je,$e,ze=null,Qe=(Ke=-1,Je=-1,$e=void 0,function(e){var t=++Ke;return Promise.resolve(e).then((function(e){return $e&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function rt(e){return rt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rt(e)}var nt=["props","refresh","store"],ot=["inputElement","formElement","panelElement"],it=["inputElement"],at=["inputElement","maxLength"],ct=["sourceIndex"],lt=["sourceIndex"],ut=["item","source","sourceIndex"];function st(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ft(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function dt(e){var t=e.props,r=e.refresh,n=e.store,o=pt(e,nt),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return ft({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},pt(e,ot))},getRootProps:function(e){return ft({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return ft({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(ft({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(ft({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},pt(e,it))},getLabelProps:function(e){var r=e||{},n=r.sourceIndex,o=pt(r,ct);return ft({htmlFor:"".concat(i(t.id,n),"-input"),id:"".concat(i(t.id,n),"-label")},o)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(n.getState().query))&&We(ft({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var c=e||{},l=(c.inputElement,c.maxLength),u=void 0===l?512:l,s=pt(c,at),f=ce(n.getState()),m=function(e){return Boolean(e&&e.match(le))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),p=null!=f&&f.itemUrl&&!m?"go":"search";return ft({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:p,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:u,type:"search",onChange:function(e){We(ft({event:e,props:t,query:e.currentTarget.value.slice(0,u),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=tt(e,Ye);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=ce(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,l=e.source;l.onActive(Ge({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?We(Ge({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=ce(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(Ge({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(Ge({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(Ge({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});We(Ge({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(Ge({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(ft({event:e,props:t,refresh:r,store:n},o))},onFocus:a,onBlur:w,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||a(r)}},s)},getPanelProps:function(e){return ft({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.sourceIndex,o=pt(r,lt);return ft({role:"listbox","aria-labelledby":"".concat(i(t.id,n),"-label"),id:"".concat(i(t.id,n),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,l=e.sourceIndex,u=pt(e,ut);return ft({id:"".concat(i(t.id,l),"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=ce(n.getState());if(null!==n.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(ft({event:e,item:i,itemInputValue:c,itemUrl:l,refresh:r,source:u,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():We(ft({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(ft({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},u)}}}function vt(e){return vt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},vt(e)}function ht(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function yt(e){for(var t=1;t0&&n.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},n.createElement("p",{className:"DocSearch-Help"},u,":"),n.createElement("ul",null,v.slice(0,3).reduce((function(e,t){return[].concat(s(e),[n.createElement("li",{key:t},n.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){o.setQuery(t.toLowerCase()+" "),o.refresh(),o.inputRef.current.focus()}},t))])}),[]))),o.getMissingResultsUrl&&n.createElement("p",{className:"DocSearch-Help"},"".concat(m," "),n.createElement("a",{href:o.getMissingResultsUrl({query:o.state.query}),target:"_blank",rel:"noopener noreferrer"},d)))}var Wt=["hit","attribute","tagName"];function Zt(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Yt(e){var r=e.hit,n=e.attribute,o=e.tagName,a=void 0===o?"span":o,c=l(e,Wt);return t.createElement(a,i(i({},c),{},{dangerouslySetInnerHTML:{__html:Zt(r,"_snippetResult.".concat(n,".value"))||Zt(r,n)}}))}function Xt(e){return e.collection&&0!==e.collection.items.length?n.createElement("section",{className:"DocSearch-Hits"},n.createElement("div",{className:"DocSearch-Hit-source"},e.title),n.createElement("ul",e.getListProps(),e.collection.items.map((function(t,r){return n.createElement(Gt,c({key:[e.title,t.objectID].join(":"),item:t,index:r},e))})))):null}function Gt(e){var t=e.item,r=e.index,o=e.renderIcon,i=e.renderAction,a=e.getItemProps,l=e.onItemClick,s=e.collection,f=e.hitComponent,m=u(n.useState(!1),2),p=m[0],d=m[1],v=u(n.useState(!1),2),h=v[0],y=v[1],b=n.useRef(null),g=f;return n.createElement("li",c({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",p&&"DocSearch-Hit--deleting",h&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){b.current&&b.current()}},a({item:t,source:s.source,onClick:function(e){l(t,e)}})),n.createElement(g,{hit:t},n.createElement("div",{className:"DocSearch-Hit-Container"},o({item:t,index:r}),t.hierarchy[t.type]&&"lvl1"===t.type&&n.createElement("div",{className:"DocSearch-Hit-content-wrapper"},n.createElement(Yt,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&n.createElement(Yt,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&n.createElement("div",{className:"DocSearch-Hit-content-wrapper"},n.createElement(Yt,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),n.createElement(Yt,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&n.createElement("div",{className:"DocSearch-Hit-content-wrapper"},n.createElement(Yt,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),n.createElement(Yt,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),i({item:t,runDeleteTransition:function(e){d(!0),b.current=e},runFavoriteTransition:function(e){y(!0),b.current=e}}))))}function er(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}function tr(e){return e}function rr(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function nr(){}var or=/(|<\/mark>)/g,ir=RegExp(or.source);function ar(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=((n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0)||{}).value;return o&&ir.test(o)?o.replace(or,""):o}function cr(e){return n.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var r=ar(t.items[0]);return n.createElement(Xt,c({},e,{key:t.source.sourceId,title:r,collection:t,renderIcon:function(e){var r,o=e.item,i=e.index;return n.createElement(n.Fragment,null,o.__docsearch_parent&&n.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},n.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},o.__docsearch_parent!==(null===(r=t.items[i+1])||void 0===r?void 0:r.__docsearch_parent)?n.createElement("path",{d:"M8 6v21M20 27H8.3"}):n.createElement("path",{d:"M8 6v42M20 27H8.3"}))),n.createElement("div",{className:"DocSearch-Hit-icon"},n.createElement(Bt,{type:o.type})))},renderAction:function(){return n.createElement("div",{className:"DocSearch-Hit-action"},n.createElement(Mt,null))}}))})),e.resultsFooterComponent&&n.createElement("section",{className:"DocSearch-HitsFooter"},n.createElement(e.resultsFooterComponent,{state:e.state})))}var lr=["translations"];function ur(e){var t=e.translations,r=void 0===t?{}:t,o=l(e,lr),i=r.recentSearchesTitle,a=void 0===i?"Recent":i,u=r.noRecentSearchesText,s=void 0===u?"No recent searches":u,f=r.saveRecentSearchButtonTitle,m=void 0===f?"Save this search":f,p=r.removeRecentSearchButtonTitle,d=void 0===p?"Remove this search from history":p,v=r.favoriteSearchesTitle,h=void 0===v?"Favorite":v,y=r.removeFavoriteSearchButtonTitle,b=void 0===y?"Remove this search from favorites":y;return"idle"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:n.createElement("div",{className:"DocSearch-StartScreen"},n.createElement("p",{className:"DocSearch-Help"},s)):!1===o.hasCollections?null:n.createElement("div",{className:"DocSearch-Dropdown-Container"},n.createElement(Xt,c({},o,{title:a,collection:o.state.collections[0],renderIcon:function(){return n.createElement("div",{className:"DocSearch-Hit-icon"},n.createElement(qt,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,i=e.runDeleteTransition;return n.createElement(n.Fragment,null,n.createElement("div",{className:"DocSearch-Hit-action"},n.createElement("button",{className:"DocSearch-Hit-action-button",title:m,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){o.favoriteSearches.add(t),o.recentSearches.remove(t),o.refresh()}))}},n.createElement(Vt,null))),n.createElement("div",{className:"DocSearch-Hit-action"},n.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),i((function(){o.recentSearches.remove(t),o.refresh()}))}},n.createElement(Lt,null))))}})),n.createElement(Xt,c({},o,{title:h,collection:o.state.collections[1],renderIcon:function(){return n.createElement("div",{className:"DocSearch-Hit-icon"},n.createElement(Vt,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return n.createElement("div",{className:"DocSearch-Hit-action"},n.createElement("button",{className:"DocSearch-Hit-action-button",title:b,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){o.favoriteSearches.remove(t),o.refresh()}))}},n.createElement(Lt,null)))}})))}var sr=["translations"],fr=n.memo((function(e){var t=e.translations,r=void 0===t?{}:t,o=l(e,sr);if("error"===o.state.status)return n.createElement($t,{translations:null==r?void 0:r.errorScreen});var i=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===i?n.createElement(Qt,c({},o,{translations:null==r?void 0:r.noResultsScreen})):n.createElement(cr,o):n.createElement(ur,c({},o,{hasCollections:i,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),mr=["translations"];function pr(e){var t=e.translations,r=void 0===t?{}:t,o=l(e,mr),i=r.resetButtonTitle,a=void 0===i?"Clear the query":i,u=r.resetButtonAriaLabel,s=void 0===u?"Clear the query":u,f=r.cancelButtonText,m=void 0===f?"Cancel":f,p=r.cancelButtonAriaLabel,v=void 0===p?"Cancel":p,h=o.getFormProps({inputElement:o.inputRef.current}).onReset;return n.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),n.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),n.createElement(n.Fragment,null,n.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:h},n.createElement("label",c({className:"DocSearch-MagnifierLabel"},o.getLabelProps()),n.createElement(d,null)),n.createElement("div",{className:"DocSearch-LoadingIndicator"},n.createElement(Rt,null)),n.createElement("input",c({className:"DocSearch-Input",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),n.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":s,hidden:!o.state.query},n.createElement(Lt,null))),n.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":v,onClick:o.onClose},m))}var dr=["_highlightResult","_snippetResult"];function vr(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function hr(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=vr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,l(t,dr)),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function yr(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}"),i=e=>{n().setItem(t,JSON.stringify(e))};return{get:(t,r,n={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(i(n),!t)return;const a=Object.fromEntries(Object.entries(n).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+tPromise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||n.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},n().setItem(t,JSON.stringify(i)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function br(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>br({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>br({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>br({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>br({caches:t}).clear()))}}function gr(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=n(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function Sr(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function Or(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Er(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const jr="4.19.1",wr={WithinQueryParameters:0,WithinHeaders:1};function Ir(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Pr={Read:1,Write:2,Any:3},Dr=1,Ar=2,Cr=3,kr=12e4;function Nr(e,t=Dr){return{...e,status:t,lastUpdate:Date.now()}}function _r(e){return"string"==typeof e?{protocol:"https",url:e,accept:Pr.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Pr.Any}}const xr="GET",Tr="POST";function Rr(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Nr(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===Dr||Date.now()-e.lastUpdate>kr}(e))),n=e.filter((e=>function(e){return e.status===Cr&&Date.now()-e.lastUpdate<=kr}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>_r(e))):t}}))}function qr(e,t,r,n){const o=[],i=function(e,t){if(e.method===xr||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),a=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),c=r.method,l=r.method!==xr?{}:{...r.data,...n.data},u={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let s=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Br(o)};const p={data:i,headers:a,method:c,url:Mr(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},d=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},v={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=d(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",Fr(n)),e.hostsCache.set(m,Nr(m,r.isTimedOut?Cr:Ar))]).then((()=>f(t,l)))},onFail(e){throw d(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,Br(o))}};return e.requester.send(p).then((e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e))(e,v)))};return Rr(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Lr(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Mr(e,t,r){const n=Hr(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Hr(e){return Object.keys(e).map((t=>{return Er("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function Br(e){return e.map((e=>Fr(e)))}function Fr(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const Ur=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===wr.WithinHeaders?n:{},queryParameters:()=>e===wr.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:wr.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:s,queryParameters:u,hosts:l.map((e=>_r(e))),read(e,t){const r=Ir(t,f.timeouts.read),n=()=>qr(f,f.hosts.filter((e=>0!=(e.accept&Pr.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>qr(f,f.hosts.filter((e=>0!=(e.accept&Pr.Write))),e,Ir(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Pr.Read},{url:`${t}.algolia.net`,accept:Pr.Write}].concat(Sr([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return Or(o,e.methods)},Vr=e=>(t,r)=>t.method===xr?e.transporter.read(t,r):e.transporter.write(t,r),Kr=e=>(t,r={})=>Or({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),Jr=e=>(t,r)=>{const n=t.map((e=>({...e,params:Hr(e.params||{})})));return e.transporter.read({method:Tr,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},$r=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...i}=t.params;return Kr(e)(t.indexName,{methods:{searchForFacetValues:Wr}}).searchForFacetValues(n,o,{...r,...i})}))),zr=e=>(t,r,n)=>e.transporter.read({method:Tr,path:Er("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Qr=e=>(t,r)=>e.transporter.read({method:Tr,path:Er("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),Wr=e=>(t,r,n)=>e.transporter.read({method:Tr,path:Er("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),Zr=1,Yr=2,Xr=3;function Gr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let i;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===i&&(clearTimeout(o),i=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(i),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=Xr,{debug:(e,t)=>(Zr>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Yr>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:gr(),requestsCache:gr({serializable:!1}),hostsCache:br({caches:[yr({key:`4.19.1-${e}`}),gr()]}),userAgent:Lr(jr).add({segment:"Browser",version:"lite"}),authMode:wr.WithinQueryParameters};var o;return Ur({...n,...r,methods:{search:Jr,searchForFacetValues:$r,multipleQueries:Jr,multipleSearchForFacetValues:$r,customRequest:Vr,initIndex:e=>t=>Kr(e)(t,{methods:{search:Qr,searchForFacetValues:Wr,findAnswers:zr}})}})}Gr.version=jr;var en="3.5.2";var tn=["footer","searchBox"];function rn(e){var t=e.appId,r=e.apiKey,o=e.indexName,a=e.placeholder,s=void 0===a?"Search docs":a,f=e.searchParameters,m=e.maxResultsPerGroup,p=e.onClose,d=void 0===p?nr:p,v=e.transformItems,h=void 0===v?tr:v,y=e.hitComponent,b=void 0===y?Tt:y,g=e.resultsFooterComponent,S=void 0===g?function(){return null}:g,O=e.navigator,E=e.initialScrollY,j=void 0===E?0:E,w=e.transformSearchClient,I=void 0===w?tr:w,P=e.disableUserPersonalization,D=void 0!==P&&P,A=e.initialQuery,C=void 0===A?"":A,k=e.translations,N=void 0===k?{}:k,_=e.getMissingResultsUrl,x=e.insights,T=void 0!==x&&x,R=N.footer,q=N.searchBox,L=l(N,tn),M=u(n.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),H=M[0],B=M[1],F=n.useRef(null),U=n.useRef(null),V=n.useRef(null),K=n.useRef(null),J=n.useRef(null),$=n.useRef(10),z=n.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,Q=n.useRef(C||z).current,W=function(e,t,r){return n.useMemo((function(){var n=Gr(e,t);return n.addAlgoliaAgent("docsearch",en),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",en),r(n)}),[e,t,r])}(t,r,I),Z=n.useRef(hr({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(o),limit:10})).current,Y=n.useRef(hr({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(o),limit:0===Z.getAll().length?7:4})).current,X=n.useCallback((function(e){if(!D){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===Z.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Y.add(t)}}),[Z,Y,D]),G=n.useCallback((function(e){if(H.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};H.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[H.context.algoliaInsightsPlugin]),ee=n.useMemo((function(){return kt({id:"docsearch",defaultActiveItemId:0,placeholder:s,openOnFocus:!0,initialState:{query:Q,context:{searchSuggestions:[]}},insights:T,navigator:O,onStateChange:function(e){B(e.state)},getSources:function(e){var n=e.query,a=e.state,c=e.setContext,l=e.setStatus;if(!n)return D?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;X(t),rr(r)||d()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;X(t),rr(r)||d()},getItemUrl:function(e){return e.item.url},getItems:function(){return Z.getAll()}}];var u=Boolean(T);return W.search([{query:n,indexName:o,params:i({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat($.current),"hierarchy.lvl2:".concat($.current),"hierarchy.lvl3:".concat($.current),"hierarchy.lvl4:".concat($.current),"hierarchy.lvl5:".concat($.current),"hierarchy.lvl6:".concat($.current),"content:".concat($.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:u},f)}]).catch((function(e){throw"RetryError"===e.name&&l("error"),e})).then((function(e){var n=e.results[0],l=n.hits,s=n.nbHits,f=er(l,(function(e){return ar(e)}),m);a.context.searchSuggestions.length0&&(ne(),J.current&&J.current.focus())}),[Q,ne]),n.useEffect((function(){function e(){if(U.current){var e=.01*window.innerHeight;U.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),n.createElement("div",c({ref:F},re({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===H.status&&"DocSearch-Container--Stalled","error"===H.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&d()}}),n.createElement("div",{className:"DocSearch-Modal",ref:U},n.createElement("header",{className:"DocSearch-SearchBar",ref:V},n.createElement(pr,c({},ee,{state:H,autoFocus:0===Q.length,inputRef:J,isFromSelection:Boolean(Q)&&Q===z,translations:q,onClose:d}))),n.createElement("div",{className:"DocSearch-Dropdown",ref:K},n.createElement(fr,c({},ee,{indexName:o,state:H,hitComponent:b,resultsFooterComponent:S,disableUserPersonalization:D,recentSearches:Y,favoriteSearches:Z,inputRef:J,translations:L,getMissingResultsUrl:_,onItemClick:function(e,t){G(e),X(e),rr(t)||d()}}))),n.createElement("footer",{className:"DocSearch-Footer"},n.createElement(xt,{translations:R}))))}function nn(e){var t=e.isOpen,r=e.onOpen,o=e.onClose,i=e.onInput,a=e.searchButtonRef;n.useEffect((function(){function e(e){var n;(27===e.keyCode&&t||"k"===(null===(n=e.key)||void 0===n?void 0:n.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,r=t.tagName;return t.isContentEditable||"INPUT"===r||"SELECT"===r||"TEXTAREA"===r}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||r()),a&&a.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,r,o,i,a])}e.DocSearch=function(e){var t,o,i=n.useRef(null),a=u(n.useState(!1),2),l=a[0],s=a[1],f=u(n.useState((null==e?void 0:e.initialQuery)||void 0),2),m=f[0],p=f[1],d=n.useCallback((function(){s(!0)}),[s]),v=n.useCallback((function(){s(!1)}),[s]);return nn({isOpen:l,onOpen:d,onClose:v,onInput:n.useCallback((function(e){s(!0),p(e.key)}),[s,p]),searchButtonRef:i}),n.createElement(n.Fragment,null,n.createElement(y,{ref:i,translations:null==e||null===(t=e.translations)||void 0===t?void 0:t.button,onClick:d}),l&&r.createPortal(n.createElement(rn,c({},e,{initialScrollY:window.scrollY,initialQuery:m,translations:null==e||null===(o=e.translations)||void 0===o?void 0:o.modal,onClose:v})),document.body))},e.DocSearchButton=y,e.DocSearchModal=rn,e.useDocSearchKeyboardEvents=nn,e.version=en,Object.defineProperty(e,"__esModule",{value:!0})})); +/*! @docsearch/react 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@docsearch/react"]={},e.React,e.ReactDOM)}(this,(function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:C(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),h}},t}function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}function b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(e,t)||O(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function S(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||O(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}function w(e){var t="function"==typeof Map?new Map:void 0;return w=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(p())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&g(o,r.prototype),o}(e,arguments,f(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),g(r,e)},w(e)}function E(){return t.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},t.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function j(){return t.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20","aria-hidden":"true"},t.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var P=["translations"],I="Ctrl";var D=t.forwardRef((function(e,r){var n=e.translations,o=void 0===n?{}:n,i=h(e,P),a=o.buttonText,c=void 0===a?"Search":a,u=o.buttonAriaLabel,l=void 0===u?"Search":u,f=b(t.useState(null),2),m=f[0],p=f[1];t.useEffect((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("⌘"):p(I))}),[]);var v=b(m===I?[I,"Ctrl",t.createElement(E,null)]:["Meta","Command",m],3),d=v[0],y=v[1],g=v[2];return t.createElement("button",s({type:"button",className:"DocSearch DocSearch-Button","aria-label":"".concat(l," (").concat(y,"+K)")},i,{ref:r}),t.createElement("span",{className:"DocSearch-Button-Container"},t.createElement(j,null),t.createElement("span",{className:"DocSearch-Button-Placeholder"},c)),t.createElement("span",{className:"DocSearch-Button-Keys"},null!==m&&t.createElement(t.Fragment,null,t.createElement(k,{reactsToKey:d},g),t.createElement(k,{reactsToKey:"k"},"K"))))}));function k(e){var r=e.reactsToKey,n=e.children,o=b(t.useState(!1),2),i=o[0],a=o[1];return t.useEffect((function(){if(r)return window.addEventListener("keydown",e),window.addEventListener("keyup",t),function(){window.removeEventListener("keydown",e),window.removeEventListener("keyup",t)};function e(e){e.key===r&&a(!0)}function t(e){e.key!==r&&"Meta"!==e.key||a(!1)}}),[r]),t.createElement("kbd",{className:i?"DocSearch-Button-Key DocSearch-Button-Key--pressed":"DocSearch-Button-Key"},n)}function A(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ie.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function J(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Q(e){for(var t=1;t=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(K(r),[{headers:a}]))}else e.apply(void 0,[t].concat(K(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setAuthenticatedUserToken:function(t){e("setAuthenticatedUserToken",t)},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDsAfterSearch",Z(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDs",Z(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDsAfterSearch",Z(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDs",Z(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=z(t,F);return[].concat(K(e),K(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function Y(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function $(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function X(e){return X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},X(e)}function ee(e){return function(e){if(Array.isArray(e))return te(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return te(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return te(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&ce({onItemsChange:o,items:r,insights:l,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive,o=!1;function s(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:ne(ne({},c?{clickAnalytics:!0}:{}),e?{userToken:se(e)}:{}),insights:l}})}u("addAlgoliaAgent","insights-plugin"),s(),u("onUserTokenChange",(function(e){o||s(e)})),u("getUserToken",null,(function(e,t){o||s(t)})),u("onAuthenticatedUserTokenChange",(function(e){e?(o=!0,s(e)):(o=!1,u("getUserToken",null,(function(e,t){return s(t)})))})),u("getAuthenticatedUserToken",null,(function(e,t){t&&(o=!0,s(t))})),r((function(e){var t=e.item,r=e.state,n=e.event,o=e.source;$(t)&&i({state:r,event:n,insights:l,item:t,insightsEvents:[ne({eventName:"Item Selected"},q({item:t,items:o.getItems().filter($)}))]})})),n((function(e){var t=e.item,r=e.source,n=e.state,o=e.event;$(t)&&a({state:n,event:o,insights:l,item:t,insightsEvents:[ne({eventName:"Item Active"},q({item:t,items:r.getItems().filter($)}))]})}))},onStateChange:function(e){var t=e.state;f({state:t})},__autocomplete_pluginOptions:e}}function le(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(ee(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],ee(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function se(e){return"number"==typeof e?e.toString():e}function fe(e,t){var r=t;return{then:function(t,n){return fe(e.then(pe(t,r,e),pe(n,r,e)),r)},catch:function(t){return fe(e.catch(pe(t,r,e)),r)},finally:function(t){return t&&r.onCancelList.push(t),fe(e.finally(pe(t&&function(){return r.onCancelList=[],t()},r,e)),r)},cancel:function(){r.isCanceled=!0;var e=r.onCancelList;r.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===r.isCanceled}}}function me(e){return fe(e,{isCanceled:!1,onCancelList:[]})}function pe(e,t,r){return e?function(r){return t.isCanceled?r:e(r)}:r}function ve(e,t,r,n){if(!r)return null;if(e<0&&(null===t||null!==n&&0===t))return r+e;var o=(null===t?-1:t)+e;return o<=-1||o>=r?null===n?null:0:o}function de(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function he(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(x++),plugins:o,initialState:Le({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Ce(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:L,onResolve:L};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=he(he({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return _(e)})).then((function(e){return e.map((function(e){return Le(Le({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:Le({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}function Me(e){return Me="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Me(e)}function He(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Be(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var ot,it,at,ct=null,ut=(ot=-1,it=-1,at=void 0,function(e){var t=++ot;return Promise.resolve(e).then((function(e){return at&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function ht(e){return ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ht(e)}var yt=["props","refresh","store"],gt=["inputElement","formElement","panelElement"],bt=["inputElement"],St=["inputElement","maxLength"],Ot=["source"],wt=["item","source"];function Et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function jt(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Dt(e){var t=e.props,r=e.refresh,n=e.store,o=It(e,yt);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return jt({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},It(e,gt))},getRootProps:function(e){return jt({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-controls":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return Se(t.id,"list",r)})).join(" "):void 0,"aria-labelledby":Se(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,jt({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(jt({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(jt({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},It(e,bt))},getLabelProps:function(e){return jt({htmlFor:Se(t.id,"input"),id:Se(t.id,"label")},e)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(n.getState().query))&<(jt({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var c=e||{};c.inputElement;var u=c.maxLength,l=void 0===u?512:u,s=It(c,St),f=be(n.getState()),m=function(e){return Boolean(e&&e.match(Oe))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),p=t.enterKeyHint||(null!=f&&f.itemUrl&&!m?"go":"search");return jt({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?Se(t.id,"item-".concat(n.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":n.getState().isOpen?n.getState().collections.map((function(e){var r=e.source;return Se(t.id,"list",r)})).join(" "):void 0,"aria-labelledby":Se(t.id,"label"),value:n.getState().completion||n.getState().query,id:Se(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:p,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){var i=e.currentTarget.value;t.ignoreCompositionEvents&&we(e).isComposing?o.setQuery(i):lt(jt({event:e,props:t,query:i.slice(0,l),refresh:r,store:n},o))},onCompositionEnd:function(e){lt(jt({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:r,store:n},o))},onKeyDown:function(e){we(e).isComposing||function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=dt(e,ft);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=be(o.getState()),t=r.environment.document.getElementById(Se(r.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},c=function(){var e=be(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,u=e.source;u.onActive(pt({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:u,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?lt(pt({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var u=be(o.getState()),l=u.item,s=u.itemInputValue,f=u.itemUrl,m=u.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(pt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(pt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(pt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:l,state:o.getState()});lt(pt({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(pt({event:t,item:l,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(jt({event:e,props:t,refresh:r,store:n},o))},onFocus:a,onBlur:L,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||a(r)}},s)},getPanelProps:function(e){return jt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.source,o=It(r,Ot);return jt({role:"listbox","aria-labelledby":Se(t.id,"label"),id:Se(t.id,"list",n)},o)},getItemProps:function(e){var i=e.item,a=e.source,c=It(e,wt);return jt({id:Se(t.id,"item-".concat(i.__autocomplete_id),a),role:"option","aria-selected":n.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",i.__autocomplete_id);var t=be(n.getState());if(null!==n.getState().activeItemId&&t){var a=t.item,c=t.itemInputValue,u=t.itemUrl,l=t.source;l.onActive(jt({event:e,item:a,itemInputValue:c,itemUrl:u,refresh:r,source:l,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var c=a.getItemInputValue({item:i,state:n.getState()}),u=a.getItemUrl({item:i,state:n.getState()});(u?Promise.resolve():lt(jt({event:e,nextState:{isOpen:!1},props:t,query:c,refresh:r,store:n},o))).then((function(){a.onSelect(jt({event:e,item:i,itemInputValue:c,itemUrl:u,refresh:r,source:a,state:n.getState()},o))}))}},c)}}}function kt(e){return kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},kt(e)}function At(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _t(e){for(var t=1;t0&&t.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},t.createElement("p",{className:"DocSearch-Help"},u,":"),t.createElement("ul",null,p.slice(0,3).reduce((function(e,r){return[].concat(S(e),[t.createElement("li",{key:r},t.createElement("button",{className:"DocSearch-Prefill",key:r,type:"button",onClick:function(){o.setQuery(r.toLowerCase()+" "),o.refresh(),o.inputRef.current.focus()}},r))])}),[]))),o.getMissingResultsUrl&&t.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),t.createElement("a",{href:o.getMissingResultsUrl({query:o.state.query}),target:"_blank",rel:"noopener noreferrer"},m)))}var ur=["hit","attribute","tagName"];function lr(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function sr(e){var r=e.hit,n=e.attribute,o=e.tagName,i=void 0===o?"span":o,a=h(e,ur);return t.createElement(i,d(d({},a),{},{dangerouslySetInnerHTML:{__html:lr(r,"_snippetResult.".concat(n,".value"))||lr(r,n)}}))}function fr(e){return e.collection&&0!==e.collection.items.length?t.createElement("section",{className:"DocSearch-Hits"},t.createElement("div",{className:"DocSearch-Hit-source"},e.title),t.createElement("ul",e.getListProps(),e.collection.items.map((function(r,n){return t.createElement(mr,s({key:[e.title,r.objectID].join(":"),item:r,index:n},e))})))):null}function mr(e){var r=e.item,n=e.index,o=e.renderIcon,i=e.renderAction,a=e.getItemProps,c=e.onItemClick,u=e.collection,l=e.hitComponent,f=b(t.useState(!1),2),m=f[0],p=f[1],v=b(t.useState(!1),2),d=v[0],h=v[1],y=t.useRef(null),g=l;return t.createElement("li",s({className:["DocSearch-Hit",r.__docsearch_parent&&"DocSearch-Hit--Child",m&&"DocSearch-Hit--deleting",d&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){y.current&&y.current()}},a({item:r,source:u.source,onClick:function(e){c(r,e)}})),t.createElement(g,{hit:r},t.createElement("div",{className:"DocSearch-Hit-Container"},o({item:r,index:n}),r.hierarchy[r.type]&&"lvl1"===r.type&&t.createElement("div",{className:"DocSearch-Hit-content-wrapper"},t.createElement(sr,{className:"DocSearch-Hit-title",hit:r,attribute:"hierarchy.lvl1"}),r.content&&t.createElement(sr,{className:"DocSearch-Hit-path",hit:r,attribute:"content"})),r.hierarchy[r.type]&&("lvl2"===r.type||"lvl3"===r.type||"lvl4"===r.type||"lvl5"===r.type||"lvl6"===r.type)&&t.createElement("div",{className:"DocSearch-Hit-content-wrapper"},t.createElement(sr,{className:"DocSearch-Hit-title",hit:r,attribute:"hierarchy.".concat(r.type)}),t.createElement(sr,{className:"DocSearch-Hit-path",hit:r,attribute:"hierarchy.lvl1"})),"content"===r.type&&t.createElement("div",{className:"DocSearch-Hit-content-wrapper"},t.createElement(sr,{className:"DocSearch-Hit-title",hit:r,attribute:"content"}),t.createElement(sr,{className:"DocSearch-Hit-path",hit:r,attribute:"hierarchy.lvl1"})),i({item:r,runDeleteTransition:function(e){p(!0),y.current=e},runFavoriteTransition:function(e){h(!0),y.current=e}}))))}function pr(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}function vr(e){return e}function dr(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function hr(){}var yr=/(|<\/mark>)/g,gr=RegExp(yr.source);function br(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0;return o?o.value&&gr.test(o.value)?o.value.replace(yr,""):o.value:e.hierarchy.lvl0}function Sr(e){return t.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(r){if(0===r.items.length)return null;var n=br(r.items[0]);return t.createElement(fr,s({},e,{key:r.source.sourceId,title:n,collection:r,renderIcon:function(e){var n,o=e.item,i=e.index;return t.createElement(t.Fragment,null,o.__docsearch_parent&&t.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},t.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},o.__docsearch_parent!==(null===(n=r.items[i+1])||void 0===n?void 0:n.__docsearch_parent)?t.createElement("path",{d:"M8 6v21M20 27H8.3"}):t.createElement("path",{d:"M8 6v42M20 27H8.3"}))),t.createElement("div",{className:"DocSearch-Hit-icon"},t.createElement(Xt,{type:o.type})))},renderAction:function(){return t.createElement("div",{className:"DocSearch-Hit-action"},t.createElement(Yt,null))}}))})),e.resultsFooterComponent&&t.createElement("section",{className:"DocSearch-HitsFooter"},t.createElement(e.resultsFooterComponent,{state:e.state})))}var Or=["translations"];function wr(e){var r=e.translations,n=void 0===r?{}:r,o=h(e,Or),i=n.recentSearchesTitle,a=void 0===i?"Recent":i,c=n.noRecentSearchesText,u=void 0===c?"No recent searches":c,l=n.saveRecentSearchButtonTitle,f=void 0===l?"Save this search":l,m=n.removeRecentSearchButtonTitle,p=void 0===m?"Remove this search from history":m,v=n.favoriteSearchesTitle,d=void 0===v?"Favorite":v,y=n.removeFavoriteSearchButtonTitle,g=void 0===y?"Remove this search from favorites":y;return"idle"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:t.createElement("div",{className:"DocSearch-StartScreen"},t.createElement("p",{className:"DocSearch-Help"},u)):!1===o.hasCollections?null:t.createElement("div",{className:"DocSearch-Dropdown-Container"},t.createElement(fr,s({},o,{title:a,collection:o.state.collections[0],renderIcon:function(){return t.createElement("div",{className:"DocSearch-Hit-icon"},t.createElement(Zt,null))},renderAction:function(e){var r=e.item,n=e.runFavoriteTransition,i=e.runDeleteTransition;return t.createElement(t.Fragment,null,t.createElement("div",{className:"DocSearch-Hit-action"},t.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.add(r),o.recentSearches.remove(r),o.refresh()}))}},t.createElement(rr,null))),t.createElement("div",{className:"DocSearch-Hit-action"},t.createElement("button",{className:"DocSearch-Hit-action-button",title:p,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),i((function(){o.recentSearches.remove(r),o.refresh()}))}},t.createElement(Gt,null))))}})),t.createElement(fr,s({},o,{title:d,collection:o.state.collections[1],renderIcon:function(){return t.createElement("div",{className:"DocSearch-Hit-icon"},t.createElement(rr,null))},renderAction:function(e){var r=e.item,n=e.runDeleteTransition;return t.createElement("div",{className:"DocSearch-Hit-action"},t.createElement("button",{className:"DocSearch-Hit-action-button",title:g,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.remove(r),o.refresh()}))}},t.createElement(Gt,null)))}})))}var Er=["translations"],jr=t.memo((function(e){var r=e.translations,n=void 0===r?{}:r,o=h(e,Er);if("error"===o.state.status)return t.createElement(ir,{translations:null==n?void 0:n.errorScreen});var i=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===i?t.createElement(cr,s({},o,{translations:null==n?void 0:n.noResultsScreen})):t.createElement(Sr,o):t.createElement(wr,s({},o,{hasCollections:i,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),Pr=["translations"];function Ir(e){var r=e.translations,n=void 0===r?{}:r,o=h(e,Pr),i=n.resetButtonTitle,a=void 0===i?"Clear the query":i,c=n.resetButtonAriaLabel,u=void 0===c?"Clear the query":c,l=n.cancelButtonText,f=void 0===l?"Cancel":l,m=n.cancelButtonAriaLabel,p=void 0===m?"Cancel":m,v=n.searchInputLabel,d=void 0===v?"Search":v,y=o.getFormProps({inputElement:o.inputRef.current}).onReset;return t.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),t.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),t.createElement(t.Fragment,null,t.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:y},t.createElement("label",s({className:"DocSearch-MagnifierLabel"},o.getLabelProps()),t.createElement(j,null),t.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},d)),t.createElement("div",{className:"DocSearch-LoadingIndicator"},t.createElement(Wt,null)),t.createElement("input",s({className:"DocSearch-Input",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),t.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":u,hidden:!o.state.query},t.createElement(Gt,null))),t.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":p,onClick:o.onClose},f))}var Dr=["_highlightResult","_snippetResult"];function kr(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function Ar(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=kr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e;t._highlightResult,t._snippetResult;var r=h(t,Dr),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function _r(e){var t,r="algolia-client-js-".concat(e.key);function n(){return void 0===t&&(t=e.localStorage||window.localStorage),t}function o(){return JSON.parse(n().getItem(r)||"{}")}function i(e){n().setItem(r,JSON.stringify(e))}return{get:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r,n,a;return r=e.timeToLive?1e3*e.timeToLive:null,n=o(),i(a=Object.fromEntries(Object.entries(n).filter((function(e){return void 0!==b(e,2)[1].timestamp})))),r&&i(Object.fromEntries(Object.entries(a).filter((function(e){var t=b(e,2)[1],n=(new Date).getTime();return!(t.timestamp+r2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return b(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,o).catch((function(){return xr({caches:t}).get(e,n,o)}))},set:function(e,n){return r.set(e,n).catch((function(){return xr({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return xr({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return xr({caches:t}).clear()}))}}}function Cr(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);var a=n();return a.then((function(e){return o.miss(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function Tr(e){var t=e.algoliaAgents,r=e.client,n=e.version,o=function(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}(n).add({segment:r,version:n});return t.forEach((function(e){return o.add(e)})),o}var Nr=12e4;function Lr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"up",r=Date.now();return d(d({},e),{},{status:t,lastUpdate:r,isUp:function(){return"up"===t||Date.now()-r>Nr},isTimedOut:function(){return"timed out"===t&&Date.now()-r<=Nr}})}var Rr=function(e){function t(e,r){var n;return c(this,t),l(n=a(this,t,[e]),"name","AlgoliaError"),r&&(n.name=r),n}return m(t,e),u(t)}(w(Error)),qr=function(e){function t(e,r,n){var o;return c(this,t),l(o=a(this,t,[e,n]),"stackTrace",void 0),o.stackTrace=r,o}return m(t,e),u(t)}(Rr),Mr=function(e){function t(e){return c(this,t),a(this,t,["Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support.",e,"RetryError"])}return m(t,e),u(t)}(qr),Hr=function(e){function t(e,r,n){var o,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ApiError";return c(this,t),l(o=a(this,t,[e,n,i]),"status",void 0),o.status=r,o}return m(t,e),u(t)}(qr),Br=function(e){function t(e,r){var n;return c(this,t),l(n=a(this,t,[e,"DeserializationError"]),"response",void 0),n.response=r,n}return m(t,e),u(t)}(Rr),Fr=function(e){function t(e,r,n,o){var i;return c(this,t),l(i=a(this,t,[e,r,o,"DetailedApiError"]),"error",void 0),i.error=n,i}return m(t,e),u(t)}(Hr);function Ur(e,t,r){var n,o=(n=r,Object.keys(n).filter((function(e){return void 0!==n[e]})).sort().map((function(e){return"".concat(e,"=").concat(encodeURIComponent("[object Array]"===Object.prototype.toString.call(n[e])?n[e].join(","):n[e]).replace(/\+/g,"%20"))})).join("&")),i="".concat(e.protocol,"://").concat(e.url).concat(e.port?":".concat(e.port):"","/").concat("/"===t.charAt(0)?t.substring(1):t);return o.length&&(i+="?".concat(o)),i}function Kr(e,t){if("GET"!==e.method&&(void 0!==e.data||void 0!==t.data)){var r=Array.isArray(e.data)?e.data:d(d({},e.data),t.data);return JSON.stringify(r)}}function Vr(e,t,r){var n=d(d(d({Accept:"application/json"},e),t),r),o={};return Object.keys(n).forEach((function(e){var t=n[e];o[e.toLowerCase()]=t})),o}function zr(e){try{return JSON.parse(e.content)}catch(t){throw new Br(t.message,e)}}function Jr(e,t){var r=e.content,n=e.status;try{var o=JSON.parse(r);return"error"in o?new Fr(o.message,n,o.error,t):new Hr(o.message,n,t)}catch(e){}return new Hr(r,n,t)}function Qr(e){return e.map((function(e){return Wr(e)}))}function Wr(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return d(d({},e),{},{request:d(d({},e.request),{},{headers:d(d({},e.request.headers),t)})})}var Zr=["appId","apiKey","authMode","algoliaAgents"],Gr=["params"],Yr="5.14.2";function $r(e){return[{url:"".concat(e,"-dsn.algolia.net"),accept:"read",protocol:"https"},{url:"".concat(e,".algolia.net"),accept:"write",protocol:"https"}].concat(function(e){for(var t=e,r=e.length-1;r>0;r--){var n=Math.floor(Math.random()*(r+1)),o=e[r];t[r]=e[n],t[n]=o}return t}([{url:"".concat(e,"-1.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-2.algolianet.com"),accept:"readWrite",protocol:"https"},{url:"".concat(e,"-3.algolianet.com"),accept:"readWrite",protocol:"https"}]))}function Xr(e){var t=e.appId,r=e.apiKey,n=e.authMode,o=e.algoliaAgents,a=h(e,Zr),c=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"WithinHeaders",n={"x-algolia-api-key":t,"x-algolia-application-id":e};return{headers:function(){return"WithinHeaders"===r?n:{}},queryParameters:function(){return"WithinQueryParameters"===r?n:{}}}}(t,r,n),u=function(e){var t=e.hosts,r=e.hostsCache,n=e.baseHeaders,o=e.logger,a=e.baseQueryParameters,c=e.algoliaAgent,u=e.timeouts,l=e.requester,s=e.requestsCache,f=e.responsesCache;function m(e){return p.apply(this,arguments)}function p(){return(p=i(y().mark((function e(t){var n,o,i,a,c;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map((function(e){return r.get(e,(function(){return Promise.resolve(Lr(e))}))})));case 2:return n=e.sent,o=n.filter((function(e){return e.isUp()})),i=n.filter((function(e){return e.isTimedOut()})),a=[].concat(S(o),S(i)),c=a.length>0?a:t,e.abrupt("return",{hosts:c,getTimeout:function(e,t){return(0===i.length&&0===e?1:i.length+3+e)*t}});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function v(e,t){return h.apply(this,arguments)}function h(){return h=i(y().mark((function e(s,f){var p,v,h,g,b,O,w,E,j,P,I,D,k,A=arguments;return y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(p=!(A.length>2&&void 0!==A[2])||A[2],v=[],h=Kr(s,f),g=Vr(n,s.headers,f.headers),b="GET"===s.method?d(d({},s.data),f.data):{},O=d(d(d({},a),s.queryParameters),b),c.value&&(O["x-algolia-agent"]=c.value),f&&f.queryParameters)for(w=0,E=Object.keys(f.queryParameters);w1&&void 0!==arguments[1]?arguments[1]:{},r=e.useReadTransporter||"GET"===e.method;if(!r)return v(e,t,r);var o=function(){return v(e,t)};if(!0!==(t.cacheable||e.cacheable))return o();var i={request:e,requestOptions:t,transporter:{queryParameters:a,headers:n}};return f.get(i,(function(){return s.get(i,(function(){return s.set(i,o()).then((function(e){return Promise.all([s.delete(i),e])}),(function(e){return Promise.all([s.delete(i),Promise.reject(e)])})).then((function(e){var t=b(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.set(i,e)}})},requestsCache:s,responsesCache:f}}(d(d({hosts:$r(t)},a),{},{algoliaAgent:Tr({algoliaAgents:o,client:"Lite",version:Yr}),baseHeaders:d(d({"content-type":"text/plain"},c.headers()),a.baseHeaders),baseQueryParameters:d(d({},c.queryParameters()),a.baseQueryParameters)}));return{transporter:u,appId:t,clearCache:function(){return Promise.all([u.requestsCache.clear(),u.responsesCache.clear()]).then((function(){}))},get _ua(){return u.algoliaAgent.value},addAlgoliaAgent:function(e,t){u.algoliaAgent.add({segment:e,version:t})},setClientApiKey:function(e){var t=e.apiKey;n&&"WithinHeaders"!==n?u.baseQueryParameters["x-algolia-api-key"]=t:u.baseHeaders["x-algolia-api-key"]=t},searchForHits:function(e,t){return this.search(e,t)},searchForFacets:function(e,t){return this.search(e,t)},customPost:function(e,t){var r=e.path,n=e.parameters,o=e.body;if(!r)throw new Error("Parameter `path` is required when calling `customPost`.");var i={method:"POST",path:"/{path}".replace("{path}",r),queryParameters:n||{},headers:{},data:o||{}};return u.request(i,t)},getRecommendations:function(e,t){e&&Array.isArray(e)&&(e={requests:e});if(!e)throw new Error("Parameter `getRecommendationsParams` is required when calling `getRecommendations`.");if(!e.requests)throw new Error("Parameter `getRecommendationsParams.requests` is required when calling `getRecommendations`.");var r={method:"POST",path:"/1/indexes/*/recommendations",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(r,t)},search:function(e,t){if(e&&Array.isArray(e)){var r={requests:e.map((function(e){var t=e.params,r=h(e,Gr);return"facet"===r.type?d(d(d({},r),t),{},{type:"facet"}):d(d(d({},r),t),{},{facet:void 0,maxFacetHits:void 0,facetQuery:void 0})}))};e=r}if(!e)throw new Error("Parameter `searchMethodParams` is required when calling `search`.");if(!e.requests)throw new Error("Parameter `searchMethodParams.requests` is required when calling `search`.");var n={method:"POST",path:"/1/indexes/*/queries",queryParameters:{},headers:{},data:e,useReadTransporter:!0,cacheable:!0};return u.request(n,t)}}}var en="3.8.2";function tn(e,r,n){return t.useMemo((function(){var t=function(e,t,r){if(!e||"string"!=typeof e)throw new Error("`appId` is missing.");if(!t||"string"!=typeof t)throw new Error("`apiKey` is missing.");return Xr(d({appId:e,apiKey:t,timeouts:{connect:1e3,read:2e3,write:3e4},logger:{debug:function(e,t){return Promise.resolve()},info:function(e,t){return Promise.resolve()},error:function(e,t){return Promise.resolve()}},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,o=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),e)},i=o(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(i),n=o(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(i),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(i),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},algoliaAgents:[{segment:"Browser"}],authMode:"WithinQueryParameters",responsesCache:Cr(),requestsCache:Cr({serializable:!1}),hostsCache:xr({caches:[_r({key:"".concat(Yr,"-").concat(e)}),Cr()]})},r))}(e,r);return t.addAlgoliaAgent("docsearch",en),!1===/docsearch.js \(.*\)/.test(t.transporter.algoliaAgent.value)&&t.addAlgoliaAgent("docsearch-react",en),n(t)}),[e,r,n])}var rn=["footer","searchBox"];function nn(e){var r=e.appId,n=e.apiKey,o=e.indexName,i=e.placeholder,a=void 0===i?"Search docs":i,c=e.searchParameters,u=e.maxResultsPerGroup,l=e.onClose,f=void 0===l?hr:l,m=e.transformItems,p=void 0===m?vr:m,v=e.hitComponent,y=void 0===v?Qt:v,g=e.resultsFooterComponent,S=void 0===g?function(){return null}:g,O=e.navigator,w=e.initialScrollY,E=void 0===w?0:w,j=e.transformSearchClient,P=void 0===j?vr:j,I=e.disableUserPersonalization,D=void 0!==I&&I,k=e.initialQuery,A=void 0===k?"":k,_=e.translations,x=void 0===_?{}:_,C=e.getMissingResultsUrl,T=e.insights,N=void 0!==T&&T,L=x.footer,R=x.searchBox,q=h(x,rn),M=b(t.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),H=M[0],B=M[1],F=t.useRef(null),U=t.useRef(null),K=t.useRef(null),V=t.useRef(null),z=t.useRef(null),J=t.useRef(10),Q=t.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,W=t.useRef(A||Q).current,Z=tn(r,n,P),G=t.useRef(Ar({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(o),limit:10})).current,Y=t.useRef(Ar({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(o),limit:0===G.getAll().length?7:4})).current,$=t.useCallback((function(e){if(!D){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===G.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Y.add(t)}}),[G,Y,D]),X=t.useCallback((function(e){if(H.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};H.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[H.context.algoliaInsightsPlugin]),ee=t.useMemo((function(){return Kt({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:W,context:{searchSuggestions:[]}},insights:N,navigator:O,onStateChange:function(e){B(e.state)},getSources:function(e){var t=e.query,i=e.state,a=e.setContext,l=e.setStatus;if(!t)return D?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;$(t),dr(r)||f()},getItemUrl:function(e){return e.item.url},getItems:function(){return Y.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;$(t),dr(r)||f()},getItemUrl:function(e){return e.item.url},getItems:function(){return G.getAll()}}];var s=Boolean(N);return Z.search({requests:[d({query:t,indexName:o,attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(J.current),"hierarchy.lvl2:".concat(J.current),"hierarchy.lvl3:".concat(J.current),"hierarchy.lvl4:".concat(J.current),"hierarchy.lvl5:".concat(J.current),"hierarchy.lvl6:".concat(J.current),"content:".concat(J.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:s},c)]}).catch((function(e){throw"RetryError"===e.name&&l("error"),e})).then((function(e){var t=e.results[0],c=t.hits,l=t.nbHits,m=pr(c,(function(e){return br(e)}),u);i.context.searchSuggestions.length0&&(ne(),z.current&&z.current.focus())}),[W,ne]),t.useEffect((function(){function e(){if(U.current){var e=.01*window.innerHeight;U.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),t.createElement("div",s({ref:F},re({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===H.status&&"DocSearch-Container--Stalled","error"===H.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&f()}}),t.createElement("div",{className:"DocSearch-Modal",ref:U},t.createElement("header",{className:"DocSearch-SearchBar",ref:K},t.createElement(Ir,s({},ee,{state:H,autoFocus:0===W.length,inputRef:z,isFromSelection:Boolean(W)&&W===Q,translations:R,onClose:f}))),t.createElement("div",{className:"DocSearch-Dropdown",ref:V},t.createElement(jr,s({},ee,{indexName:o,state:H,hitComponent:y,resultsFooterComponent:S,disableUserPersonalization:D,recentSearches:Y,favoriteSearches:G,inputRef:z,translations:q,getMissingResultsUrl:C,onItemClick:function(e,t){X(e),$(e),dr(t)||f()}}))),t.createElement("footer",{className:"DocSearch-Footer"},t.createElement(Jt,{translations:L}))))}function on(e){var r=e.isOpen,n=e.onOpen,o=e.onClose,i=e.onInput,a=e.searchButtonRef;t.useEffect((function(){function e(e){var t;if("Escape"===e.code&&r||"k"===(null===(t=e.key)||void 0===t?void 0:t.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,r=t.tagName;return t.isContentEditable||"INPUT"===r||"SELECT"===r||"TEXTAREA"===r}(e)&&"/"===e.key&&!r)return e.preventDefault(),void(r?o():document.body.classList.contains("DocSearch--active")||n());a&&a.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[r,n,o,i,a])}e.DocSearch=function(e){var n,o,i=t.useRef(null),a=b(t.useState(!1),2),c=a[0],u=a[1],l=b(t.useState((null==e?void 0:e.initialQuery)||void 0),2),f=l[0],m=l[1],p=t.useCallback((function(){u(!0)}),[u]),v=t.useCallback((function(){u(!1),m(null==e?void 0:e.initialQuery)}),[u,e.initialQuery]);return on({isOpen:c,onOpen:p,onClose:v,onInput:t.useCallback((function(e){u(!0),m(e.key)}),[u,m]),searchButtonRef:i}),t.createElement(t.Fragment,null,t.createElement(D,{ref:i,translations:null==e||null===(n=e.translations)||void 0===n?void 0:n.button,onClick:p}),c&&r.createPortal(t.createElement(nn,s({},e,{initialScrollY:window.scrollY,initialQuery:f,translations:null==e||null===(o=e.translations)||void 0===o?void 0:o.modal,onClose:v})),document.body))},e.DocSearchButton=D,e.DocSearchModal=nn,e.useDocSearchKeyboardEvents=on,e.version=en})); //# sourceMappingURL=index.js.map diff --git a/node_modules/@docsearch/react/dist/umd/index.js.map b/node_modules/@docsearch/react/dist/umd/index.js.map index 4e33772..9e5c03d 100644 --- a/node_modules/@docsearch/react/dist/umd/index.js.map +++ b/node_modules/@docsearch/react/dist/umd/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../../src/icons/ControlKeyIcon.tsx","../../src/icons/SearchIcon.tsx","../../src/DocSearchButton.tsx","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/isEqual.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/version.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createClickedEvent.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isModernInsightsClient.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createSearchInsightsApi.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createViewedEvents.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/isAlgoliaInsightsHit.js","../../../../node_modules/@algolia/autocomplete-plugin-algolia-insights/dist/esm/createAlgoliaInsightsPlugin.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../../../node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNextActiveItemId.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isSamsung.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getDefaultProps.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/reshape.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/resolve.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/mapToAlgoliaResponse.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/onInput.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createConcurrentSafePromise.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/onKeyDown.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/metadata.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/getCompletion.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js","../../../../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","../../src/AlgoliaLogo.tsx","../../src/Footer.tsx","../../src/Hit.tsx","../../src/icons/LoadingIcon.tsx","../../src/icons/RecentIcon.tsx","../../src/icons/ResetIcon.tsx","../../src/icons/SelectIcon.tsx","../../src/icons/SourceIcon.tsx","../../src/icons/StarIcon.tsx","../../src/icons/ErrorIcon.tsx","../../src/icons/NoResultsIcon.tsx","../../src/ErrorScreen.tsx","../../src/NoResultsScreen.tsx","../../src/Snippet.tsx","../../src/Results.tsx","../../src/utils/groupBy.ts","../../src/utils/identity.ts","../../src/utils/isModifierEvent.ts","../../src/utils/noop.ts","../../src/utils/removeHighlightTags.ts","../../src/ResultsScreen.tsx","../../src/StartScreen.tsx","../../src/ScreenState.tsx","../../src/SearchBox.tsx","../../src/constants.ts","../../src/stored-searches.ts","../../node_modules/algoliasearch/dist/algoliasearch-lite.esm.browser.js","../../src/version.ts","../../src/DocSearchModal.tsx","../../src/useSearchClient.ts","../../src/useTouchEvents.ts","../../src/useTrapFocus.ts","../../src/useDocSearchKeyboardEvents.ts","../../src/DocSearch.tsx"],"sourcesContent":["import React from 'react';\n\nexport function ControlKeyIcon() {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function SearchIcon() {\n return (\n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\n\nimport { ControlKeyIcon } from './icons/ControlKeyIcon';\nimport { SearchIcon } from './icons/SearchIcon';\n\nexport type ButtonTranslations = Partial<{\n buttonText: string;\n buttonAriaLabel: string;\n}>;\n\nexport type DocSearchButtonProps = React.ComponentProps<'button'> & {\n translations?: ButtonTranslations;\n};\n\nconst ACTION_KEY_DEFAULT = 'Ctrl' as const;\nconst ACTION_KEY_APPLE = '⌘' as const;\n\nfunction isAppleDevice() {\n return /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n}\n\nexport const DocSearchButton = React.forwardRef<\n HTMLButtonElement,\n DocSearchButtonProps\n>(({ translations = {}, ...props }, ref) => {\n const { buttonText = 'Search', buttonAriaLabel = 'Search' } = translations;\n\n const [key, setKey] = useState<\n typeof ACTION_KEY_APPLE | typeof ACTION_KEY_DEFAULT | null\n >(null);\n\n useEffect(() => {\n if (typeof navigator !== 'undefined') {\n isAppleDevice() ? setKey(ACTION_KEY_APPLE) : setKey(ACTION_KEY_DEFAULT);\n }\n }, []);\n\n return (\n \n \n \n {buttonText}\n \n\n \n {key !== null && (\n <>\n \n {key === ACTION_KEY_DEFAULT ? : key}\n \n K\n \n )}\n \n \n );\n});\n","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","export function flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\n}];","export var version = '1.9.3';","export function createClickedEvent(_ref) {\n var item = _ref.item,\n items = _ref.items;\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex(function (x) {\n return x.objectID === item.objectID;\n })],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete']\n };\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client) {\n var _split$map = (client.version || '').split('.').map(Number),\n _split$map2 = _slicedToArray(_split$map, 2),\n major = _split$map2[0],\n minor = _split$map2[1];\n\n /* eslint-disable @typescript-eslint/camelcase */\n var v3 = major >= 3;\n var v2_4 = major === 2 && minor >= 4;\n var v1_10 = major === 1 && minor >= 10;\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}","var _excluded = [\"items\"],\n _excluded2 = [\"items\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { isModernInsightsClient } from './isModernInsightsClient';\nfunction chunk(item) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n for (var i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push(_objectSpread(_objectSpread({}, item), {}, {\n objectIDs: item.objectIDs.slice(i, i + chunkSize)\n }));\n }\n return chunks;\n}\nfunction mapToInsightsParamsApi(params) {\n return params.map(function (_ref) {\n var items = _ref.items,\n param = _objectWithoutProperties(_ref, _excluded);\n return _objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref2) {\n var objectID = _ref2.objectID;\n return objectID;\n })) || param.objectIDs\n });\n });\n}\nexport function createSearchInsightsApi(searchInsights) {\n var canSendHeaders = isModernInsightsClient(searchInsights);\n function sendToInsights(method, payloads, items) {\n if (canSendHeaders && typeof items !== 'undefined') {\n var _items$0$__autocomple = items[0].__autocomplete_algoliaCredentials,\n appId = _items$0$__autocomple.appId,\n apiKey = _items$0$__autocomple.apiKey;\n var headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey\n };\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads), [{\n headers: headers\n }]));\n } else {\n searchInsights.apply(void 0, [method].concat(_toConsumableArray(payloads)));\n }\n }\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init: function init(appId, apiKey) {\n searchInsights('init', {\n appId: appId,\n apiKey: apiKey\n });\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken: function setUserToken(userToken) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch: function clickedObjectIDsAfterSearch() {\n for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {\n params[_key] = arguments[_key];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs: function clickedObjectIDs() {\n for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n params[_key2] = arguments[_key2];\n }\n if (params.length > 0) {\n sendToInsights('clickedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters: function clickedFilters() {\n for (var _len3 = arguments.length, params = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n params[_key3] = arguments[_key3];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['clickedFilters'].concat(params));\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch: function convertedObjectIDsAfterSearch() {\n for (var _len4 = arguments.length, params = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n params[_key4] = arguments[_key4];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDsAfterSearch', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs: function convertedObjectIDs() {\n for (var _len5 = arguments.length, params = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n params[_key5] = arguments[_key5];\n }\n if (params.length > 0) {\n sendToInsights('convertedObjectIDs', mapToInsightsParamsApi(params), params[0].items);\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters: function convertedFilters() {\n for (var _len6 = arguments.length, params = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n params[_key6] = arguments[_key6];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['convertedFilters'].concat(params));\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs: function viewedObjectIDs() {\n for (var _len7 = arguments.length, params = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n params[_key7] = arguments[_key7];\n }\n if (params.length > 0) {\n params.reduce(function (acc, _ref3) {\n var items = _ref3.items,\n param = _objectWithoutProperties(_ref3, _excluded2);\n return [].concat(_toConsumableArray(acc), _toConsumableArray(chunk(_objectSpread(_objectSpread({}, param), {}, {\n objectIDs: (items === null || items === void 0 ? void 0 : items.map(function (_ref4) {\n var objectID = _ref4.objectID;\n return objectID;\n })) || param.objectIDs\n })).map(function (payload) {\n return {\n items: items,\n payload: payload\n };\n })));\n }, []).forEach(function (_ref5) {\n var items = _ref5.items,\n payload = _ref5.payload;\n return sendToInsights('viewedObjectIDs', [payload], items);\n });\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters: function viewedFilters() {\n for (var _len8 = arguments.length, params = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n params[_key8] = arguments[_key8];\n }\n if (params.length > 0) {\n searchInsights.apply(void 0, ['viewedFilters'].concat(params));\n }\n }\n };\n}","export function createViewedEvents(_ref) {\n var items = _ref.items;\n var itemsByIndexName = items.reduce(function (acc, current) {\n var _acc$current$__autoco;\n acc[current.__autocomplete_indexName] = ((_acc$current$__autoco = acc[current.__autocomplete_indexName]) !== null && _acc$current$__autoco !== void 0 ? _acc$current$__autoco : []).concat(current);\n return acc;\n }, {});\n return Object.keys(itemsByIndexName).map(function (indexName) {\n var items = itemsByIndexName[indexName];\n return {\n index: indexName,\n items: items,\n algoliaSource: ['autocomplete']\n };\n });\n}","export function isAlgoliaInsightsHit(hit) {\n return hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createRef, debounce, isEqual, noop, safelyRunOnBrowser } from '@algolia/autocomplete-shared';\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nvar VIEW_EVENT_DELAY = 400;\nvar ALGOLIA_INSIGHTS_VERSION = '2.6.0';\nvar ALGOLIA_INSIGHTS_SRC = \"https://cdn.jsdelivr.net/npm/search-insights@\".concat(ALGOLIA_INSIGHTS_VERSION, \"/dist/search-insights.min.js\");\nvar sendViewedObjectIDs = debounce(function (_ref) {\n var onItemsChange = _ref.onItemsChange,\n items = _ref.items,\n insights = _ref.insights,\n state = _ref.state;\n onItemsChange({\n insights: insights,\n insightsEvents: createViewedEvents({\n items: items\n }).map(function (event) {\n return _objectSpread({\n eventName: 'Items Viewed'\n }, event);\n }),\n state: state\n });\n}, VIEW_EVENT_DELAY);\nexport function createAlgoliaInsightsPlugin(options) {\n var _getOptions = getOptions(options),\n providedInsightsClient = _getOptions.insightsClient,\n onItemsChange = _getOptions.onItemsChange,\n onSelectEvent = _getOptions.onSelect,\n onActiveEvent = _getOptions.onActive;\n var insightsClient = providedInsightsClient;\n if (!providedInsightsClient) {\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n var pointer = window.AlgoliaAnalyticsObject || 'aa';\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n if (!window[pointer]) {\n window[pointer] = function () {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n window[pointer].queue.push(args);\n };\n }\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n insightsClient = window[pointer];\n loadInsights(window);\n }\n });\n }\n var insights = createSearchInsightsApi(insightsClient);\n var previousItems = createRef([]);\n var debouncedOnStateChange = debounce(function (_ref3) {\n var state = _ref3.state;\n if (!state.isOpen) {\n return;\n }\n var items = state.collections.reduce(function (acc, current) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(current.items));\n }, []).filter(isAlgoliaInsightsHit);\n if (!isEqual(previousItems.current.map(function (x) {\n return x.objectID;\n }), items.map(function (x) {\n return x.objectID;\n }))) {\n previousItems.current = items;\n if (items.length > 0) {\n sendViewedObjectIDs({\n onItemsChange: onItemsChange,\n items: items,\n insights: insights,\n state: state\n });\n }\n }\n }, 0);\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe: function subscribe(_ref4) {\n var setContext = _ref4.setContext,\n onSelect = _ref4.onSelect,\n onActive = _ref4.onActive;\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n clickAnalytics: true\n },\n insights: insights\n }\n });\n onSelect(function (_ref5) {\n var item = _ref5.item,\n state = _ref5.state,\n event = _ref5.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onSelectEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Selected'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n onActive(function (_ref6) {\n var item = _ref6.item,\n state = _ref6.state,\n event = _ref6.event;\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n onActiveEvent({\n state: state,\n event: event,\n insights: insights,\n item: item,\n insightsEvents: [_objectSpread({\n eventName: 'Item Active'\n }, createClickedEvent({\n item: item,\n items: previousItems.current\n }))]\n });\n });\n },\n onStateChange: function onStateChange(_ref7) {\n var state = _ref7.state;\n debouncedOnStateChange({\n state: state\n });\n },\n __autocomplete_pluginOptions: options\n };\n}\nfunction getOptions(options) {\n return _objectSpread({\n onItemsChange: function onItemsChange(_ref8) {\n var insights = _ref8.insights,\n insightsEvents = _ref8.insightsEvents;\n insights.viewedObjectIDs.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onSelect: function onSelect(_ref9) {\n var insights = _ref9.insights,\n insightsEvents = _ref9.insightsEvents;\n insights.clickedObjectIDsAfterSearch.apply(insights, _toConsumableArray(insightsEvents.map(function (event) {\n return _objectSpread(_objectSpread({}, event), {}, {\n algoliaSource: [].concat(_toConsumableArray(event.algoliaSource || []), ['autocomplete-internal'])\n });\n })));\n },\n onActive: noop\n }, options);\n}\nfunction loadInsights(environment) {\n var errorMessage = \"[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete\";\n try {\n var script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n script.onerror = function () {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","function createInternalCancelablePromise(promise, initialState) {\n var state = initialState;\n return {\n then: function then(onfulfilled, onrejected) {\n return createInternalCancelablePromise(promise.then(createCallback(onfulfilled, state, promise), createCallback(onrejected, state, promise)), state);\n },\n catch: function _catch(onrejected) {\n return createInternalCancelablePromise(promise.catch(createCallback(onrejected, state, promise)), state);\n },\n finally: function _finally(onfinally) {\n if (onfinally) {\n state.onCancelList.push(onfinally);\n }\n return createInternalCancelablePromise(promise.finally(createCallback(onfinally && function () {\n state.onCancelList = [];\n return onfinally();\n }, state, promise)), state);\n },\n cancel: function cancel() {\n state.isCanceled = true;\n var callbacks = state.onCancelList;\n state.onCancelList = [];\n callbacks.forEach(function (callback) {\n callback();\n });\n },\n isCanceled: function isCanceled() {\n return state.isCanceled === true;\n }\n };\n}\nexport function createCancelablePromise(executor) {\n return createInternalCancelablePromise(new Promise(function (resolve, reject) {\n return executor(resolve, reject);\n }), {\n isCanceled: false,\n onCancelList: []\n });\n}\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\n return onResult(arg);\n };\n}","/**\n * Returns the next active item ID from the current state.\n *\n * We allow circular keyboard navigation from the base index.\n * The base index can either be `null` (nothing is highlighted) or `0`\n * (the first item is highlighted).\n * The base index is allowed to get assigned `null` only if\n * `props.defaultActiveItemId` is `null`. This pattern allows to \"stop\"\n * by the actual query before navigating to other suggestions as seen on\n * Google or Amazon.\n *\n * @param moveAmount The offset to increment (or decrement) the last index\n * @param baseIndex The current index to compute the next index from\n * @param itemCount The number of items\n * @param defaultActiveItemId The default active index to fallback to\n */\nexport function getNextActiveItemId(moveAmount, baseIndex, itemCount, defaultActiveItemId) {\n if (!itemCount) {\n return null;\n }\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n var numericIndex = (baseIndex === null ? -1 : baseIndex) + moveAmount;\n if (numericIndex <= -1 || numericIndex >= itemCount) {\n return defaultActiveItemId === null ? null : 0;\n }\n return numericIndex;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { invariant, decycle, noop } from '@algolia/autocomplete-shared';\nexport function getNormalizedSources(getSources, params) {\n var seenSourceIds = [];\n return Promise.resolve(getSources(params)).then(function (sources) {\n invariant(Array.isArray(sources), function () {\n return \"The `getSources` function must return an array of sources but returned type \".concat(JSON.stringify(_typeof(sources)), \":\\n\\n\").concat(JSON.stringify(decycle(sources), null, 2));\n });\n return Promise.all(sources\n // We allow `undefined` and `false` sources to allow users to use\n // `Boolean(query) && source` (=> `false`).\n // We need to remove these values at this point.\n .filter(function (maybeSource) {\n return Boolean(maybeSource);\n }).map(function (source) {\n invariant(typeof source.sourceId === 'string', 'A source must provide a `sourceId` string.');\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\n seenSourceIds.push(source.sourceId);\n var defaultSource = {\n getItemInputValue: function getItemInputValue(_ref) {\n var state = _ref.state;\n return state.query;\n },\n getItemUrl: function getItemUrl() {\n return undefined;\n },\n onSelect: function onSelect(_ref2) {\n var setIsOpen = _ref2.setIsOpen;\n setIsOpen(false);\n },\n onActive: noop,\n onResolve: noop\n };\n Object.keys(defaultSource).forEach(function (key) {\n defaultSource[key].__default = true;\n });\n var normalizedSource = _objectSpread(_objectSpread({}, defaultSource), source);\n return Promise.resolve(normalizedSource);\n }));\n });\n}","// We don't have access to the autocomplete source when we call `onKeyDown`\n// or `onClick` because those are native browser events.\n// However, we can get the source from the suggestion index.\nfunction getCollectionFromActiveItemId(state) {\n // Given 3 sources with respectively 1, 2 and 3 suggestions: [1, 2, 3]\n // We want to get the accumulated counts:\n // [1, 1 + 2, 1 + 2 + 3] = [1, 3, 3 + 3] = [1, 3, 6]\n var accumulatedCollectionsCount = state.collections.map(function (collections) {\n return collections.items.length;\n }).reduce(function (acc, collectionsCount, index) {\n var previousValue = acc[index - 1] || 0;\n var nextValue = previousValue + collectionsCount;\n acc.push(nextValue);\n return acc;\n }, []);\n\n // Based on the accumulated counts, we can infer the index of the suggestion.\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n return acc;\n }, 0);\n return state.collections[collectionIndex];\n}\n\n/**\n * Gets the highlighted index relative to a suggestion object (not the absolute\n * highlighted index).\n *\n * Example:\n * [['a', 'b'], ['c', 'd', 'e'], ['f']]\n * ↑\n * (absolute: 3, relative: 1)\n */\nfunction getRelativeActiveItemId(_ref) {\n var state = _ref.state,\n collection = _ref.collection;\n var isOffsetFound = false;\n var counter = 0;\n var previousItemsOffset = 0;\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n return state.activeItemId - previousItemsOffset;\n}\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n if (!collection) {\n return null;\n }\n var item = collection.items[getRelativeActiveItemId({\n state: state,\n collection: collection\n })];\n var source = collection.source;\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: state\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: state\n });\n return {\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n source: source\n };\n}","var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createCancelablePromiseList } from './utils';\nexport function createStore(reducer, props, onStoreStateChange) {\n var state = props.initialState;\n return {\n getState: function getState() {\n return state;\n },\n dispatch: function dispatch(action, payload) {\n var prevState = _objectSpread({}, state);\n state = reducer(state, {\n type: action,\n props: props,\n payload: payload\n });\n onStoreStateChange({\n state: state,\n prevState: prevState\n });\n },\n pendingRequests: createCancelablePromiseList()\n };\n}","export function createCancelablePromiseList() {\n var list = [];\n return {\n add: function add(cancelablePromise) {\n list.push(cancelablePromise);\n return cancelablePromise.finally(function () {\n list = list.filter(function (item) {\n return item !== cancelablePromise;\n });\n });\n },\n cancelAll: function cancelAll() {\n list.forEach(function (promise) {\n return promise.cancel();\n });\n },\n isEmpty: function isEmpty() {\n return list.length === 0;\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\n var setCollections = function setCollections(rawValue) {\n var baseItemId = 0;\n var value = rawValue.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n // We flatten the stored items to support calling `getAlgoliaResults`\n // from the source itself.\n items: flatten(collection.items).map(function (item) {\n return _objectSpread(_objectSpread({}, item), {}, {\n __autocomplete_id: baseItemId++\n });\n })\n });\n });\n store.dispatch('setCollections', value);\n };\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n var plugins = props.plugins || [];\n return _objectSpread(_objectSpread({\n debug: false,\n openOnFocus: false,\n placeholder: '',\n autoFocus: false,\n defaultActiveItemId: null,\n stallThreshold: 300,\n insights: false,\n environment: environment,\n shouldPanelOpen: function shouldPanelOpen(_ref) {\n var state = _ref.state;\n return getItemsCount(state) > 0;\n },\n reshape: function reshape(_ref2) {\n var sources = _ref2.sources;\n return sources;\n }\n }, props), {}, {\n // Since `generateAutocompleteId` triggers a side effect (it increments\n // an internal counter), we don't want to execute it if unnecessary.\n id: (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : generateAutocompleteId(),\n plugins: plugins,\n // The following props need to be deeply defaulted.\n initialState: _objectSpread({\n activeItemId: null,\n query: '',\n completion: null,\n collections: [],\n isOpen: false,\n status: 'idle',\n context: {}\n }, props.initialState),\n onStateChange: function onStateChange(params) {\n var _props$onStateChange;\n (_props$onStateChange = props.onStateChange) === null || _props$onStateChange === void 0 ? void 0 : _props$onStateChange.call(props, params);\n plugins.forEach(function (x) {\n var _x$onStateChange;\n return (_x$onStateChange = x.onStateChange) === null || _x$onStateChange === void 0 ? void 0 : _x$onStateChange.call(x, params);\n });\n },\n onSubmit: function onSubmit(params) {\n var _props$onSubmit;\n (_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 ? void 0 : _props$onSubmit.call(props, params);\n plugins.forEach(function (x) {\n var _x$onSubmit;\n return (_x$onSubmit = x.onSubmit) === null || _x$onSubmit === void 0 ? void 0 : _x$onSubmit.call(x, params);\n });\n },\n onReset: function onReset(params) {\n var _props$onReset;\n (_props$onReset = props.onReset) === null || _props$onReset === void 0 ? void 0 : _props$onReset.call(props, params);\n plugins.forEach(function (x) {\n var _x$onReset;\n return (_x$onReset = x.onReset) === null || _x$onReset === void 0 ? void 0 : _x$onReset.call(x, params);\n });\n },\n getSources: function getSources(params) {\n return Promise.all([].concat(_toConsumableArray(plugins.map(function (plugin) {\n return plugin.getSources;\n })), [props.getSources]).filter(Boolean).map(function (getSources) {\n return getNormalizedSources(getSources, params);\n })).then(function (nested) {\n return flatten(nested);\n }).then(function (sources) {\n return sources.map(function (source) {\n return _objectSpread(_objectSpread({}, source), {}, {\n onSelect: function onSelect(params) {\n source.onSelect(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onSelect;\n return (_x$onSelect = x.onSelect) === null || _x$onSelect === void 0 ? void 0 : _x$onSelect.call(x, params);\n });\n },\n onActive: function onActive(params) {\n source.onActive(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onActive;\n return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.call(x, params);\n });\n },\n onResolve: function onResolve(params) {\n source.onResolve(params);\n pluginSubscribers.forEach(function (x) {\n var _x$onResolve;\n return (_x$onResolve = x.onResolve) === null || _x$onResolve === void 0 ? void 0 : _x$onResolve.call(x, params);\n });\n }\n });\n });\n });\n },\n navigator: _objectSpread({\n navigate: function navigate(_ref3) {\n var itemUrl = _ref3.itemUrl;\n environment.location.assign(itemUrl);\n },\n navigateNewTab: function navigateNewTab(_ref4) {\n var itemUrl = _ref4.itemUrl;\n var windowReference = environment.open(itemUrl, '_blank', 'noopener');\n windowReference === null || windowReference === void 0 ? void 0 : windowReference.focus();\n },\n navigateNewWindow: function navigateNewWindow(_ref5) {\n var itemUrl = _ref5.itemUrl;\n environment.open(itemUrl, '_blank', 'noopener');\n }\n }, props.navigator)\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function reshape(_ref) {\n var collections = _ref.collections,\n props = _ref.props,\n state = _ref.state;\n // Sources are grouped by `sourceId` to conveniently pick them via destructuring.\n // Example: `const { recentSearchesPlugin } = sourcesBySourceId`\n var originalSourcesBySourceId = collections.reduce(function (acc, collection) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, collection.source.sourceId, _objectSpread(_objectSpread({}, collection.source), {}, {\n getItems: function getItems() {\n // We provide the resolved items from the collection to the `reshape` prop.\n return flatten(collection.items);\n }\n })));\n }, {});\n var _props$plugins$reduce = props.plugins.reduce(function (acc, plugin) {\n if (plugin.reshape) {\n return plugin.reshape(acc);\n }\n return acc;\n }, {\n sourcesBySourceId: originalSourcesBySourceId,\n state: state\n }),\n sourcesBySourceId = _props$plugins$reduce.sourcesBySourceId;\n var reshapeSources = props.reshape({\n sourcesBySourceId: sourcesBySourceId,\n sources: Object.values(sourcesBySourceId),\n state: state\n });\n\n // We reconstruct the collections with the items modified by the `reshape` prop.\n return flatten(reshapeSources).filter(Boolean).map(function (source) {\n return {\n source: source,\n items: source.getItems()\n };\n });\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\nexport function preResolve(itemsOrDescription, sourceId, state) {\n if (isRequesterDescription(itemsOrDescription)) {\n var contextParameters = itemsOrDescription.requesterId === 'algolia' ? Object.assign.apply(Object, [{}].concat(_toConsumableArray(Object.keys(state.context).map(function (key) {\n var _state$context$key;\n return (_state$context$key = state.context[key]) === null || _state$context$key === void 0 ? void 0 : _state$context$key.__algoliaSearchParameters;\n })))) : {};\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: itemsOrDescription.requesterId === 'algolia' ? _objectSpread(_objectSpread({}, query), {}, {\n params: _objectSpread(_objectSpread({}, contextParameters), query.params)\n }) : query,\n sourceId: sourceId,\n transformResponse: itemsOrDescription.transformResponse\n };\n })\n });\n }\n return {\n items: itemsOrDescription,\n sourceId: sourceId\n };\n}\nexport function resolve(items) {\n var packed = items.reduce(function (acc, current) {\n if (!isDescription(current)) {\n acc.push(current);\n return acc;\n }\n var searchClient = current.searchClient,\n execute = current.execute,\n requesterId = current.requesterId,\n requests = current.requests;\n var container = acc.find(function (item) {\n return isDescription(current) && isDescription(item) && item.searchClient === searchClient && Boolean(requesterId) && item.requesterId === requesterId;\n });\n if (container) {\n var _container$items;\n (_container$items = container.items).push.apply(_container$items, _toConsumableArray(requests));\n } else {\n var request = {\n execute: execute,\n requesterId: requesterId,\n items: requests,\n searchClient: searchClient\n };\n acc.push(request);\n }\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\n var _ref = maybeDescription,\n execute = _ref.execute,\n items = _ref.items,\n searchClient = _ref.searchClient;\n return execute({\n searchClient: searchClient,\n requests: items\n });\n });\n return Promise.all(values).then(function (responses) {\n return flatten(responses);\n });\n}\nexport function postResolve(responses, sources, store) {\n return sources.map(function (source) {\n var matches = responses.filter(function (response) {\n return response.sourceId === source.sourceId;\n });\n var results = matches.map(function (_ref2) {\n var items = _ref2.items;\n return items;\n });\n var transform = matches[0].transformResponse;\n var items = transform ? transform(mapToAlgoliaResponse(results)) : results;\n source.onResolve({\n source: source,\n results: results,\n items: items,\n state: store.getState()\n });\n invariant(Array.isArray(items), function () {\n return \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned type \").concat(JSON.stringify(_typeof(items)), \":\\n\\n\").concat(JSON.stringify(decycle(items), null, 2), \".\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\");\n });\n invariant(items.every(Boolean), \"The `getItems` function from source \\\"\".concat(source.sourceId, \"\\\" must return an array of items but returned \").concat(JSON.stringify(undefined), \".\\n\\nDid you forget to return items?\\n\\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems\"));\n return {\n source: source,\n items: items\n };\n });\n}","export function mapToAlgoliaResponse(rawResults) {\n return {\n results: rawResults,\n hits: rawResults.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: rawResults.map(function (result) {\n var _facetHits;\n return (_facetHits = result.facetHits) === null || _facetHits === void 0 ? void 0 : _facetHits.map(function (facetHit) {\n // Bring support for the highlighting components.\n return {\n label: facetHit.value,\n count: facetHit.count,\n _highlightResult: {\n label: {\n value: facetHit.highlighted\n }\n }\n };\n });\n }).filter(Boolean)\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { reshape } from './reshape';\nimport { preResolve, resolve, postResolve } from './resolve';\nimport { cancelable, createConcurrentSafePromise, getActiveItem } from './utils';\nvar lastStalledId = null;\nvar runConcurrentSafePromise = createConcurrentSafePromise();\nexport function onInput(_ref) {\n var event = _ref.event,\n _ref$nextState = _ref.nextState,\n nextState = _ref$nextState === void 0 ? {} : _ref$nextState,\n props = _ref.props,\n query = _ref.query,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n var setCollections = setters.setCollections,\n setIsOpen = setters.setIsOpen,\n setQuery = setters.setQuery,\n setActiveItemId = setters.setActiveItemId,\n setStatus = setters.setStatus;\n setQuery(query);\n setActiveItemId(props.defaultActiveItemId);\n if (!query && props.openOnFocus === false) {\n var _nextState$isOpen;\n var collections = store.getState().collections.map(function (collection) {\n return _objectSpread(_objectSpread({}, collection), {}, {\n items: []\n });\n });\n setStatus('idle');\n setCollections(collections);\n setIsOpen((_nextState$isOpen = nextState.isOpen) !== null && _nextState$isOpen !== void 0 ? _nextState$isOpen : props.shouldPanelOpen({\n state: store.getState()\n }));\n\n // We make sure to update the latest resolved value of the tracked\n // promises to keep late resolving promises from \"cancelling\" the state\n // updates performed in this code path.\n // We chain with a void promise to respect `onInput`'s expected return type.\n var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n return Promise.resolve();\n }));\n return store.pendingRequests.add(_request);\n }\n setStatus('loading');\n lastStalledId = props.environment.setTimeout(function () {\n setStatus('stalled');\n }, props.stallThreshold);\n\n // We track the entire promise chain triggered by `onInput` before mutating\n // the Autocomplete state to make sure that any state manipulation is based on\n // fresh data regardless of when promises individually resolve.\n // We don't track nested promises and only rely on the full chain resolution,\n // meaning we should only ever manipulate the state once this concurrent-safe\n // promise is resolved.\n var request = cancelable(runConcurrentSafePromise(props.getSources(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters)).then(function (sources) {\n return Promise.all(sources.map(function (source) {\n return Promise.resolve(source.getItems(_objectSpread({\n query: query,\n refresh: refresh,\n state: store.getState()\n }, setters))).then(function (itemsOrDescription) {\n return preResolve(itemsOrDescription, source.sourceId, store.getState());\n });\n })).then(resolve).then(function (responses) {\n return postResolve(responses, sources, store);\n }).then(function (collections) {\n return reshape({\n collections: collections,\n props: props,\n state: store.getState()\n });\n });\n }))).then(function (collections) {\n var _nextState$isOpen2;\n // Parameters passed to `onInput` could be stale when the following code\n // executes, because `onInput` calls may not resolve in order.\n // If it becomes a problem we'll need to save the last passed parameters.\n // See: https://codesandbox.io/s/agitated-cookies-y290z\n\n setStatus('idle');\n setCollections(collections);\n var isPanelOpen = props.shouldPanelOpen({\n state: store.getState()\n });\n setIsOpen((_nextState$isOpen2 = nextState.isOpen) !== null && _nextState$isOpen2 !== void 0 ? _nextState$isOpen2 : props.openOnFocus && !query && isPanelOpen || isPanelOpen);\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }).finally(function () {\n setStatus('idle');\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\n });\n return store.pendingRequests.add(request);\n}","/**\n * Creates a runner that executes promises in a concurrent-safe way.\n *\n * This is useful to prevent older promises to resolve after a newer promise,\n * otherwise resulting in stale resolved values.\n */\nexport function createConcurrentSafePromise() {\n var basePromiseId = -1;\n var latestResolvedId = -1;\n var latestResolvedValue = undefined;\n return function runConcurrentSafePromise(promise) {\n basePromiseId++;\n var currentPromiseId = basePromiseId;\n return Promise.resolve(promise).then(function (x) {\n // The promise might take too long to resolve and get outdated. This would\n // result in resolving stale values.\n // When this happens, we ignore the promise value and return the one\n // coming from the latest resolved value.\n //\n // +----------------------------------+\n // | 100ms |\n // | run(1) +---> R1 |\n // | 300ms |\n // | run(2) +-------------> R2 (SKIP) |\n // | 200ms |\n // | run(3) +--------> R3 |\n // +----------------------------------+\n if (latestResolvedValue && currentPromiseId < latestResolvedId) {\n return latestResolvedValue;\n }\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { onInput } from './onInput';\nimport { getActiveItem } from './utils';\nexport function onKeyDown(_ref) {\n var event = _ref.event,\n props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n // eslint-disable-next-line no-inner-declarations\n var triggerScrollIntoView = function triggerScrollIntoView() {\n var nodeItem = props.environment.document.getElementById(\"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId));\n if (nodeItem) {\n if (nodeItem.scrollIntoViewIfNeeded) {\n nodeItem.scrollIntoViewIfNeeded(false);\n } else {\n nodeItem.scrollIntoView(false);\n }\n }\n }; // eslint-disable-next-line no-inner-declarations\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && highlightedItem) {\n var item = highlightedItem.item,\n itemInputValue = highlightedItem.itemInputValue,\n itemUrl = highlightedItem.itemUrl,\n source = highlightedItem.source;\n source.onActive(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n }\n }; // Default browser behavior changes the caret placement on ArrowUp and\n // ArrowDown.\n event.preventDefault();\n\n // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n if (store.getState().isOpen === false && (props.openOnFocus || Boolean(store.getState().query))) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n store.dispatch(event.key, {\n nextActiveItemId: props.defaultActiveItemId\n });\n triggerOnActive();\n // Since we rely on the DOM, we need to wait for all the micro tasks to\n // finish (which include re-opening the panel) to make sure all the\n // elements are available.\n setTimeout(triggerScrollIntoView, 0);\n });\n } else {\n store.dispatch(event.key, {});\n triggerOnActive();\n triggerScrollIntoView();\n }\n } else if (event.key === 'Escape') {\n // This prevents the default browser behavior on `input[type=\"search\"]`\n // from removing the query right away because we first want to close the\n // panel.\n event.preventDefault();\n store.dispatch(event.key, null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null);\n\n // Hitting the `Escape` key signals the end of a user interaction with the\n // autocomplete. At this point, we should ignore any requests that are still\n // pending and could reopen the panel once they resolve, because that would\n // result in an unsolicited UI behavior.\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Enter') {\n // No active item, so we let the browser handle the native `onSubmit` form\n // event.\n if (store.getState().activeItemId === null || store.getState().collections.every(function (collection) {\n return collection.items.length === 0;\n })) {\n // If requests are still pending when the panel closes, they could reopen\n // the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n return;\n }\n\n // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n event.preventDefault();\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n if (event.metaKey || event.ctrlKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewTab({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.shiftKey) {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigateNewWindow({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n }\n } else if (event.altKey) {\n // Keep native browser behavior\n } else {\n if (itemUrl !== undefined) {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n props.navigator.navigate({\n itemUrl: itemUrl,\n item: item,\n state: store.getState()\n });\n return;\n }\n onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters)).then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"sourceIndex\"],\n _excluded6 = [\"sourceIndex\"],\n _excluded7 = [\"item\", \"source\", \"sourceIndex\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { noop } from '@algolia/autocomplete-shared';\nimport { onInput } from './onInput';\nimport { onKeyDown as _onKeyDown } from './onKeyDown';\nimport { getActiveItem, isOrContainsNode, isSamsung } from './utils';\nexport function getPropGetters(_ref) {\n var props = _ref.props,\n refresh = _ref.refresh,\n store = _ref.store,\n setters = _objectWithoutProperties(_ref, _excluded);\n var getEnvironmentProps = function getEnvironmentProps(providedProps) {\n var inputElement = providedProps.inputElement,\n formElement = providedProps.formElement,\n panelElement = providedProps.panelElement,\n rest = _objectWithoutProperties(providedProps, _excluded2);\n function onMouseDownOrTouchStart(event) {\n // The `onTouchStart`/`onMouseDown` events shouldn't trigger the `blur`\n // handler when it's not an interaction with Autocomplete.\n // We detect it with the following heuristics:\n // - the panel is closed AND there are no pending requests\n // (no interaction with the autocomplete, no future state updates)\n // - OR the touched target is the input element (should open the panel)\n var isAutocompleteInteraction = store.getState().isOpen || !store.pendingRequests.isEmpty();\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n }\n\n // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null);\n\n // If requests are still pending when the user closes the panel, they\n // could reopen the panel once they resolve.\n // We want to prevent any subsequent query from reopening the panel\n // because it would result in an unsolicited UI behavior.\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\n }\n }\n return _objectSpread({\n // We do not rely on the native `blur` event of the input to close the\n // panel, but rather on a custom `touchstart`/`mousedown` event outside\n // of the autocomplete elements.\n // This ensures we don't mistakenly interpret interactions within the\n // autocomplete (but outside of the input) as a signal to close the panel.\n // For example, clicking reset button causes an input blur, but if\n // `openOnFocus=true`, it shouldn't close the panel.\n // On touch devices, scrolling results (`touchmove`) causes an input blur\n // but shouldn't close the panel.\n onTouchStart: onMouseDownOrTouchStart,\n onMouseDown: onMouseDownOrTouchStart,\n // When scrolling on touch devices (mobiles, tablets, etc.), we want to\n // mimic the native platform behavior where the input is blurred to\n // hide the virtual keyboard. This gives more vertical space to\n // discover all the suggestions showing up in the panel.\n onTouchMove: function onTouchMove(event) {\n if (store.getState().isOpen === false || inputElement !== props.environment.document.activeElement || event.target === inputElement) {\n return;\n }\n inputElement.blur();\n }\n }, rest);\n };\n var getRootProps = function getRootProps(rest) {\n return _objectSpread({\n role: 'combobox',\n 'aria-expanded': store.getState().isOpen,\n 'aria-haspopup': 'listbox',\n 'aria-owns': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\")\n }, rest);\n };\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n event.preventDefault();\n props.onSubmit(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('submit', null);\n (_providedProps$inputE = providedProps.inputElement) === null || _providedProps$inputE === void 0 ? void 0 : _providedProps$inputE.blur();\n },\n onReset: function onReset(event) {\n var _providedProps$inputE2;\n event.preventDefault();\n props.onReset(_objectSpread({\n event: event,\n refresh: refresh,\n state: store.getState()\n }, setters));\n store.dispatch('reset', null);\n (_providedProps$inputE2 = providedProps.inputElement) === null || _providedProps$inputE2 === void 0 ? void 0 : _providedProps$inputE2.focus();\n }\n }, rest);\n };\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n function onFocus(event) {\n // We want to trigger a query when `openOnFocus` is true\n // because the panel should open with the current query.\n if (props.openOnFocus || Boolean(store.getState().query)) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: store.getState().completion || store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n store.dispatch('focus', null);\n }\n var _ref2 = providedProps || {},\n inputElement = _ref2.inputElement,\n _ref2$maxLength = _ref2.maxLength,\n maxLength = _ref2$maxLength === void 0 ? 512 : _ref2$maxLength,\n rest = _objectWithoutProperties(_ref2, _excluded4);\n var activeItem = getActiveItem(store.getState());\n var userAgent = ((_props$environment$na = props.environment.navigator) === null || _props$environment$na === void 0 ? void 0 : _props$environment$na.userAgent) || '';\n var shouldFallbackKeyHint = isSamsung(userAgent);\n var enterKeyHint = activeItem !== null && activeItem !== void 0 && activeItem.itemUrl && !shouldFallbackKeyHint ? 'go' : 'search';\n return _objectSpread({\n 'aria-autocomplete': 'both',\n 'aria-activedescendant': store.getState().isOpen && store.getState().activeItemId !== null ? \"\".concat(props.id, \"-item-\").concat(store.getState().activeItemId) : undefined,\n 'aria-controls': store.getState().isOpen ? \"\".concat(props.id, \"-list\") : undefined,\n 'aria-labelledby': \"\".concat(props.id, \"-label\"),\n value: store.getState().completion || store.getState().query,\n id: \"\".concat(props.id, \"-input\"),\n autoComplete: 'off',\n autoCorrect: 'off',\n autoCapitalize: 'off',\n enterKeyHint: enterKeyHint,\n spellCheck: 'false',\n autoFocus: props.autoFocus,\n placeholder: props.placeholder,\n maxLength: maxLength,\n type: 'search',\n onChange: function onChange(event) {\n onInput(_objectSpread({\n event: event,\n props: props,\n query: event.currentTarget.value.slice(0, maxLength),\n refresh: refresh,\n store: store\n }, setters));\n },\n onKeyDown: function onKeyDown(event) {\n _onKeyDown(_objectSpread({\n event: event,\n props: props,\n refresh: refresh,\n store: store\n }, setters));\n },\n onFocus: onFocus,\n // We don't rely on the `blur` event.\n // See explanation in `onTouchStart`/`onMouseDown`.\n // @MAJOR See if we need to keep this handler.\n onBlur: noop,\n onClick: function onClick(event) {\n // When the panel is closed and you click on the input while\n // the input is focused, the `onFocus` event is not triggered\n // (default browser behavior).\n // In an autocomplete context, it makes sense to open the panel in this\n // case.\n // We mimic this event by catching the `onClick` event which\n // triggers the `onFocus` for the panel to open.\n if (providedProps.inputElement === props.environment.document.activeElement && !store.getState().isOpen) {\n onFocus(event);\n }\n }\n }, rest);\n };\n var getAutocompleteId = function getAutocompleteId(instanceId, sourceId) {\n return typeof sourceId !== 'undefined' ? \"\".concat(instanceId, \"-\").concat(sourceId) : instanceId;\n };\n var getLabelProps = function getLabelProps(providedProps) {\n var _ref3 = providedProps || {},\n sourceIndex = _ref3.sourceIndex,\n rest = _objectWithoutProperties(_ref3, _excluded5);\n return _objectSpread({\n htmlFor: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-input\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\")\n }, rest);\n };\n var getListProps = function getListProps(providedProps) {\n var _ref4 = providedProps || {},\n sourceIndex = _ref4.sourceIndex,\n rest = _objectWithoutProperties(_ref4, _excluded6);\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-label\"),\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-list\")\n }, rest);\n };\n var getPanelProps = function getPanelProps(rest) {\n return _objectSpread({\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the panel so\n // that the blur event is not triggered, otherwise it closes the\n // panel.\n event.preventDefault();\n },\n onMouseLeave: function onMouseLeave() {\n store.dispatch('mouseleave', null);\n }\n }, rest);\n };\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n sourceIndex = providedProps.sourceIndex,\n rest = _objectWithoutProperties(providedProps, _excluded7);\n return _objectSpread({\n id: \"\".concat(getAutocompleteId(props.id, sourceIndex), \"-item-\").concat(item.__autocomplete_id),\n role: 'option',\n 'aria-selected': store.getState().activeItemId === item.__autocomplete_id,\n onMouseMove: function onMouseMove(event) {\n if (item.__autocomplete_id === store.getState().activeItemId) {\n return;\n }\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n if (store.getState().activeItemId !== null && activeItem) {\n var _item = activeItem.item,\n itemInputValue = activeItem.itemInputValue,\n itemUrl = activeItem.itemUrl,\n _source = activeItem.source;\n _source.onActive(_objectSpread({\n event: event,\n item: _item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: _source,\n state: store.getState()\n }, setters));\n }\n },\n onMouseDown: function onMouseDown(event) {\n // Prevents the `activeElement` from being changed to the item so it\n // can remain with the current `activeElement`.\n event.preventDefault();\n },\n onClick: function onClick(event) {\n var itemInputValue = source.getItemInputValue({\n item: item,\n state: store.getState()\n });\n var itemUrl = source.getItemUrl({\n item: item,\n state: store.getState()\n });\n\n // If `getItemUrl` is provided, it means that the suggestion\n // is a link, not plain text that aims at updating the query.\n // We can therefore skip the state change because it will update\n // the `activeItemId`, resulting in a UI flash, especially\n // noticeable on mobile.\n var runPreCommand = itemUrl ? Promise.resolve() : onInput(_objectSpread({\n event: event,\n nextState: {\n isOpen: false\n },\n props: props,\n query: itemInputValue,\n refresh: refresh,\n store: store\n }, setters));\n runPreCommand.then(function () {\n source.onSelect(_objectSpread({\n event: event,\n item: item,\n itemInputValue: itemInputValue,\n itemUrl: itemUrl,\n refresh: refresh,\n source: source,\n state: store.getState()\n }, setters));\n });\n }\n }, rest);\n };\n return {\n getEnvironmentProps: getEnvironmentProps,\n getRootProps: getRootProps,\n getFormProps: getFormProps,\n getLabelProps: getLabelProps,\n getInputProps: getInputProps,\n getPanelProps: getPanelProps,\n getListProps: getListProps,\n getItemProps: getItemProps\n };\n}","export function isOrContainsNode(parent, child) {\n return parent === child || parent.contains(child);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n var plugins = _ref.plugins,\n options = _ref.options;\n var optionsKey = (_ = (((_options$__autocomple = options.__autocomplete_metadata) === null || _options$__autocomple === void 0 ? void 0 : _options$__autocomple.userAgents) || [])[0]) === null || _ === void 0 ? void 0 : _.segment;\n var extraOptions = optionsKey ? _defineProperty({}, optionsKey, Object.keys(((_options$__autocomple2 = options.__autocomplete_metadata) === null || _options$__autocomple2 === void 0 ? void 0 : _options$__autocomple2.options) || {})) : {};\n return {\n plugins: plugins.map(function (plugin) {\n return {\n name: plugin.name,\n options: Object.keys(plugin.__autocomplete_pluginOptions || [])\n };\n }),\n options: _objectSpread({\n 'autocomplete-core': Object.keys(options)\n }, extraOptions),\n ua: userAgents.concat(((_options$__autocomple3 = options.__autocomplete_metadata) === null || _options$__autocomple3 === void 0 ? void 0 : _options$__autocomple3.userAgents) || [])\n };\n}\nexport function injectMetadata(_ref3) {\n var _environment$navigato, _environment$navigato2;\n var metadata = _ref3.metadata,\n environment = _ref3.environment;\n var isMetadataEnabled = (_environment$navigato = environment.navigator) === null || _environment$navigato === void 0 ? void 0 : (_environment$navigato2 = _environment$navigato.userAgent) === null || _environment$navigato2 === void 0 ? void 0 : _environment$navigato2.includes('Algolia Crawler');\n if (isMetadataEnabled) {\n var metadataContainer = environment.document.createElement('meta');\n var headRef = environment.document.querySelector('head');\n metadataContainer.name = 'algolia:metadata';\n setTimeout(function () {\n metadataContainer.content = JSON.stringify(metadata);\n headRef.appendChild(metadataContainer);\n }, 0);\n }\n}","import { getActiveItem } from './utils';\nexport function getCompletion(_ref) {\n var _getActiveItem;\n var state = _ref.state;\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getItemsCount, invariant } from '@algolia/autocomplete-shared';\nimport { getCompletion } from './getCompletion';\nimport { getNextActiveItemId } from './utils';\nexport var stateReducer = function stateReducer(state, action) {\n switch (action.type) {\n case 'setActiveItemId':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\n }\n case 'ArrowDown':\n {\n var nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload.hasOwnProperty('nextActiveItemId') ? action.payload.nextActiveItemId : getNextActiveItemId(1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\n });\n }\n case 'ArrowUp':\n {\n var _nextState = _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: getNextActiveItemId(-1, state.activeItemId, getItemsCount(state), action.props.defaultActiveItemId)\n });\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\n });\n }\n case 'Escape':\n {\n if (state.isOpen) {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n completion: null\n });\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId:\n // Since we open the panel on reset when openOnFocus=true\n // we need to restore the highlighted index to the defaultActiveItemId. (DocSearch use-case)\n\n // Since we close the panel when openOnFocus=false\n // we lose track of the highlighted index. (Query-suggestions use-case)\n action.props.openOnFocus === true ? action.props.defaultActiveItemId : null,\n status: 'idle',\n query: ''\n });\n }\n case 'focus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId,\n isOpen: (action.props.openOnFocus || Boolean(state.query)) && action.props.shouldPanelOpen({\n state: state\n })\n });\n }\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createAlgoliaInsightsPlugin } from '@algolia/autocomplete-plugin-algolia-insights';\nimport { checkOptions } from './checkOptions';\nimport { createStore } from './createStore';\nimport { getAutocompleteSetters } from './getAutocompleteSetters';\nimport { getDefaultProps } from './getDefaultProps';\nimport { getPropGetters } from './getPropGetters';\nimport { getMetadata, injectMetadata } from './metadata';\nimport { onInput } from './onInput';\nimport { stateReducer } from './stateReducer';\nexport function createAutocomplete(options) {\n checkOptions(options);\n var subscribers = [];\n var props = getDefaultProps(options, subscribers);\n var store = createStore(stateReducer, props, onStoreStateChange);\n var setters = getAutocompleteSetters({\n store: store\n });\n var propGetters = getPropGetters(_objectSpread({\n props: props,\n refresh: refresh,\n store: store,\n navigator: props.navigator\n }, setters));\n function onStoreStateChange(_ref) {\n var prevState = _ref.prevState,\n state = _ref.state;\n props.onStateChange(_objectSpread({\n prevState: prevState,\n state: state,\n refresh: refresh,\n navigator: props.navigator\n }, setters));\n }\n function refresh() {\n return onInput(_objectSpread({\n event: new Event('input'),\n nextState: {\n isOpen: store.getState().isOpen\n },\n props: props,\n navigator: props.navigator,\n query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n if (options.insights && !props.plugins.some(function (plugin) {\n return plugin.name === 'aa.algoliaInsightsPlugin';\n })) {\n var insightsParams = typeof options.insights === 'boolean' ? {} : options.insights;\n props.plugins.push(createAlgoliaInsightsPlugin(insightsParams));\n }\n props.plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\n navigator: props.navigator,\n refresh: refresh,\n onSelect: function onSelect(fn) {\n subscribers.push({\n onSelect: fn\n });\n },\n onActive: function onActive(fn) {\n subscribers.push({\n onActive: fn\n });\n },\n onResolve: function onResolve(fn) {\n subscribers.push({\n onResolve: fn\n });\n }\n }));\n });\n injectMetadata({\n metadata: getMetadata({\n plugins: props.plugins,\n options: options\n }),\n environment: props.environment\n });\n return _objectSpread(_objectSpread({\n refresh: refresh,\n navigator: props.navigator\n }, propGetters), setters);\n}","import React from 'react';\n\ntype AlgoliaLogoTranslations = Partial<{\n searchByText: string;\n}>;\n\ntype AlgoliaLogoProps = {\n translations?: AlgoliaLogoTranslations;\n};\n\nexport function AlgoliaLogo({ translations = {} }: AlgoliaLogoProps) {\n const { searchByText = 'Search by' } = translations;\n\n return (\n \n {searchByText}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nimport { AlgoliaLogo } from './AlgoliaLogo';\n\nexport type FooterTranslations = Partial<{\n selectText: string;\n selectKeyAriaLabel: string;\n navigateText: string;\n navigateUpKeyAriaLabel: string;\n navigateDownKeyAriaLabel: string;\n closeText: string;\n closeKeyAriaLabel: string;\n searchByText: string;\n}>;\n\ntype FooterProps = Partial<{\n translations: FooterTranslations;\n}>;\n\ninterface CommandIconProps {\n children: React.ReactNode;\n ariaLabel: string;\n}\n\nfunction CommandIcon(props: CommandIconProps) {\n return (\n \n \n {props.children}\n \n \n );\n}\n\nexport function Footer({ translations = {} }: FooterProps) {\n const {\n selectText = 'to select',\n selectKeyAriaLabel = 'Enter key',\n navigateText = 'to navigate',\n navigateUpKeyAriaLabel = 'Arrow up',\n navigateDownKeyAriaLabel = 'Arrow down',\n closeText = 'to close',\n closeKeyAriaLabel = 'Escape key',\n searchByText = 'Search by',\n } = translations;\n\n return (\n <>\n
\n \n
\n
    \n
  • \n \n \n \n \n \n {selectText}\n
  • \n
  • \n \n \n \n \n \n \n \n \n \n \n {navigateText}\n
  • \n
  • \n \n \n \n \n \n {closeText}\n
  • \n
\n \n );\n}\n","import React from 'react';\n\nimport type { InternalDocSearchHit, StoredDocSearchHit } from './types';\n\ninterface HitProps {\n hit: InternalDocSearchHit | StoredDocSearchHit;\n children: React.ReactNode;\n}\n\nexport function Hit({ hit, children }: HitProps) {\n return {children};\n}\n","import React from 'react';\n\nexport function LoadingIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nexport function RecentIcon() {\n return (\n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nexport function ResetIcon() {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function SelectIcon() {\n return (\n \n \n \n \n \n \n );\n}\n","import React from 'react';\n\nconst LvlIcon: React.FC = () => {\n return (\n \n \n \n );\n};\n\nexport function SourceIcon(props: { type: string }) {\n switch (props.type) {\n case 'lvl1':\n return ;\n case 'content':\n return ;\n default:\n return ;\n }\n}\n\nfunction AnchorIcon() {\n return (\n \n \n \n );\n}\n\nfunction ContentIcon() {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function StarIcon() {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function ErrorIcon() {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nexport function NoResultsIcon() {\n return (\n \n \n \n );\n}\n","import React from 'react';\n\nimport { ErrorIcon } from './icons';\n\nexport type ErrorScreenTranslations = Partial<{\n titleText: string;\n helpText: string;\n}>;\n\ntype ErrorScreenProps = {\n translations?: ErrorScreenTranslations;\n};\n\nexport function ErrorScreen({ translations = {} }: ErrorScreenProps) {\n const {\n titleText = 'Unable to fetch results',\n helpText = 'You might want to check your network connection.',\n } = translations;\n return (\n
\n
\n \n
\n

{titleText}

\n

{helpText}

\n
\n );\n}\n","import React from 'react';\n\nimport { NoResultsIcon } from './icons';\nimport type { ScreenStateProps } from './ScreenState';\nimport type { InternalDocSearchHit } from './types';\n\nexport type NoResultsScreenTranslations = Partial<{\n noResultsText: string;\n suggestedQueryText: string;\n reportMissingResultsText: string;\n reportMissingResultsLinkText: string;\n}>;\n\ntype NoResultsScreenProps = Omit<\n ScreenStateProps,\n 'translations'\n> & {\n translations?: NoResultsScreenTranslations;\n};\n\nexport function NoResultsScreen({\n translations = {},\n ...props\n}: NoResultsScreenProps) {\n const {\n noResultsText = 'No results for',\n suggestedQueryText = 'Try searching for',\n reportMissingResultsText = 'Believe this query should return results?',\n reportMissingResultsLinkText = 'Let us know.',\n } = translations;\n const searchSuggestions: string[] | undefined = props.state.context\n .searchSuggestions as string[];\n\n return (\n
\n
\n \n
\n

\n {noResultsText} \"{props.state.query}\"\n

\n\n {searchSuggestions && searchSuggestions.length > 0 && (\n
\n

{suggestedQueryText}:

\n
    \n {searchSuggestions.slice(0, 3).reduce(\n (acc, search) => [\n ...acc,\n
  • \n {\n props.setQuery(search.toLowerCase() + ' ');\n props.refresh();\n props.inputRef.current!.focus();\n }}\n >\n {search}\n \n
  • ,\n ],\n []\n )}\n
\n
\n )}\n\n {props.getMissingResultsUrl && (\n

\n {`${reportMissingResultsText} `}\n \n {reportMissingResultsLinkText}\n \n

\n )}\n
\n );\n}\n","import { createElement } from 'react';\n\nimport type { StoredDocSearchHit } from './types';\n\nfunction getPropertyByPath(object: Record, path: string): any {\n const parts = path.split('.');\n\n return parts.reduce((prev, current) => {\n if (prev?.[current]) return prev[current];\n return null;\n }, object);\n}\n\ninterface SnippetProps {\n hit: TItem;\n attribute: string;\n tagName?: string;\n [prop: string]: unknown;\n}\n\nexport function Snippet({\n hit,\n attribute,\n tagName = 'span',\n ...rest\n}: SnippetProps) {\n return createElement(tagName, {\n ...rest,\n dangerouslySetInnerHTML: {\n __html:\n getPropertyByPath(hit, `_snippetResult.${attribute}.value`) ||\n getPropertyByPath(hit, attribute),\n },\n });\n}\n","import type {\n AutocompleteApi,\n AutocompleteState,\n BaseItem,\n} from '@algolia/autocomplete-core';\nimport React from 'react';\n\nimport type { DocSearchProps } from './DocSearch';\nimport { Snippet } from './Snippet';\nimport type { InternalDocSearchHit, StoredDocSearchHit } from './types';\n\ninterface ResultsProps\n extends AutocompleteApi<\n TItem,\n React.FormEvent,\n React.MouseEvent,\n React.KeyboardEvent\n > {\n title: string;\n collection: AutocompleteState['collections'][0];\n renderIcon: (props: { item: TItem; index: number }) => React.ReactNode;\n renderAction: (props: {\n item: TItem;\n runDeleteTransition: (cb: () => void) => void;\n runFavoriteTransition: (cb: () => void) => void;\n }) => React.ReactNode;\n onItemClick: (item: TItem, event: KeyboardEvent | MouseEvent) => void;\n hitComponent: DocSearchProps['hitComponent'];\n}\n\nexport function Results(\n props: ResultsProps\n) {\n if (!props.collection || props.collection.items.length === 0) {\n return null;\n }\n\n return (\n
\n
{props.title}
\n\n
    \n {props.collection.items.map((item, index) => {\n return (\n \n );\n })}\n
\n
\n );\n}\n\ninterface ResultProps extends ResultsProps {\n item: TItem;\n index: number;\n}\n\nfunction Result({\n item,\n index,\n renderIcon,\n renderAction,\n getItemProps,\n onItemClick,\n collection,\n hitComponent,\n}: ResultProps) {\n const [isDeleting, setIsDeleting] = React.useState(false);\n const [isFavoriting, setIsFavoriting] = React.useState(false);\n const action = React.useRef<(() => void) | null>(null);\n const Hit = hitComponent!;\n\n function runDeleteTransition(cb: () => void) {\n setIsDeleting(true);\n action.current = cb;\n }\n\n function runFavoriteTransition(cb: () => void) {\n setIsFavoriting(true);\n action.current = cb;\n }\n\n return (\n {\n if (action.current) {\n action.current();\n }\n }}\n {...getItemProps({\n item,\n source: collection.source,\n onClick(event) {\n onItemClick(item, event);\n },\n })}\n >\n \n
\n {renderIcon({ item, index })}\n\n {item.hierarchy[item.type] && item.type === 'lvl1' && (\n
\n \n {item.content && (\n \n )}\n
\n )}\n\n {item.hierarchy[item.type] &&\n (item.type === 'lvl2' ||\n item.type === 'lvl3' ||\n item.type === 'lvl4' ||\n item.type === 'lvl5' ||\n item.type === 'lvl6') && (\n
\n \n \n
\n )}\n\n {item.type === 'content' && (\n
\n \n \n
\n )}\n\n {renderAction({ item, runDeleteTransition, runFavoriteTransition })}\n
\n
\n \n );\n}\n","export function groupBy>(\n values: TValue[],\n predicate: (value: TValue) => string,\n maxResultsPerGroup?: number\n): Record {\n return values.reduce>((acc, item) => {\n const key = predicate(item);\n\n if (!acc.hasOwnProperty(key)) {\n acc[key] = [];\n }\n\n // We limit each section to show 5 hits maximum.\n // This acts as a frontend alternative to `distinct`.\n if (acc[key].length < (maxResultsPerGroup || 5)) {\n acc[key].push(item);\n }\n\n return acc;\n }, {});\n}\n","export function identity(x: TParam): TParam {\n return x;\n}\n","/**\n * Detect when an event is modified with a special key to let the browser\n * trigger its default behavior.\n */\nexport function isModifierEvent(\n event: TEvent\n): boolean {\n const isMiddleClick = (event as MouseEvent).button === 1;\n\n return (\n isMiddleClick ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey\n );\n}\n","export function noop(..._args: any[]): void {}\n","import type { DocSearchHit, InternalDocSearchHit } from '../types';\n\nconst regexHighlightTags = /(|<\\/mark>)/g;\nconst regexHasHighlightTags = RegExp(regexHighlightTags.source);\n\nexport function removeHighlightTags(\n hit: DocSearchHit | InternalDocSearchHit\n): string {\n const internalDocSearchHit = hit as InternalDocSearchHit;\n\n if (!internalDocSearchHit.__docsearch_parent && !hit._highlightResult) {\n return hit.hierarchy.lvl0;\n }\n\n const { value } =\n (internalDocSearchHit.__docsearch_parent\n ? internalDocSearchHit.__docsearch_parent?._highlightResult?.hierarchy\n ?.lvl0\n : hit._highlightResult?.hierarchy?.lvl0) || {};\n\n return value && regexHasHighlightTags.test(value)\n ? value.replace(regexHighlightTags, '')\n : value;\n}\n","import React from 'react';\n\nimport { SelectIcon, SourceIcon } from './icons';\nimport { Results } from './Results';\nimport type { ScreenStateProps } from './ScreenState';\nimport type { InternalDocSearchHit } from './types';\nimport { removeHighlightTags } from './utils';\n\ntype ResultsScreenProps = Omit<\n ScreenStateProps,\n 'translations'\n>;\n\nexport function ResultsScreen(props: ResultsScreenProps) {\n return (\n
\n {props.state.collections.map((collection) => {\n if (collection.items.length === 0) {\n return null;\n }\n\n const title = removeHighlightTags(collection.items[0]);\n\n return (\n (\n <>\n {item.__docsearch_parent && (\n \n \n {item.__docsearch_parent !==\n collection.items[index + 1]?.__docsearch_parent ? (\n \n ) : (\n \n )}\n \n \n )}\n\n
\n \n
\n \n )}\n renderAction={() => (\n
\n \n
\n )}\n />\n );\n })}\n\n {props.resultsFooterComponent && (\n
\n \n
\n )}\n
\n );\n}\n","import React from 'react';\n\nimport { RecentIcon, ResetIcon, StarIcon } from './icons';\nimport { Results } from './Results';\nimport type { ScreenStateProps } from './ScreenState';\nimport type { InternalDocSearchHit } from './types';\n\nexport type StartScreenTranslations = Partial<{\n recentSearchesTitle: string;\n noRecentSearchesText: string;\n saveRecentSearchButtonTitle: string;\n removeRecentSearchButtonTitle: string;\n favoriteSearchesTitle: string;\n removeFavoriteSearchButtonTitle: string;\n}>;\n\ntype StartScreenProps = Omit<\n ScreenStateProps,\n 'translations'\n> & {\n hasCollections: boolean;\n translations?: StartScreenTranslations;\n};\n\nexport function StartScreen({ translations = {}, ...props }: StartScreenProps) {\n const {\n recentSearchesTitle = 'Recent',\n noRecentSearchesText = 'No recent searches',\n saveRecentSearchButtonTitle = 'Save this search',\n removeRecentSearchButtonTitle = 'Remove this search from history',\n favoriteSearchesTitle = 'Favorite',\n removeFavoriteSearchButtonTitle = 'Remove this search from favorites',\n } = translations;\n if (props.state.status === 'idle' && props.hasCollections === false) {\n if (props.disableUserPersonalization) {\n return null;\n }\n\n return (\n
\n

{noRecentSearchesText}

\n
\n );\n }\n\n if (props.hasCollections === false) {\n return null;\n }\n\n return (\n
\n (\n
\n \n
\n )}\n renderAction={({\n item,\n runFavoriteTransition,\n runDeleteTransition,\n }) => (\n <>\n
\n {\n event.preventDefault();\n event.stopPropagation();\n runFavoriteTransition(() => {\n props.favoriteSearches.add(item);\n props.recentSearches.remove(item);\n props.refresh();\n });\n }}\n >\n \n \n
\n
\n {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(() => {\n props.recentSearches.remove(item);\n props.refresh();\n });\n }}\n >\n \n \n
\n \n )}\n />\n\n (\n
\n \n
\n )}\n renderAction={({ item, runDeleteTransition }) => (\n
\n {\n event.preventDefault();\n event.stopPropagation();\n runDeleteTransition(() => {\n props.favoriteSearches.remove(item);\n props.refresh();\n });\n }}\n >\n \n \n
\n )}\n />\n
\n );\n}\n","import type {\n AutocompleteApi,\n AutocompleteState,\n BaseItem,\n} from '@algolia/autocomplete-core';\nimport React from 'react';\n\nimport type { DocSearchProps } from './DocSearch';\nimport type { ErrorScreenTranslations } from './ErrorScreen';\nimport { ErrorScreen } from './ErrorScreen';\nimport type { NoResultsScreenTranslations } from './NoResultsScreen';\nimport { NoResultsScreen } from './NoResultsScreen';\nimport { ResultsScreen } from './ResultsScreen';\nimport type { StartScreenTranslations } from './StartScreen';\nimport { StartScreen } from './StartScreen';\nimport type { StoredSearchPlugin } from './stored-searches';\nimport type { InternalDocSearchHit, StoredDocSearchHit } from './types';\n\nexport type ScreenStateTranslations = Partial<{\n errorScreen: ErrorScreenTranslations;\n startScreen: StartScreenTranslations;\n noResultsScreen: NoResultsScreenTranslations;\n}>;\n\nexport interface ScreenStateProps\n extends AutocompleteApi<\n TItem,\n React.FormEvent,\n React.MouseEvent,\n React.KeyboardEvent\n > {\n state: AutocompleteState;\n recentSearches: StoredSearchPlugin;\n favoriteSearches: StoredSearchPlugin;\n onItemClick: (\n item: InternalDocSearchHit,\n event: KeyboardEvent | MouseEvent\n ) => void;\n inputRef: React.MutableRefObject;\n hitComponent: DocSearchProps['hitComponent'];\n indexName: DocSearchProps['indexName'];\n disableUserPersonalization: boolean;\n resultsFooterComponent: DocSearchProps['resultsFooterComponent'];\n translations: ScreenStateTranslations;\n getMissingResultsUrl?: DocSearchProps['getMissingResultsUrl'];\n}\n\nexport const ScreenState = React.memo(\n ({ translations = {}, ...props }: ScreenStateProps) => {\n if (props.state.status === 'error') {\n return ;\n }\n\n const hasCollections = props.state.collections.some(\n (collection) => collection.items.length > 0\n );\n\n if (!props.state.query) {\n return (\n \n );\n }\n\n if (hasCollections === false) {\n return (\n \n );\n }\n\n return ;\n },\n function areEqual(_prevProps, nextProps) {\n // We don't update the screen when Autocomplete is loading or stalled to\n // avoid UI flashes:\n // - Empty screen → Results screen\n // - NoResults screen → NoResults screen with another query\n return (\n nextProps.state.status === 'loading' ||\n nextProps.state.status === 'stalled'\n );\n }\n);\n","import type {\n AutocompleteApi,\n AutocompleteState,\n} from '@algolia/autocomplete-core';\nimport type { MutableRefObject } from 'react';\nimport React from 'react';\n\nimport { MAX_QUERY_SIZE } from './constants';\nimport { LoadingIcon } from './icons/LoadingIcon';\nimport { ResetIcon } from './icons/ResetIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nimport type { InternalDocSearchHit } from './types';\n\nexport type SearchBoxTranslations = Partial<{\n resetButtonTitle: string;\n resetButtonAriaLabel: string;\n cancelButtonText: string;\n cancelButtonAriaLabel: string;\n}>;\n\ninterface SearchBoxProps\n extends AutocompleteApi<\n InternalDocSearchHit,\n React.FormEvent,\n React.MouseEvent,\n React.KeyboardEvent\n > {\n state: AutocompleteState;\n autoFocus: boolean;\n inputRef: MutableRefObject;\n onClose: () => void;\n isFromSelection: boolean;\n translations?: SearchBoxTranslations;\n}\n\nexport function SearchBox({ translations = {}, ...props }: SearchBoxProps) {\n const {\n resetButtonTitle = 'Clear the query',\n resetButtonAriaLabel = 'Clear the query',\n cancelButtonText = 'Cancel',\n cancelButtonAriaLabel = 'Cancel',\n } = translations;\n const { onReset } = props.getFormProps({\n inputElement: props.inputRef.current,\n });\n\n React.useEffect(() => {\n if (props.autoFocus && props.inputRef.current) {\n props.inputRef.current.focus();\n }\n }, [props.autoFocus, props.inputRef]);\n\n React.useEffect(() => {\n if (props.isFromSelection && props.inputRef.current) {\n props.inputRef.current.select();\n }\n }, [props.isFromSelection, props.inputRef]);\n\n return (\n <>\n {\n event.preventDefault();\n }}\n onReset={onReset}\n >\n \n\n
\n \n
\n\n \n\n

ZW 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�zBE;A6`RoYnYVbGchb9$^iIU2 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 diff --git a/docs/.vitepress/dist/assets/inter-roman-vietnamese.paY3CzEB.woff2 b/docs/.vitepress/dist/assets/inter-roman-vietnamese.paY3CzEB.woff2 deleted file mode 100644 index 5a9f9cb9ca0cd78b6ea2f3e5c9d2838dc8895598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8492 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 a!Vc~9U7SGB8$q3Ii#9CnAx#qS0RRAsKuhfa diff --git a/docs/.vitepress/dist/assets/style.vhD-8WCU.css b/docs/.vitepress/dist/assets/style.vhD-8WCU.css deleted file mode 100644 index 84b799a..0000000 --- a/docs/.vitepress/dist/assets/style.vhD-8WCU.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-cyrillic.jIZ9REo5.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-greek.Cb5wWeGA.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-greek-ext.9JiNzaSO.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-latin.bvIUbFQP.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-latin-ext.GZWE-KO4.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Warp/assets/inter-roman-vietnamese.paY3CzEB.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-cyrillic.-nLMcIwj.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-greek.PSfer2Kc.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-greek-ext.hznxWNZO.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-latin.27E69YJn.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-latin-ext.RnFly65-.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Warp/assets/inter-italic-vietnamese.xzQHe1q1.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-green-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-green-1);--vp-code-line-diff-remove-color: var(--vp-c-red-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red-1);--vp-code-line-warning-color: var(--vp-c-yellow-soft);--vp-code-line-error-color: var(--vp-c-red-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-brand-soft);--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-gray-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-brand-1);--vp-badge-tip-bg: var(--vp-c-brand-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{display:inline-block;margin:auto 2px -2px}mjx-container>svg{margin:auto}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-brand-1)}.custom-block.tip a:hover{color:var(--vp-c-brand-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-f87ff6e4]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-f87ff6e4]{padding:96px 32px 168px}}.code[data-v-f87ff6e4]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-f87ff6e4]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-f87ff6e4]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-f87ff6e4]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-f87ff6e4]{padding-top:20px}.link[data-v-f87ff6e4]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-f87ff6e4]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-b933a997]{position:relative;z-index:1}.nested[data-v-b933a997]{padding-right:16px;padding-left:16px}.outline-link[data-v-b933a997]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-b933a997]:hover,.outline-link.active[data-v-b933a997]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-b933a997]{padding-left:13px}.VPDocAsideOutline[data-v-935f8a84]{display:none}.VPDocAsideOutline.has-outline[data-v-935f8a84]{display:block}.content[data-v-935f8a84]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-935f8a84]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-935f8a84]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7e05ebdb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7e05ebdb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-48f9bb55]{margin-top:64px}.edit-info[data-v-48f9bb55]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-48f9bb55]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-48f9bb55]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-48f9bb55]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-48f9bb55]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-48f9bb55]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-48f9bb55]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-48f9bb55]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-48f9bb55]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-48f9bb55]{margin-left:auto;text-align:right}.desc[data-v-48f9bb55]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-48f9bb55]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-ad5bd23b]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-ad5bd23b]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-ad5bd23b]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-ad5bd23b]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-ad5bd23b]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-ad5bd23b]{display:flex;justify-content:center}.VPDoc .aside[data-v-ad5bd23b]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-ad5bd23b]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-ad5bd23b]{max-width:1104px}}.container[data-v-ad5bd23b]{margin:0 auto;width:100%}.aside[data-v-ad5bd23b]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-ad5bd23b]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-ad5bd23b]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-ad5bd23b]::-webkit-scrollbar{display:none}.aside-curtain[data-v-ad5bd23b]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-ad5bd23b]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-ad5bd23b]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-ad5bd23b]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-ad5bd23b]{order:1;margin:0;min-width:640px}}.content-container[data-v-ad5bd23b]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-ad5bd23b]{max-width:688px}.external-link-icon-enabled :is(.vp-doc a[href*="://"][data-v-ad5bd23b],.vp-doc a[target=_blank][data-v-ad5bd23b]):after{content:"";color:currentColor}.VPButton[data-v-c1c5efc1]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-c1c5efc1]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-c1c5efc1]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-c1c5efc1]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-c1c5efc1]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-c1c5efc1]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-c1c5efc1]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-c1c5efc1]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-c1c5efc1]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-c1c5efc1]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-c1c5efc1]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-c1c5efc1]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-c1c5efc1]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-da5d1713]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-da5d1713]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-da5d1713]{flex-direction:row}}.main[data-v-da5d1713]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-da5d1713]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-da5d1713]{text-align:left}}@media (min-width: 960px){.main[data-v-da5d1713]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-da5d1713]{max-width:592px}}.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0 auto}.name[data-v-da5d1713]{color:var(--vp-home-hero-name-color)}.clip[data-v-da5d1713]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-da5d1713],.text[data-v-da5d1713]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0}}.tagline[data-v-da5d1713]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-da5d1713]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-da5d1713]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0}}.actions[data-v-da5d1713]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-da5d1713]{justify-content:center}@media (min-width: 640px){.actions[data-v-da5d1713]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-da5d1713]{justify-content:flex-start}}.action[data-v-da5d1713]{flex-shrink:0;padding:6px}.image[data-v-da5d1713]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-da5d1713]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-da5d1713]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-da5d1713]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-da5d1713]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-da5d1713]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-da5d1713]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-da5d1713]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-da5d1713]{width:320px;height:320px}}[data-v-da5d1713] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-da5d1713] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-da5d1713] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-33204567]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-33204567]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-33204567]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-33204567]>.VPImage{margin-bottom:20px}.icon[data-v-33204567]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-33204567]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-33204567]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-33204567]{padding-top:8px}.link-text-value[data-v-33204567]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-33204567]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPContent[data-v-669faec9]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-669faec9]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-669faec9]{margin:0}@media (min-width: 960px){.VPContent[data-v-669faec9]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-669faec9]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-669faec9]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-af18c0d5]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-af18c0d5]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-af18c0d5]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-af18c0d5]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-af18c0d5]{color:var(--vp-c-text-1)}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-af18c0d5]{font-size:14px}}.icon[data-v-af18c0d5]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}.open>.icon[data-v-af18c0d5]{transform:rotate(90deg)}.items[data-v-af18c0d5]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-af18c0d5]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-af18c0d5]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-af18c0d5]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-af18c0d5]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-af18c0d5]{transition:all .2s ease-out}.flyout-leave-active[data-v-af18c0d5]{transition:all .15s ease-in}.flyout-enter-from[data-v-af18c0d5],.flyout-leave-to[data-v-af18c0d5]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-0282ae07]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-0282ae07]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-0282ae07]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-0282ae07]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-0282ae07]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-0282ae07]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-0282ae07]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-0282ae07]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-0282ae07]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-0282ae07]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-0282ae07]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-0282ae07]{display:none}}.menu-icon[data-v-0282ae07]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-0282ae07]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-0282ae07]{padding:12px 32px 11px}}.VPSwitch[data-v-b1685198]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-b1685198]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-b1685198]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-b1685198]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-b1685198] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-b1685198] svg{fill:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-1736f215]{opacity:1}.moon[data-v-1736f215],.dark .sun[data-v-1736f215]{opacity:0}.dark .moon[data-v-1736f215]{opacity:1}.dark .VPSwitchAppearance[data-v-1736f215] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-e6aabb21]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-e6aabb21]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-43f1e123]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-43f1e123]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-43f1e123]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-43f1e123]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-9c007e85]{position:relative}.VPFlyout[data-v-9c007e85]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-9c007e85]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-9c007e85]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-9c007e85]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-9c007e85]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-9c007e85],.button[aria-expanded=true]+.menu[data-v-9c007e85]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-9c007e85]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-9c007e85]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-9c007e85]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-9c007e85]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-9c007e85]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-9c007e85]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-9c007e85]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-f80f8133]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-f80f8133]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-f80f8133]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-d0bd9dde]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-d0bd9dde]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-d0bd9dde]{display:none}}.trans-title[data-v-d0bd9dde]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-d0bd9dde],.item.social-links[data-v-d0bd9dde]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-d0bd9dde]{min-width:176px}.appearance-action[data-v-d0bd9dde]{margin-right:-2px}.social-links-list[data-v-d0bd9dde]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-42ef59de]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-42ef59de],.VPNavBarMenuLink[data-v-42ef59de]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @docsearch/css 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-8460f0a8]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-8460f0a8]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-8460f0a8]{border-bottom-color:var(--vp-c-divider)}}[data-v-8460f0a8] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-19c990f1]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .5s}.VPNavBar.has-local-nav[data-v-19c990f1]{background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar.has-local-nav[data-v-19c990f1]{background-color:transparent}.VPNavBar[data-v-19c990f1]:not(.has-sidebar):not(.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-19c990f1]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-19c990f1]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-19c990f1]{padding:0}}.container[data-v-19c990f1]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-19c990f1],.container>.content[data-v-19c990f1]{pointer-events:none}.container[data-v-19c990f1] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-19c990f1]{max-width:100%}}.title[data-v-19c990f1]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-19c990f1]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-19c990f1]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-19c990f1]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-19c990f1]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-19c990f1]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-19c990f1]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-19c990f1]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.top) .content-body[data-v-19c990f1]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-19c990f1]{column-gap:.5rem}}.menu+.translations[data-v-19c990f1]:before,.menu+.appearance[data-v-19c990f1]:before,.menu+.social-links[data-v-19c990f1]:before,.translations+.appearance[data-v-19c990f1]:before,.appearance+.social-links[data-v-19c990f1]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-19c990f1]:before,.translations+.appearance[data-v-19c990f1]:before{margin-right:16px}.appearance+.social-links[data-v-19c990f1]:before{margin-left:16px}.social-links[data-v-19c990f1]{margin-right:-8px}.divider[data-v-19c990f1]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-19c990f1]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-19c990f1]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-19c990f1]{width:100%;height:1px;transition:background-color .5s}.VPNavBar.has-local-nav .divider-line[data-v-19c990f1]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.top) .divider-line[data-v-19c990f1]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.top) .divider[data-v-19c990f1]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-2d7af913]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-2d7af913]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-05f27b2a]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-05f27b2a]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-19976ae1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-19976ae1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-65ef89ca]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-65ef89ca]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-65ef89ca]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-65ef89ca]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-65ef89ca]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-65ef89ca]{transform:rotate(45deg)}.button[data-v-65ef89ca]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-65ef89ca]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-65ef89ca]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-65ef89ca]:first-child{padding-top:0}.group+.group[data-v-65ef89ca],.group+.item[data-v-65ef89ca]{padding-top:4px}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-cc5739dd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-cc5739dd],.VPNavScreen.fade-leave-active[data-v-cc5739dd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-cc5739dd],.VPNavScreen.fade-leave-active .container[data-v-cc5739dd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-cc5739dd],.VPNavScreen.fade-leave-to[data-v-cc5739dd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-cc5739dd],.VPNavScreen.fade-leave-to .container[data-v-cc5739dd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-cc5739dd]{display:none}}.container[data-v-cc5739dd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-cc5739dd],.menu+.appearance[data-v-cc5739dd],.translations+.appearance[data-v-cc5739dd]{margin-top:24px}.menu+.social-links[data-v-cc5739dd]{margin-top:16px}.appearance+.social-links[data-v-cc5739dd]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-e31bd47b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-e31bd47b]{padding-bottom:10px}.item[data-v-e31bd47b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-e31bd47b]{cursor:pointer}.indicator[data-v-e31bd47b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-e31bd47b]{background-color:var(--vp-c-brand-1)}.link[data-v-e31bd47b]{display:flex;align-items:center;flex-grow:1}.text[data-v-e31bd47b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-e31bd47b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-e31bd47b],.VPSidebarItem.level-2 .text[data-v-e31bd47b],.VPSidebarItem.level-3 .text[data-v-e31bd47b],.VPSidebarItem.level-4 .text[data-v-e31bd47b],.VPSidebarItem.level-5 .text[data-v-e31bd47b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-e31bd47b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.caret[data-v-e31bd47b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-e31bd47b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-e31bd47b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-e31bd47b]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-e31bd47b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-e31bd47b],.VPSidebarItem.level-2 .items[data-v-e31bd47b],.VPSidebarItem.level-3 .items[data-v-e31bd47b],.VPSidebarItem.level-4 .items[data-v-e31bd47b],.VPSidebarItem.level-5 .items[data-v-e31bd47b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-e31bd47b]{display:none}.VPSidebar[data-v-575e6a36]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-575e6a36]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-575e6a36]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-575e6a36]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-575e6a36]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-575e6a36]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-575e6a36]{outline:0}.group+.group[data-v-575e6a36]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-575e6a36]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-0f60ec36]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0f60ec36]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0f60ec36]{top:14px;left:16px}}.Layout[data-v-5a346dfe]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-96bd69d5]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-96bd69d5]{margin:0 auto;max-width:1152px}.love[data-v-96bd69d5]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-96bd69d5]{width:28px;height:28px;fill:currentColor}.message[data-v-96bd69d5]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-96bd69d5]{padding-top:32px}.action[data-v-96bd69d5]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-0d3d0d4d]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-0d3d0d4d]{padding:32px}.VPTeamMembersItem.small .data[data-v-0d3d0d4d]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-0d3d0d4d]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-0d3d0d4d]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-0d3d0d4d]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-0d3d0d4d]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-0d3d0d4d]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-0d3d0d4d]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-0d3d0d4d]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-0d3d0d4d]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-0d3d0d4d]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-0d3d0d4d]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-0d3d0d4d]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-0d3d0d4d]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-0d3d0d4d]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-0d3d0d4d]{text-align:center}.avatar[data-v-0d3d0d4d]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-0d3d0d4d]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-0d3d0d4d]{margin:0;font-weight:600}.affiliation[data-v-0d3d0d4d]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-0d3d0d4d]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-0d3d0d4d]:hover{color:var(--vp-c-brand-1)}.desc[data-v-0d3d0d4d]{margin:0 auto}.desc[data-v-0d3d0d4d] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-0d3d0d4d]{display:flex;justify-content:center;height:56px}.sp-link[data-v-0d3d0d4d]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-0d3d0d4d]:hover,.sp .sp-link.link[data-v-0d3d0d4d]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-0d3d0d4d]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1)}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #fe5234 30%, #fe9934);--vp-home-hero-image-background-image: linear-gradient(-45deg, #fe5234 50%, #fe9934 50%);--vp-home-hero-image-filter: blur(40px)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(56px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(72px)}}:root{--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-brand-soft);--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft)}.DocSearch{--docsearch-primary-color: var(--vp-c-brand-1) !important}.VPNavBarTitle .title{color:#f90} diff --git a/docs/.vitepress/dist/guide/example.html b/docs/.vitepress/dist/guide/example.html index c1ec141..dcddc9f 100644 --- a/docs/.vitepress/dist/guide/example.html +++ b/docs/.vitepress/dist/guide/example.html @@ -5,20 +5,21 @@ Example | Warp - - + + + - - - - - + + + + + -