@abtnode/webapp 1.8.8 → 1.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blocklet.js +1 -1
- package/blocklet.yml +1 -1
- package/build/asset-manifest.json +7 -7
- package/build/index.html +1 -1
- package/build/static/js/4897.70c3ba7e.chunk.js +2 -0
- package/build/static/js/4897.70c3ba7e.chunk.js.map +1 -0
- package/build/static/js/976.ba1373c1.chunk.js +2 -0
- package/build/static/js/976.ba1373c1.chunk.js.map +1 -0
- package/build/static/js/{main.aff52eac.js → main.5b310dc7.js} +3 -3
- package/build/static/js/{main.aff52eac.js.LICENSE.txt → main.5b310dc7.js.LICENSE.txt} +0 -0
- package/build/static/js/{main.aff52eac.js.map → main.5b310dc7.js.map} +1 -1
- package/package.json +1 -1
- package/build/static/js/4897.f0832280.chunk.js +0 -2
- package/build/static/js/4897.f0832280.chunk.js.map +0 -1
- package/build/static/js/976.29f3d473.chunk.js +0 -2
- package/build/static/js/976.29f3d473.chunk.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/976.29f3d473.chunk.js","mappings":"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","sources":["../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromiseList.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/createStore.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/flatten.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/getAutocompleteSetters.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/getItemsCount.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/generateAutocompleteId.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/noop.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getNormalizedSources.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/utils/mapToAlgoliaResponse.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/resolve.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/createCancelablePromise.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/getActiveItem.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/utils/isSamsung.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/getPropGetters.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/utils/isOrContainsNode.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/version.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/userAgents.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/utils/getNextActiveItemId.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/stateReducer.js","../../../node_modules/@algolia/autocomplete-core/dist/esm/createAutocomplete.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/createRef.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/debounce.js","../../../node_modules/htm/dist/htm.module.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/SearchIcon.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/ClearIcon.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/LoadingIcon.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/setProperties.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/getCreateDomElement.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/elements/Input.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/createAutocompleteDom.js","../../../node_modules/preact/src/constants.js","../../../node_modules/preact/src/util.js","../../../node_modules/preact/src/options.js","../../../node_modules/preact/src/create-element.js","../../../node_modules/preact/src/component.js","../../../node_modules/preact/src/diff/children.js","../../../node_modules/preact/src/diff/props.js","../../../node_modules/preact/src/diff/index.js","../../../node_modules/preact/src/render.js","../../../node_modules/@algolia/autocomplete-shared/dist/esm/getAttributeValueByPath.js","../../../node_modules/preact/src/diff/catch-error.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/constants/index.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAttribute.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitHighlight.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/components/Highlight.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/isPartHighlighted.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/reverseHighlightedParts.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseHighlight.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseHighlight.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitSnippet.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/components/ReverseSnippet.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/highlight/parseAlgoliaHitReverseSnippet.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/components/Snippet.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/getHTMLElement.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeClassNames.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/getDefaultOptions.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/getPanelPlacementStyle.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/render.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/userAgents.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/mergeDeep.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/utils/pickBy.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/autocomplete.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/createEffectWrapper.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/createReactiveWrapper.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/requester/createRequester.js","../../../node_modules/@algolia/autocomplete-preset-algolia/dist/esm/search/fetchAlgoliaResults.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/createAlgoliaRequester.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaFacets.js","../../../node_modules/@algolia/autocomplete-js/dist/esm/requesters/getAlgoliaResults.js","../../../node_modules/@arcblock/ux/lib/Blocklet/blocklet.js","../../../node_modules/@arcblock/ux/lib/Blocklet/index.js","../../../node_modules/@arcblock/ux/lib/Blocklet/utils.js","../../../node_modules/@blocklet/list/lib/assets/locale.js","../../../node_modules/@blocklet/list/lib/base.js","../../../node_modules/@blocklet/list/lib/components/aside.js","../../../node_modules/@blocklet/list/lib/components/autocomplete/index.js","../../../node_modules/@blocklet/list/lib/components/autocomplete/item.js","../../../node_modules/@blocklet/list/lib/components/custom-select/button.js","../../../node_modules/@blocklet/list/lib/components/custom-select/custom-select.js","../../../node_modules/@blocklet/list/lib/components/custom-select/index.js","../../../node_modules/@blocklet/list/lib/components/filter/custom-chip.js","../../../node_modules/@blocklet/list/lib/components/filter/group.js","../../../node_modules/@blocklet/list/lib/components/filter/icon.js","../../../node_modules/@blocklet/list/lib/components/filter/index.js","../../../node_modules/@blocklet/list/lib/components/list/empty.js","../../../node_modules/@blocklet/list/lib/components/list/index.js","../../../node_modules/@blocklet/list/lib/contexts/filter.js","../../../node_modules/@blocklet/list/lib/index.js","../../../node_modules/@blocklet/list/lib/libs/constant.js","../../../node_modules/@blocklet/list/lib/libs/prop-types.js","../../../node_modules/@blocklet/list/lib/libs/utils.js","../../../node_modules/@ahooksjs/use-request/es/utils/utils.js","../../../node_modules/@ahooksjs/use-request/es/utils/cache.js","../../../node_modules/@ahooksjs/use-request/es/utils/limit.js","../../../node_modules/@ahooksjs/use-request/es/utils/usePersistFn.js","../../../node_modules/@ahooksjs/use-request/es/utils/useUpdateEffect.js","../../../node_modules/@ahooksjs/use-request/es/utils/windowFocus.js","../../../node_modules/@ahooksjs/use-request/es/utils/windowVisible.js","../../../node_modules/@ahooksjs/use-request/es/useAsync.js","../../../node_modules/@ahooksjs/use-request/es/useLoadMore.js","../../../node_modules/@ahooksjs/use-request/es/usePaginated.js","../../../node_modules/@ahooksjs/use-request/es/configContext.js","../../../node_modules/@ahooksjs/use-request/es/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useUpdateEffect/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useControllableValue/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDynamicList/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useEventEmitter/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/utils/dom.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/usePersistFn/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/utils/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useUnmount/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSize/useRafState.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSize/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useResponsive/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useVirtualList/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/createUseStorageState/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useLocalStorageState/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSessionStorageState/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useUpdateLayoutEffect/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useToggle/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useBoolean/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useEventListener/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDocumentVisibility/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/utils/canUseDom.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSelections/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useCreation/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useThrottleFn/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useThrottle/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useThrottleEffect/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDebounceFn/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDebounce/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/usePrevious/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useMouse/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useScroll/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useClickAway/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useFullscreen/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useInViewport/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useKeyPress/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useHover/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useAntdTable/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useFusionTable/fusionAdapter.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useFusionTable/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSet/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useMap/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDrop/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDrag/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useMount/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useTextSelection/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useCounter/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useUpdate/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useEventTarget/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useHistoryTravel/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useDebounceEffect/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useCookieState/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSetState/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useInterval/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useWhyDidYouUpdate/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useTitle/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useNetwork/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useTimeout/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useReactive/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useWebSocket/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useFavicon/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useCountDown/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useLockFn/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useTrackedEffect/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useUnmountedRef/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useExternal/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/useSafeState/index.js","../../../node_modules/@blocklet/list/node_modules/ahooks/es/index.js","../../../node_modules/@blocklet/list/node_modules/intersection-observer/intersection-observer.js","../../../node_modules/@mui/icons-material/ArrowDropDown.js","../../../node_modules/@mui/icons-material/DeleteOutline.js","../../../node_modules/@mui/icons-material/Face.js","../../../node_modules/@mui/icons-material/FilterAltOutlined.js","../../../node_modules/@mui/icons-material/KeyboardArrowDown.js","../../../node_modules/@mui/icons-material/Launch.js","../../../node_modules/@mui/icons-material/ShoppingCart.js","../../../node_modules/@mui/icons-material/Sort.js","../../../node_modules/@mui/icons-material/VerifiedUser.js","../../../node_modules/color-name/index.js","../../../node_modules/color-string/index.js","../../../node_modules/color/index.js","../../../node_modules/color/node_modules/color-convert/conversions.js","../../../node_modules/color/node_modules/color-convert/index.js","../../../node_modules/color/node_modules/color-convert/route.js","../../../node_modules/lodash.debounce/index.js","../../../node_modules/lodash.throttle/index.js","../../../node_modules/lodash/orderBy.js","../../../node_modules/react-intersection-observer-hook/src/useIntersectionObserver.ts","../../../node_modules/react-intersection-observer-hook/src/useTrackVisibility.ts","../../../node_modules/react-infinite-scroll-hook/src/useInfiniteScroll.ts","../../../node_modules/simple-swizzle/index.js","../../../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","webpack://@abtnode/webapp/../../node_modules/@algolia/autocomplete-theme-classic/dist/theme.css?37db"],"sourcesContent":["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 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\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\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 flatten(values) {\n return values.reduce(function (a, b) {\n return a.concat(b);\n }, []);\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; }\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\nimport { flatten } from '@algolia/autocomplete-shared';\nexport function getAutocompleteSetters(_ref) {\n var store = _ref.store;\n\n var setActiveItemId = function setActiveItemId(value) {\n store.dispatch('setActiveItemId', value);\n };\n\n var setQuery = function setQuery(value) {\n store.dispatch('setQuery', value);\n };\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\n var setIsOpen = function setIsOpen(value) {\n store.dispatch('setIsOpen', value);\n };\n\n var setStatus = function setStatus(value) {\n store.dispatch('setStatus', value);\n };\n\n var setContext = function setContext(value) {\n store.dispatch('setContext', value);\n };\n\n return {\n setActiveItemId: setActiveItemId,\n setQuery: setQuery,\n setCollections: setCollections,\n setIsOpen: setIsOpen,\n setStatus: setStatus,\n setContext: setContext\n };\n}","export function getItemsCount(state) {\n if (state.collections.length === 0) {\n return 0;\n }\n\n return state.collections.reduce(function (sum, collection) {\n return sum + collection.items.length;\n }, 0);\n}","var autocompleteId = 0;\nexport function generateAutocompleteId() {\n return \"autocomplete-\".concat(autocompleteId++);\n}","export var noop = function noop() {};","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; }\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 _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\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 // 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\n if (seenSourceIds.includes(source.sourceId)) {\n throw new Error(\"[Autocomplete] The `sourceId` \".concat(JSON.stringify(source.sourceId), \" is not unique.\"));\n }\n\n seenSourceIds.push(source.sourceId);\n\n var normalizedSource = _objectSpread({\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 }, source);\n\n return Promise.resolve(normalizedSource);\n }));\n });\n}","function _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 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\nimport { getItemsCount, generateAutocompleteId, flatten } from '@algolia/autocomplete-shared';\nimport { getNormalizedSources } from './utils';\nexport function getDefaultProps(props, pluginSubscribers) {\n var _props$id;\n\n /* eslint-disable no-restricted-globals */\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n\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 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\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\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\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\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\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\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\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\n return (_x$onActive = x.onActive) === null || _x$onActive === void 0 ? void 0 : _x$onActive.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 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\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 sourcesBySourceId = 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 reshapeSources = props.reshape({\n sources: Object.values(sourcesBySourceId),\n sourcesBySourceId: sourcesBySourceId,\n state: state\n }); // We reconstruct the collections with the items modified by the `reshape` prop.\n\n return flatten(reshapeSources).filter(Boolean).map(function (source) {\n return {\n source: source,\n items: source.getItems()\n };\n });\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; }\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\nexport function mapToAlgoliaResponse(rawResults) {\n var results = rawResults.map(function (result) {\n var _hits;\n\n return _objectSpread(_objectSpread({}, result), {}, {\n hits: (_hits = result.hits) === null || _hits === void 0 ? void 0 : _hits.map(function (hit) {\n // Bring support for the Insights plugin.\n return _objectSpread(_objectSpread({}, hit), {}, {\n __autocomplete_indexName: result.index,\n __autocomplete_queryID: result.queryID\n });\n })\n });\n });\n return {\n results: results,\n hits: results.map(function (result) {\n return result.hits;\n }).filter(Boolean),\n facetHits: results.map(function (result) {\n var _facetHits;\n\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); }\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 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\nimport { decycle, flatten, invariant } from '@algolia/autocomplete-shared';\nimport { mapToAlgoliaResponse } from './utils';\n\nfunction isDescription(item) {\n return Boolean(item.execute);\n}\n\nfunction isRequesterDescription(description) {\n return Boolean(description === null || description === void 0 ? void 0 : description.execute);\n}\n\nexport function preResolve(itemsOrDescription, sourceId) {\n if (isRequesterDescription(itemsOrDescription)) {\n return _objectSpread(_objectSpread({}, itemsOrDescription), {}, {\n requests: itemsOrDescription.queries.map(function (query) {\n return {\n query: query,\n sourceId: sourceId,\n transformResponse: itemsOrDescription.transformResponse\n };\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\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\n if (container) {\n var _container$items;\n\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\n return acc;\n }, []);\n var values = packed.map(function (maybeDescription) {\n if (!isDescription(maybeDescription)) {\n return Promise.resolve(maybeDescription);\n }\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) {\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 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}","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\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}\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}\n\ncreateCancelablePromise.resolve = function (value) {\n return cancelable(Promise.resolve(value));\n};\n\ncreateCancelablePromise.reject = function (reason) {\n return cancelable(Promise.reject(reason));\n};\n\nexport function cancelable(promise) {\n return createInternalCancelablePromise(promise, {\n isCanceled: false,\n onCancelList: []\n });\n}\n\nfunction createCallback(onResult, state, fallback) {\n if (!onResult) {\n return fallback;\n }\n\n return function callback(arg) {\n if (state.isCanceled) {\n return arg;\n }\n\n return onResult(arg);\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 }, []); // Based on the accumulated counts, we can infer the index of the suggestion.\n\n var collectionIndex = accumulatedCollectionsCount.reduce(function (acc, current) {\n if (current <= state.activeItemId) {\n return acc + 1;\n }\n\n return acc;\n }, 0);\n return state.collections[collectionIndex];\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 */\n\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\n while (isOffsetFound === false) {\n var currentCollection = state.collections[counter];\n\n if (currentCollection === collection) {\n isOffsetFound = true;\n break;\n }\n\n previousItemsOffset += currentCollection.items.length;\n counter++;\n }\n\n return state.activeItemId - previousItemsOffset;\n}\n\nexport function getActiveItem(state) {\n var collection = getCollectionFromActiveItemId(state);\n\n if (!collection) {\n return null;\n }\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 _excluded = [\"event\", \"nextState\", \"props\", \"query\", \"refresh\", \"store\"];\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 { 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\n if (lastStalledId) {\n props.environment.clearTimeout(lastStalledId);\n }\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\n if (!query && props.openOnFocus === false) {\n var _nextState$isOpen;\n\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 })); // 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\n var _request = cancelable(runConcurrentSafePromise(collections).then(function () {\n return Promise.resolve();\n }));\n\n return store.pendingRequests.add(_request);\n }\n\n setStatus('loading');\n lastStalledId = props.environment.setTimeout(function () {\n setStatus('stalled');\n }, props.stallThreshold); // 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\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);\n });\n })).then(resolve).then(function (responses) {\n return postResolve(responses, sources);\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\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 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\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\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\n latestResolvedId = currentPromiseId;\n latestResolvedValue = x;\n return x;\n });\n };\n}","var _excluded = [\"event\", \"props\", \"refresh\", \"store\"];\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 { 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\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\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\n\n var triggerOnActive = function triggerOnActive() {\n var highlightedItem = getActiveItem(store.getState());\n\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\n\n event.preventDefault(); // When re-opening the panel, we need to split the logic to keep the actions\n // synchronized as `onInput` returns a promise.\n\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(); // 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\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); // 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\n store.pendingRequests.cancelAll();\n } else if (event.key === 'Tab') {\n store.dispatch('blur', null); // 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\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\n return;\n } // This prevents the `onSubmit` event to be sent because an item is\n // highlighted.\n\n\n event.preventDefault();\n\n var _ref2 = getActiveItem(store.getState()),\n item = _ref2.item,\n itemInputValue = _ref2.itemInputValue,\n itemUrl = _ref2.itemUrl,\n source = _ref2.source;\n\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) {// 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\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}","var regex = /((gt|sm)-|galaxy nexus)|samsung[- ]/i;\nexport function isSamsung(userAgent) {\n return Boolean(userAgent && userAgent.match(regex));\n}","var _excluded = [\"props\", \"refresh\", \"store\"],\n _excluded2 = [\"inputElement\", \"formElement\", \"panelElement\"],\n _excluded3 = [\"inputElement\"],\n _excluded4 = [\"inputElement\", \"maxLength\"],\n _excluded5 = [\"item\", \"source\"];\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 { 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\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\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\n if (!isAutocompleteInteraction || event.target === inputElement) {\n return;\n } // @TODO: support cases where there are multiple Autocomplete instances.\n // Right now, a second instance makes this computation return false.\n\n\n var isTargetWithinAutocomplete = [formElement, panelElement].some(function (contextNode) {\n return isOrContainsNode(contextNode, event.target);\n });\n\n if (isTargetWithinAutocomplete === false) {\n store.dispatch('blur', null); // 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\n if (!props.debug) {\n store.pendingRequests.cancelAll();\n }\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\n inputElement.blur();\n }\n }, rest);\n };\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\n var getFormProps = function getFormProps(providedProps) {\n var inputElement = providedProps.inputElement,\n rest = _objectWithoutProperties(providedProps, _excluded3);\n\n return _objectSpread({\n action: '',\n noValidate: true,\n role: 'search',\n onSubmit: function onSubmit(event) {\n var _providedProps$inputE;\n\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\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\n var getInputProps = function getInputProps(providedProps) {\n var _props$environment$na;\n\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\n store.dispatch('focus', null);\n }\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\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\n var getLabelProps = function getLabelProps(rest) {\n return _objectSpread({\n htmlFor: \"\".concat(props.id, \"-input\"),\n id: \"\".concat(props.id, \"-label\")\n }, rest);\n };\n\n var getListProps = function getListProps(rest) {\n return _objectSpread({\n role: 'listbox',\n 'aria-labelledby': \"\".concat(props.id, \"-label\"),\n id: \"\".concat(props.id, \"-list\")\n }, rest);\n };\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\n var getItemProps = function getItemProps(providedProps) {\n var item = providedProps.item,\n source = providedProps.source,\n rest = _objectWithoutProperties(providedProps, _excluded5);\n\n return _objectSpread({\n id: \"\".concat(props.id, \"-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\n store.dispatch('mousemove', item.__autocomplete_id);\n var activeItem = getActiveItem(store.getState());\n\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\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 }); // 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\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\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}","export var version = '1.7.1';","import { version } from './version';\nexport var userAgents = [{\n segment: 'autocomplete-core',\n version: version\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; }\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\nimport { userAgents } from '@algolia/autocomplete-shared';\nexport function getMetadata(_ref) {\n var _, _options$__autocomple, _options$__autocomple2, _options$__autocomple3;\n\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\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\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\n var state = _ref.state;\n\n if (state.isOpen === false || state.activeItemId === null) {\n return null;\n }\n\n return ((_getActiveItem = getActiveItem(state)) === null || _getActiveItem === void 0 ? void 0 : _getActiveItem.itemInputValue) || null;\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\n if (moveAmount < 0 && (baseIndex === null || defaultActiveItemId !== null && baseIndex === 0)) {\n return itemCount + moveAmount;\n }\n\n var 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}","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; }\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\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\n case 'setQuery':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n query: action.payload,\n completion: null\n });\n }\n\n case 'setCollections':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n collections: action.payload\n });\n }\n\n case 'setIsOpen':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: action.payload\n });\n }\n\n case 'setStatus':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n status: action.payload\n });\n }\n\n case 'setContext':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n context: _objectSpread(_objectSpread({}, state.context), action.payload)\n });\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\n return _objectSpread(_objectSpread({}, nextState), {}, {\n completion: getCompletion({\n state: nextState\n })\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\n return _objectSpread(_objectSpread({}, _nextState), {}, {\n completion: getCompletion({\n state: _nextState\n })\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\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n query: '',\n status: 'idle',\n collections: []\n });\n }\n\n case 'submit':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: null,\n isOpen: false,\n status: 'idle'\n });\n }\n\n case 'reset':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: // 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 // 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\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\n case 'blur':\n {\n if (action.props.debug) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n isOpen: false,\n activeItemId: null\n });\n }\n\n case 'mousemove':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.payload\n });\n }\n\n case 'mouseleave':\n {\n return _objectSpread(_objectSpread({}, state), {}, {\n activeItemId: action.props.defaultActiveItemId\n });\n }\n\n default:\n invariant(false, \"The reducer action \".concat(JSON.stringify(action.type), \" is not supported.\"));\n return state;\n }\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; }\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\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 }, setters));\n\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 }, setters));\n }\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 query: store.getState().query,\n refresh: refresh,\n store: store\n }, setters));\n }\n\n props.plugins.forEach(function (plugin) {\n var _plugin$subscribe;\n\n return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {\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 }));\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 }, propGetters), setters);\n}","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\n if (timerId) {\n clearTimeout(timerId);\n }\n\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","var n=function(t,s,r,e){var u;s[0]=0;for(var h=1;h<s.length;h++){var p=s[h++],a=s[h]?(s[0]|=p?1:2,r[s[h++]]):s[++h];3===p?e[0]=a:4===p?e[1]=Object.assign(e[1]||{},a):5===p?(e[1]=e[1]||{})[s[++h]]=a:6===p?e[1][s[++h]]+=a+\"\":p?(u=t.apply(a,n(t,a,r,[\"\",null])),e.push(u),a[0]?s[0]|=2:(s[h-2]=0,s[h]=u)):e.push(a)}return e},t=new Map;export default function(s){var r=t.get(this);return r||(r=new Map,t.set(this,r)),(r=n(this,r.get(s)||(r.set(s,r=function(n){for(var t,s,r=1,e=\"\",u=\"\",h=[0],p=function(n){1===r&&(n||(e=e.replace(/^\\s*\\n\\s*|\\s*\\n\\s*$/g,\"\")))?h.push(0,n,e):3===r&&(n||e)?(h.push(3,n,e),r=2):2===r&&\"...\"===e&&n?h.push(4,n,0):2===r&&e&&!n?h.push(5,0,!0,e):r>=5&&((e||!n&&5===r)&&(h.push(r,0,e,s),r=6),n&&(h.push(r,n,0,s),r=6)),e=\"\"},a=0;a<n.length;a++){a&&(1===r&&p(),p(a));for(var l=0;l<n[a].length;l++)t=n[a][l],1===r?\"<\"===t?(p(),h=[h],r=3):e+=t:4===r?\"--\"===e&&\">\"===t?(r=1,e=\"\"):e=t+e[0]:u?t===u?u=\"\":e+=t:'\"'===t||\"'\"===t?u=t:\">\"===t?(p(),r=1):r&&(\"=\"===t?(r=5,s=e,e=\"\"):\"/\"===t&&(r<5||\">\"===n[a][l+1])?(p(),3===r&&(h=h[0]),r=h,(h=h[0]).push(2,0,r),r=0):\" \"===t||\"\\t\"===t||\"\\n\"===t||\"\\r\"===t?(p(),r=2):e+=t),3===r&&\"!--\"===e&&(r=4,h=h[0])}return p(),h}(s)),r),arguments,[])).length>1?r:r[0]}\n","export var SearchIcon = function SearchIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-SubmitIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z');\n element.appendChild(path);\n return element;\n};","export var ClearIcon = function ClearIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-ClearIcon');\n element.setAttribute('viewBox', '0 0 24 24');\n element.setAttribute('width', '18');\n element.setAttribute('height', '18');\n element.setAttribute('fill', 'currentColor');\n var path = environment.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', 'M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z');\n element.appendChild(path);\n return element;\n};","export var LoadingIcon = function LoadingIcon(_ref) {\n var environment = _ref.environment;\n var element = environment.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n element.setAttribute('class', 'aa-LoadingIcon');\n element.setAttribute('viewBox', '0 0 100 100');\n element.setAttribute('width', '20');\n element.setAttribute('height', '20');\n element.innerHTML = \"<circle\\n cx=\\\"50\\\"\\n cy=\\\"50\\\"\\n fill=\\\"none\\\"\\n r=\\\"35\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-dasharray=\\\"164.93361431346415 56.97787143782138\\\"\\n stroke-width=\\\"6\\\"\\n>\\n <animateTransform\\n attributeName=\\\"transform\\\"\\n type=\\\"rotate\\\"\\n repeatCount=\\\"indefinite\\\"\\n dur=\\\"1s\\\"\\n values=\\\"0 50 50;90 50 50;180 50 50;360 50 50\\\"\\n keyTimes=\\\"0;0.40;0.65;1\\\"\\n />\\n</circle>\";\n return element;\n};","/* eslint-disable */\n\n/**\n * Touch-specific event aliases\n *\n * See https://w3c.github.io/touch-events/#extensions-to-the-globaleventhandlers-mixin\n */\nvar TOUCH_EVENTS_ALIASES = ['ontouchstart', 'ontouchend', 'ontouchmove', 'ontouchcancel'];\n/*\n * Taken from Preact\n *\n * See https://github.com/preactjs/preact/blob/6ab49d9020740127577bf4af66bf63f4af7f9fee/src/diff/props.js#L58-L151\n */\n\nfunction setStyle(style, key, value) {\n if (value === null) {\n style[key] = '';\n } else if (typeof value !== 'number') {\n style[key] = value;\n } else {\n style[key] = value + 'px';\n }\n}\n/**\n * Proxy an event to hooked event handlers\n */\n\n\nfunction eventProxy(event) {\n this._listeners[event.type](event);\n}\n/**\n * Set a property value on a DOM node\n */\n\n\nexport function setProperty(dom, name, value) {\n var useCapture;\n var nameLower;\n var oldValue = dom[name];\n\n if (name === 'style') {\n if (typeof value == 'string') {\n dom.style = value;\n } else {\n if (value === null) {\n dom.style = '';\n } else {\n for (name in value) {\n if (!oldValue || value[name] !== oldValue[name]) {\n setStyle(dom.style, name, value[name]);\n }\n }\n }\n }\n } // Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n else if (name[0] === 'o' && name[1] === 'n') {\n useCapture = name !== (name = name.replace(/Capture$/, ''));\n nameLower = name.toLowerCase();\n if (nameLower in dom || TOUCH_EVENTS_ALIASES.includes(nameLower)) name = nameLower;\n name = name.slice(2);\n if (!dom._listeners) dom._listeners = {};\n dom._listeners[name] = value;\n\n if (value) {\n if (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n } else {\n dom.removeEventListener(name, eventProxy, useCapture);\n }\n } else if (name !== 'list' && name !== 'tagName' && // HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n // setAttribute\n name !== 'form' && name !== 'type' && name !== 'size' && name !== 'download' && name !== 'href' && name in dom) {\n dom[name] = value == null ? '' : value;\n } else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n if (value == null || value === false && // ARIA-attributes have a different notion of boolean values.\n // The value `false` is different from the attribute not\n // existing on the DOM, so we can't remove it. For non-boolean\n // ARIA-attributes we could treat false as a removal, but the\n // amount of exceptions would cost us too many bytes. On top of\n // that other VDOM frameworks also always stringify `false`.\n !/^ar/.test(name)) {\n dom.removeAttribute(name);\n } else {\n dom.setAttribute(name, value);\n }\n }\n}\n\nfunction getNormalizedName(name) {\n switch (name) {\n case 'onChange':\n return 'onInput';\n\n default:\n return name;\n }\n}\n\nexport function setProperties(dom, props) {\n for (var name in props) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n}\nexport function setPropertiesWithoutEvents(dom, props) {\n for (var name in props) {\n if (!(name[0] === 'o' && name[1] === 'n')) {\n setProperty(dom, getNormalizedName(name), props[name]);\n }\n }\n}","var _excluded = [\"children\"];\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 { setProperties } from './utils';\nexport function getCreateDomElement(environment) {\n return function createDomElement(tagName, _ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? [] : _ref$children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var element = environment.document.createElement(tagName);\n setProperties(element, props);\n element.append.apply(element, _toConsumableArray(children));\n return element;\n };\n}","var _excluded = [\"autocompleteScopeApi\", \"environment\", \"classNames\", \"getInputProps\", \"getInputPropsCore\", \"isDetached\", \"state\"];\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 { getCreateDomElement } from '../getCreateDomElement';\nimport { setProperties } from '../utils';\nexport var Input = function Input(_ref) {\n var autocompleteScopeApi = _ref.autocompleteScopeApi,\n environment = _ref.environment,\n classNames = _ref.classNames,\n getInputProps = _ref.getInputProps,\n getInputPropsCore = _ref.getInputPropsCore,\n isDetached = _ref.isDetached,\n state = _ref.state,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var createDomElement = getCreateDomElement(environment);\n var element = createDomElement('input', props);\n var inputProps = getInputProps(_objectSpread({\n state: state,\n props: getInputPropsCore({\n inputElement: element\n }),\n inputElement: element\n }, autocompleteScopeApi));\n setProperties(element, _objectSpread(_objectSpread({}, inputProps), {}, {\n onKeyDown: function onKeyDown(event) {\n // In detached mode we don't want to close the panel when hittin `Tab`.\n if (isDetached && event.key === 'Tab') {\n return;\n }\n\n inputProps.onKeyDown(event);\n }\n }));\n return element;\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; }\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\nimport { ClearIcon, Input, LoadingIcon, SearchIcon } from './elements';\nimport { getCreateDomElement } from './getCreateDomElement';\nimport { setProperties } from './utils';\nexport function createAutocompleteDom(_ref) {\n var autocomplete = _ref.autocomplete,\n autocompleteScopeApi = _ref.autocompleteScopeApi,\n classNames = _ref.classNames,\n environment = _ref.environment,\n isDetached = _ref.isDetached,\n _ref$placeholder = _ref.placeholder,\n placeholder = _ref$placeholder === void 0 ? 'Search' : _ref$placeholder,\n propGetters = _ref.propGetters,\n setIsModalOpen = _ref.setIsModalOpen,\n state = _ref.state,\n translations = _ref.translations;\n var createDomElement = getCreateDomElement(environment);\n var rootProps = propGetters.getRootProps(_objectSpread({\n state: state,\n props: autocomplete.getRootProps({})\n }, autocompleteScopeApi));\n var root = createDomElement('div', _objectSpread({\n class: classNames.root\n }, rootProps));\n var detachedContainer = createDomElement('div', {\n class: classNames.detachedContainer,\n onMouseDown: function onMouseDown(event) {\n event.stopPropagation();\n }\n });\n var detachedOverlay = createDomElement('div', {\n class: classNames.detachedOverlay,\n children: [detachedContainer],\n onMouseDown: function onMouseDown() {\n setIsModalOpen(false);\n autocomplete.setIsOpen(false);\n }\n });\n var labelProps = propGetters.getLabelProps(_objectSpread({\n state: state,\n props: autocomplete.getLabelProps({})\n }, autocompleteScopeApi));\n var submitButton = createDomElement('button', {\n class: classNames.submitButton,\n type: 'submit',\n title: translations.submitButtonTitle,\n children: [SearchIcon({\n environment: environment\n })]\n });\n var label = createDomElement('label', _objectSpread({\n class: classNames.label,\n children: [submitButton]\n }, labelProps));\n var clearButton = createDomElement('button', {\n class: classNames.clearButton,\n type: 'reset',\n title: translations.clearButtonTitle,\n children: [ClearIcon({\n environment: environment\n })]\n });\n var loadingIndicator = createDomElement('div', {\n class: classNames.loadingIndicator,\n children: [LoadingIcon({\n environment: environment\n })]\n });\n var input = Input({\n class: classNames.input,\n environment: environment,\n state: state,\n getInputProps: propGetters.getInputProps,\n getInputPropsCore: autocomplete.getInputProps,\n autocompleteScopeApi: autocompleteScopeApi,\n isDetached: isDetached\n });\n var inputWrapperPrefix = createDomElement('div', {\n class: classNames.inputWrapperPrefix,\n children: [label, loadingIndicator]\n });\n var inputWrapperSuffix = createDomElement('div', {\n class: classNames.inputWrapperSuffix,\n children: [clearButton]\n });\n var inputWrapper = createDomElement('div', {\n class: classNames.inputWrapper,\n children: [input]\n });\n var formProps = propGetters.getFormProps(_objectSpread({\n state: state,\n props: autocomplete.getFormProps({\n inputElement: input\n })\n }, autocompleteScopeApi));\n var form = createDomElement('form', _objectSpread({\n class: classNames.form,\n children: [inputWrapperPrefix, inputWrapper, inputWrapperSuffix]\n }, formProps));\n var panelProps = propGetters.getPanelProps(_objectSpread({\n state: state,\n props: autocomplete.getPanelProps({})\n }, autocompleteScopeApi));\n var panel = createDomElement('div', _objectSpread({\n class: classNames.panel\n }, panelProps));\n\n if (process.env.NODE_ENV === 'test') {\n setProperties(panel, {\n 'data-testid': 'panel'\n });\n }\n\n if (isDetached) {\n var detachedSearchButtonIcon = createDomElement('div', {\n class: classNames.detachedSearchButtonIcon,\n children: [SearchIcon({\n environment: environment\n })]\n });\n var detachedSearchButtonPlaceholder = createDomElement('div', {\n class: classNames.detachedSearchButtonPlaceholder,\n textContent: placeholder\n });\n var detachedSearchButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedSearchButton,\n onClick: function onClick() {\n setIsModalOpen(true);\n },\n children: [detachedSearchButtonIcon, detachedSearchButtonPlaceholder]\n });\n var detachedCancelButton = createDomElement('button', {\n type: 'button',\n class: classNames.detachedCancelButton,\n textContent: translations.detachedCancelButtonText,\n // Prevent `onTouchStart` from closing the panel\n // since it should be initiated by `onClick` only\n onTouchStart: function onTouchStart(event) {\n event.stopPropagation();\n },\n onClick: function onClick() {\n autocomplete.setIsOpen(false);\n setIsModalOpen(false);\n }\n });\n var detachedFormContainer = createDomElement('div', {\n class: classNames.detachedFormContainer,\n children: [form, detachedCancelButton]\n });\n detachedContainer.appendChild(detachedFormContainer);\n root.appendChild(detachedSearchButton);\n } else {\n root.appendChild(form);\n }\n\n return {\n detachedContainer: detachedContainer,\n detachedOverlay: detachedOverlay,\n inputWrapper: inputWrapper,\n input: input,\n root: root,\n form: form,\n label: label,\n submitButton: submitButton,\n clearButton: clearButton,\n loadingIndicator: loadingIndicator,\n panel: panel\n };\n}","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tc,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 2\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && i !== oldProps.value))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","export function getAttributeValueByPath(record, path) {\n return path.reduce(function (current, key) {\n return current && current[key];\n }, record);\n}","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","export var HIGHLIGHT_PRE_TAG = '__aa-highlight__';\nexport var HIGHLIGHT_POST_TAG = '__/aa-highlight__';","import { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\n\n/**\n * Creates a data structure that allows to concatenate similar highlighting\n * parts in a single value.\n */\nfunction createAttributeSet() {\n var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var value = initialValue;\n return {\n get: function get() {\n return value;\n },\n add: function add(part) {\n var lastPart = value[value.length - 1];\n\n if ((lastPart === null || lastPart === void 0 ? void 0 : 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\nexport function parseAttribute(_ref) {\n var highlightedValue = _ref.highlightedValue;\n var preTagParts = highlightedValue.split(HIGHLIGHT_PRE_TAG);\n var firstValue = preTagParts.shift();\n var parts = createAttributeSet(firstValue ? [{\n value: firstValue,\n isHighlighted: false\n }] : []);\n preTagParts.forEach(function (part) {\n var postTagParts = part.split(HIGHLIGHT_POST_TAG);\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 return parts.get();\n}","function _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\nimport { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\nimport { parseAttribute } from './parseAttribute';\nexport function parseAlgoliaHitHighlight(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute;\n var path = Array.isArray(attribute) ? attribute : [attribute];\n var highlightedValue = getAttributeValueByPath(hit, ['_highlightResult'].concat(_toConsumableArray(path), ['value']));\n\n if (typeof highlightedValue !== 'string') {\n process.env.NODE_ENV !== 'production' ? warn(false, \"The attribute \\\"\".concat(path.join('.'), \"\\\" described by the path \").concat(JSON.stringify(path), \" does not exist on the hit. Did you set it in `attributesToHighlight`?\") + '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToHighlight/') : void 0;\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({\n highlightedValue: highlightedValue\n });\n}","import { parseAlgoliaHitHighlight } from '@algolia/autocomplete-preset-algolia';\nexport function createHighlightComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n\n function Highlight(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitHighlight({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n\n Highlight.__autocomplete_componentName = 'Highlight';\n return Highlight;\n}","var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n};\nvar hasAlphanumeric = new RegExp(/\\w/i);\nvar regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nvar regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n\nfunction unescape(value) {\n return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {\n return htmlEscapes[character];\n }) : value;\n}\n\nexport function isPartHighlighted(parts, i) {\n var _parts, _parts2;\n\n var current = parts[i];\n var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;\n var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;\n\n if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\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; }\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\nimport { isPartHighlighted } from './isPartHighlighted';\nexport function reverseHighlightedParts(parts) {\n // We don't want to highlight the whole word when no parts match.\n if (!parts.some(function (part) {\n return part.isHighlighted;\n })) {\n return parts.map(function (part) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: false\n });\n });\n }\n\n return parts.map(function (part, i) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: !isPartHighlighted(parts, i)\n });\n });\n}","import { parseAlgoliaHitReverseHighlight } from '@algolia/autocomplete-preset-algolia';\nexport function createReverseHighlightComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n\n function ReverseHighlight(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitReverseHighlight({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n\n ReverseHighlight.__autocomplete_componentName = 'ReverseHighlight';\n return ReverseHighlight;\n}","import { parseAlgoliaHitHighlight } from './parseAlgoliaHitHighlight';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseHighlight(props) {\n return reverseHighlightedParts(parseAlgoliaHitHighlight(props));\n}","function _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\nimport { getAttributeValueByPath, warn } from '@algolia/autocomplete-shared';\nimport { parseAttribute } from './parseAttribute';\nexport function parseAlgoliaHitSnippet(_ref) {\n var hit = _ref.hit,\n attribute = _ref.attribute;\n var path = Array.isArray(attribute) ? attribute : [attribute];\n var highlightedValue = getAttributeValueByPath(hit, ['_snippetResult'].concat(_toConsumableArray(path), ['value']));\n\n if (typeof highlightedValue !== 'string') {\n process.env.NODE_ENV !== 'production' ? warn(false, \"The attribute \\\"\".concat(path.join('.'), \"\\\" described by the path \").concat(JSON.stringify(path), \" does not exist on the hit. Did you set it in `attributesToSnippet`?\") + '\\nSee https://www.algolia.com/doc/api-reference/api-parameters/attributesToSnippet/') : void 0;\n highlightedValue = getAttributeValueByPath(hit, path) || '';\n }\n\n return parseAttribute({\n highlightedValue: highlightedValue\n });\n}","import { parseAlgoliaHitReverseSnippet } from '@algolia/autocomplete-preset-algolia';\nexport function createReverseSnippetComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n\n function ReverseSnippet(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitReverseSnippet({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n\n ReverseSnippet.__autocomplete_componentName = 'ReverseSnippet';\n return ReverseSnippet;\n}","import { parseAlgoliaHitSnippet } from './parseAlgoliaHitSnippet';\nimport { reverseHighlightedParts } from './reverseHighlightedParts';\nexport function parseAlgoliaHitReverseSnippet(props) {\n return reverseHighlightedParts(parseAlgoliaHitSnippet(props));\n}","import { parseAlgoliaHitSnippet } from '@algolia/autocomplete-preset-algolia';\nexport function createSnippetComponent(_ref) {\n var createElement = _ref.createElement,\n Fragment = _ref.Fragment;\n\n function Snippet(_ref2) {\n var hit = _ref2.hit,\n attribute = _ref2.attribute,\n _ref2$tagName = _ref2.tagName,\n tagName = _ref2$tagName === void 0 ? 'mark' : _ref2$tagName;\n return createElement(Fragment, {}, parseAlgoliaHitSnippet({\n hit: hit,\n attribute: attribute\n }).map(function (x, index) {\n return x.isHighlighted ? createElement(tagName, {\n key: index\n }, x.value) : x.value;\n }));\n }\n\n Snippet.__autocomplete_componentName = 'Snippet';\n return Snippet;\n}","import { invariant } from '@algolia/autocomplete-shared';\nexport function getHTMLElement(environment, value) {\n if (typeof value === 'string') {\n var element = environment.document.querySelector(value);\n invariant(element !== null, \"The element \".concat(JSON.stringify(value), \" is not in the document.\"));\n return element;\n }\n\n return value;\n}","export function mergeClassNames() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return values.reduce(function (acc, current) {\n Object.keys(current).forEach(function (key) {\n var accValue = acc[key];\n var currentValue = current[key];\n\n if (accValue !== currentValue) {\n acc[key] = [accValue, currentValue].filter(Boolean).join(' ');\n }\n });\n return acc;\n }, {});\n}","var _excluded = [\"classNames\", \"container\", \"getEnvironmentProps\", \"getFormProps\", \"getInputProps\", \"getItemProps\", \"getLabelProps\", \"getListProps\", \"getPanelProps\", \"getRootProps\", \"panelContainer\", \"panelPlacement\", \"render\", \"renderNoResults\", \"renderer\", \"detachedMediaQuery\", \"components\", \"translations\"];\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 { generateAutocompleteId, invariant, warn } from '@algolia/autocomplete-shared';\nimport { createElement as preactCreateElement, Fragment as PreactFragment, render } from 'preact';\nimport { createHighlightComponent, createReverseHighlightComponent, createReverseSnippetComponent, createSnippetComponent } from './components';\nimport { getHTMLElement, mergeClassNames } from './utils';\nvar defaultClassNames = {\n clearButton: 'aa-ClearButton',\n detachedCancelButton: 'aa-DetachedCancelButton',\n detachedContainer: 'aa-DetachedContainer',\n detachedFormContainer: 'aa-DetachedFormContainer',\n detachedOverlay: 'aa-DetachedOverlay',\n detachedSearchButton: 'aa-DetachedSearchButton',\n detachedSearchButtonIcon: 'aa-DetachedSearchButtonIcon',\n detachedSearchButtonPlaceholder: 'aa-DetachedSearchButtonPlaceholder',\n form: 'aa-Form',\n input: 'aa-Input',\n inputWrapper: 'aa-InputWrapper',\n inputWrapperPrefix: 'aa-InputWrapperPrefix',\n inputWrapperSuffix: 'aa-InputWrapperSuffix',\n item: 'aa-Item',\n label: 'aa-Label',\n list: 'aa-List',\n loadingIndicator: 'aa-LoadingIndicator',\n panel: 'aa-Panel',\n panelLayout: 'aa-PanelLayout aa-Panel--scrollable',\n root: 'aa-Autocomplete',\n source: 'aa-Source',\n sourceFooter: 'aa-SourceFooter',\n sourceHeader: 'aa-SourceHeader',\n sourceNoResults: 'aa-SourceNoResults',\n submitButton: 'aa-SubmitButton'\n};\n\nvar defaultRender = function defaultRender(_ref, root) {\n var children = _ref.children,\n render = _ref.render;\n render(children, root);\n};\n\nvar defaultRenderer = {\n createElement: preactCreateElement,\n Fragment: PreactFragment,\n render: render\n};\nexport function getDefaultOptions(options) {\n var _core$id;\n\n var classNames = options.classNames,\n container = options.container,\n getEnvironmentProps = options.getEnvironmentProps,\n getFormProps = options.getFormProps,\n getInputProps = options.getInputProps,\n getItemProps = options.getItemProps,\n getLabelProps = options.getLabelProps,\n getListProps = options.getListProps,\n getPanelProps = options.getPanelProps,\n getRootProps = options.getRootProps,\n panelContainer = options.panelContainer,\n panelPlacement = options.panelPlacement,\n render = options.render,\n renderNoResults = options.renderNoResults,\n renderer = options.renderer,\n detachedMediaQuery = options.detachedMediaQuery,\n components = options.components,\n translations = options.translations,\n core = _objectWithoutProperties(options, _excluded);\n /* eslint-disable no-restricted-globals */\n\n\n var environment = typeof window !== 'undefined' ? window : {};\n /* eslint-enable no-restricted-globals */\n\n var containerElement = getHTMLElement(environment, container);\n invariant(containerElement.tagName !== 'INPUT', 'The `container` option does not support `input` elements. You need to change the container to a `div`.');\n process.env.NODE_ENV !== 'production' ? warn(!(render && renderer && !(renderer !== null && renderer !== void 0 && renderer.render)), \"You provided the `render` option but did not provide a `renderer.render`. Since v1.6.0, you can provide a `render` function directly in `renderer`.\" + \"\\nTo get rid of this warning, do any of the following depending on your use case.\" + \"\\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option.\" + '\\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' + '\\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' + '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render') : void 0;\n process.env.NODE_ENV !== 'production' ? warn(!renderer || render || renderer.Fragment && renderer.createElement && renderer.render, \"You provided an incomplete `renderer` (missing: \".concat([!(renderer !== null && renderer !== void 0 && renderer.createElement) && '`renderer.createElement`', !(renderer !== null && renderer !== void 0 && renderer.Fragment) && '`renderer.Fragment`', !(renderer !== null && renderer !== void 0 && renderer.render) && '`renderer.render`'].filter(Boolean).join(', '), \"). This can cause rendering issues.\") + '\\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-renderer') : void 0;\n\n var defaultedRenderer = _objectSpread(_objectSpread({}, defaultRenderer), renderer);\n\n var defaultComponents = {\n Highlight: createHighlightComponent(defaultedRenderer),\n ReverseHighlight: createReverseHighlightComponent(defaultedRenderer),\n ReverseSnippet: createReverseSnippetComponent(defaultedRenderer),\n Snippet: createSnippetComponent(defaultedRenderer)\n };\n var defaultTranslations = {\n clearButtonTitle: 'Clear',\n detachedCancelButtonText: 'Cancel',\n submitButtonTitle: 'Submit'\n };\n return {\n renderer: {\n classNames: mergeClassNames(defaultClassNames, classNames !== null && classNames !== void 0 ? classNames : {}),\n container: containerElement,\n getEnvironmentProps: getEnvironmentProps !== null && getEnvironmentProps !== void 0 ? getEnvironmentProps : function (_ref2) {\n var props = _ref2.props;\n return props;\n },\n getFormProps: getFormProps !== null && getFormProps !== void 0 ? getFormProps : function (_ref3) {\n var props = _ref3.props;\n return props;\n },\n getInputProps: getInputProps !== null && getInputProps !== void 0 ? getInputProps : function (_ref4) {\n var props = _ref4.props;\n return props;\n },\n getItemProps: getItemProps !== null && getItemProps !== void 0 ? getItemProps : function (_ref5) {\n var props = _ref5.props;\n return props;\n },\n getLabelProps: getLabelProps !== null && getLabelProps !== void 0 ? getLabelProps : function (_ref6) {\n var props = _ref6.props;\n return props;\n },\n getListProps: getListProps !== null && getListProps !== void 0 ? getListProps : function (_ref7) {\n var props = _ref7.props;\n return props;\n },\n getPanelProps: getPanelProps !== null && getPanelProps !== void 0 ? getPanelProps : function (_ref8) {\n var props = _ref8.props;\n return props;\n },\n getRootProps: getRootProps !== null && getRootProps !== void 0 ? getRootProps : function (_ref9) {\n var props = _ref9.props;\n return props;\n },\n panelContainer: panelContainer ? getHTMLElement(environment, panelContainer) : environment.document.body,\n panelPlacement: panelPlacement !== null && panelPlacement !== void 0 ? panelPlacement : 'input-wrapper-width',\n render: render !== null && render !== void 0 ? render : defaultRender,\n renderNoResults: renderNoResults,\n renderer: defaultedRenderer,\n detachedMediaQuery: detachedMediaQuery !== null && detachedMediaQuery !== void 0 ? detachedMediaQuery : getComputedStyle(environment.document.documentElement).getPropertyValue('--aa-detached-media-query'),\n components: _objectSpread(_objectSpread({}, defaultComponents), components),\n translations: _objectSpread(_objectSpread({}, defaultTranslations), translations)\n },\n core: _objectSpread(_objectSpread({}, core), {}, {\n id: (_core$id = core.id) !== null && _core$id !== void 0 ? _core$id : generateAutocompleteId(),\n environment: environment\n })\n };\n}","export function getPanelPlacementStyle(_ref) {\n var panelPlacement = _ref.panelPlacement,\n container = _ref.container,\n form = _ref.form,\n environment = _ref.environment;\n var containerRect = container.getBoundingClientRect(); // Some browsers have specificities to retrieve the document scroll position.\n // See https://stackoverflow.com/a/28633515/9940315\n\n var scrollTop = environment.pageYOffset || environment.document.documentElement.scrollTop || environment.document.body.scrollTop || 0;\n var top = scrollTop + containerRect.top + containerRect.height;\n\n switch (panelPlacement) {\n case 'start':\n {\n return {\n top: top,\n left: containerRect.left\n };\n }\n\n case 'end':\n {\n return {\n top: top,\n right: environment.document.documentElement.clientWidth - (containerRect.left + containerRect.width)\n };\n }\n\n case 'full-width':\n {\n return {\n top: top,\n left: 0,\n right: 0,\n width: 'unset',\n maxWidth: 'unset'\n };\n }\n\n case 'input-wrapper-width':\n {\n var formRect = form.getBoundingClientRect();\n return {\n top: top,\n left: formRect.left,\n right: environment.document.documentElement.clientWidth - (formRect.left + formRect.width),\n width: 'unset',\n maxWidth: 'unset'\n };\n }\n\n default:\n {\n throw new Error(\"[Autocomplete] The `panelPlacement` value \".concat(JSON.stringify(panelPlacement), \" is not valid.\"));\n }\n }\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 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\n/** @jsx renderer.createElement */\nimport { setProperties, setPropertiesWithoutEvents } from './utils';\nexport function renderSearchBox(_ref) {\n var autocomplete = _ref.autocomplete,\n autocompleteScopeApi = _ref.autocompleteScopeApi,\n dom = _ref.dom,\n propGetters = _ref.propGetters,\n state = _ref.state;\n setPropertiesWithoutEvents(dom.root, propGetters.getRootProps(_objectSpread({\n state: state,\n props: autocomplete.getRootProps({})\n }, autocompleteScopeApi)));\n setPropertiesWithoutEvents(dom.input, propGetters.getInputProps(_objectSpread({\n state: state,\n props: autocomplete.getInputProps({\n inputElement: dom.input\n }),\n inputElement: dom.input\n }, autocompleteScopeApi)));\n setProperties(dom.label, {\n hidden: state.status === 'stalled'\n });\n setProperties(dom.loadingIndicator, {\n hidden: state.status !== 'stalled'\n });\n setProperties(dom.clearButton, {\n hidden: !state.query\n });\n}\nexport function renderPanel(render, _ref2) {\n var autocomplete = _ref2.autocomplete,\n autocompleteScopeApi = _ref2.autocompleteScopeApi,\n classNames = _ref2.classNames,\n html = _ref2.html,\n dom = _ref2.dom,\n panelContainer = _ref2.panelContainer,\n propGetters = _ref2.propGetters,\n state = _ref2.state,\n components = _ref2.components,\n renderer = _ref2.renderer;\n\n if (!state.isOpen) {\n if (panelContainer.contains(dom.panel)) {\n panelContainer.removeChild(dom.panel);\n }\n\n return;\n } // We add the panel element to the DOM when it's not yet appended and that the\n // items are fetched.\n\n\n if (!panelContainer.contains(dom.panel) && state.status !== 'loading') {\n panelContainer.appendChild(dom.panel);\n }\n\n dom.panel.classList.toggle('aa-Panel--stalled', state.status === 'stalled');\n var sections = state.collections.filter(function (_ref3) {\n var source = _ref3.source,\n items = _ref3.items;\n return source.templates.noResults || items.length > 0;\n }).map(function (_ref4, sourceIndex) {\n var source = _ref4.source,\n items = _ref4.items;\n return renderer.createElement(\"section\", {\n key: sourceIndex,\n className: classNames.source,\n \"data-autocomplete-source-id\": source.sourceId\n }, source.templates.header && renderer.createElement(\"div\", {\n className: classNames.sourceHeader\n }, source.templates.header({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items: items,\n source: source,\n state: state,\n html: html\n })), source.templates.noResults && items.length === 0 ? renderer.createElement(\"div\", {\n className: classNames.sourceNoResults\n }, source.templates.noResults({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n source: source,\n state: state,\n html: html\n })) : renderer.createElement(\"ul\", _extends({\n className: classNames.list\n }, propGetters.getListProps(_objectSpread({\n state: state,\n props: autocomplete.getListProps({})\n }, autocompleteScopeApi))), items.map(function (item) {\n var itemProps = autocomplete.getItemProps({\n item: item,\n source: source\n });\n return renderer.createElement(\"li\", _extends({\n key: itemProps.id,\n className: classNames.item\n }, propGetters.getItemProps(_objectSpread({\n state: state,\n props: itemProps\n }, autocompleteScopeApi))), source.templates.item({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n item: item,\n state: state,\n html: html\n }));\n })), source.templates.footer && renderer.createElement(\"div\", {\n className: classNames.sourceFooter\n }, source.templates.footer({\n components: components,\n createElement: renderer.createElement,\n Fragment: renderer.Fragment,\n items: items,\n source: source,\n state: state,\n html: html\n })));\n });\n var children = renderer.createElement(renderer.Fragment, null, renderer.createElement(\"div\", {\n className: classNames.panelLayout\n }, sections), renderer.createElement(\"div\", {\n className: \"aa-GradientBottom\"\n }));\n var elements = sections.reduce(function (acc, current) {\n acc[current.props['data-autocomplete-source-id']] = current;\n return acc;\n }, {});\n render(_objectSpread(_objectSpread({\n children: children,\n state: state,\n sections: sections,\n elements: elements\n }, renderer), {}, {\n components: components,\n html: html\n }, autocompleteScopeApi), dom.panel);\n}","import { version } from '@algolia/autocomplete-shared';\nexport var userAgents = [{\n segment: 'autocomplete-js',\n version: version\n}];","function _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 _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\nvar isPlainObject = function isPlainObject(value) {\n return value && _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Object]';\n};\n\nexport function mergeDeep() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return values.reduce(function (acc, current) {\n Object.keys(current).forEach(function (key) {\n var accValue = acc[key];\n var currentValue = current[key];\n\n if (Array.isArray(accValue) && Array.isArray(currentValue)) {\n acc[key] = accValue.concat.apply(accValue, _toConsumableArray(currentValue));\n } else if (isPlainObject(accValue) && isPlainObject(currentValue)) {\n acc[key] = mergeDeep(accValue, currentValue);\n } else {\n acc[key] = currentValue;\n }\n });\n return acc;\n }, {});\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; }\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\nexport function pickBy(obj, predicate) {\n return Object.entries(obj).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (predicate({\n key: key,\n value: value\n })) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, value));\n }\n\n return acc;\n }, {});\n}","var _excluded = [\"components\"];\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 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\nimport { createAutocomplete } from '@algolia/autocomplete-core';\nimport { createRef, debounce, getItemsCount } from '@algolia/autocomplete-shared';\nimport htm from 'htm';\nimport { createAutocompleteDom } from './createAutocompleteDom';\nimport { createEffectWrapper } from './createEffectWrapper';\nimport { createReactiveWrapper } from './createReactiveWrapper';\nimport { getDefaultOptions } from './getDefaultOptions';\nimport { getPanelPlacementStyle } from './getPanelPlacementStyle';\nimport { renderPanel, renderSearchBox } from './render';\nimport { userAgents } from './userAgents';\nimport { mergeDeep, pickBy, setProperties } from './utils';\nexport function autocomplete(options) {\n var _createEffectWrapper = createEffectWrapper(),\n runEffect = _createEffectWrapper.runEffect,\n cleanupEffects = _createEffectWrapper.cleanupEffects,\n runEffects = _createEffectWrapper.runEffects;\n\n var _createReactiveWrappe = createReactiveWrapper(),\n reactive = _createReactiveWrappe.reactive,\n runReactives = _createReactiveWrappe.runReactives;\n\n var hasNoResultsSourceTemplateRef = createRef(false);\n var optionsRef = createRef(options);\n var onStateChangeRef = createRef(undefined);\n var props = reactive(function () {\n return getDefaultOptions(optionsRef.current);\n });\n var isDetached = reactive(function () {\n return props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;\n });\n var autocomplete = reactive(function () {\n return createAutocomplete(_objectSpread(_objectSpread({}, props.value.core), {}, {\n onStateChange: function onStateChange(params) {\n var _onStateChangeRef$cur, _props$value$core$onS, _props$value$core;\n\n hasNoResultsSourceTemplateRef.current = params.state.collections.some(function (collection) {\n return collection.source.templates.noResults;\n });\n (_onStateChangeRef$cur = onStateChangeRef.current) === null || _onStateChangeRef$cur === void 0 ? void 0 : _onStateChangeRef$cur.call(onStateChangeRef, params);\n (_props$value$core$onS = (_props$value$core = props.value.core).onStateChange) === null || _props$value$core$onS === void 0 ? void 0 : _props$value$core$onS.call(_props$value$core, params);\n },\n shouldPanelOpen: optionsRef.current.shouldPanelOpen || function (_ref) {\n var state = _ref.state;\n\n if (isDetached.value) {\n return true;\n }\n\n var hasItems = getItemsCount(state) > 0;\n\n if (!props.value.core.openOnFocus && !state.query) {\n return hasItems;\n }\n\n var hasNoResultsTemplate = Boolean(hasNoResultsSourceTemplateRef.current || props.value.renderer.renderNoResults);\n return !hasItems && hasNoResultsTemplate || hasItems;\n },\n __autocomplete_metadata: {\n userAgents: userAgents,\n options: options\n }\n }));\n });\n var lastStateRef = createRef(_objectSpread({\n collections: [],\n completion: null,\n context: {},\n isOpen: false,\n query: '',\n activeItemId: null,\n status: 'idle'\n }, props.value.core.initialState));\n var propGetters = {\n getEnvironmentProps: props.value.renderer.getEnvironmentProps,\n getFormProps: props.value.renderer.getFormProps,\n getInputProps: props.value.renderer.getInputProps,\n getItemProps: props.value.renderer.getItemProps,\n getLabelProps: props.value.renderer.getLabelProps,\n getListProps: props.value.renderer.getListProps,\n getPanelProps: props.value.renderer.getPanelProps,\n getRootProps: props.value.renderer.getRootProps\n };\n var autocompleteScopeApi = {\n setActiveItemId: autocomplete.value.setActiveItemId,\n setQuery: autocomplete.value.setQuery,\n setCollections: autocomplete.value.setCollections,\n setIsOpen: autocomplete.value.setIsOpen,\n setStatus: autocomplete.value.setStatus,\n setContext: autocomplete.value.setContext,\n refresh: autocomplete.value.refresh\n };\n var html = reactive(function () {\n return htm.bind(props.value.renderer.renderer.createElement);\n });\n var dom = reactive(function () {\n return createAutocompleteDom({\n autocomplete: autocomplete.value,\n autocompleteScopeApi: autocompleteScopeApi,\n classNames: props.value.renderer.classNames,\n environment: props.value.core.environment,\n isDetached: isDetached.value,\n placeholder: props.value.core.placeholder,\n propGetters: propGetters,\n setIsModalOpen: setIsModalOpen,\n state: lastStateRef.current,\n translations: props.value.renderer.translations\n });\n });\n\n function setPanelPosition() {\n setProperties(dom.value.panel, {\n style: isDetached.value ? {} : getPanelPlacementStyle({\n panelPlacement: props.value.renderer.panelPlacement,\n container: dom.value.root,\n form: dom.value.form,\n environment: props.value.core.environment\n })\n });\n }\n\n function scheduleRender(state) {\n lastStateRef.current = state;\n var renderProps = {\n autocomplete: autocomplete.value,\n autocompleteScopeApi: autocompleteScopeApi,\n classNames: props.value.renderer.classNames,\n components: props.value.renderer.components,\n container: props.value.renderer.container,\n html: html.value,\n dom: dom.value,\n panelContainer: isDetached.value ? dom.value.detachedContainer : props.value.renderer.panelContainer,\n propGetters: propGetters,\n state: lastStateRef.current,\n renderer: props.value.renderer.renderer\n };\n var render = !getItemsCount(state) && !hasNoResultsSourceTemplateRef.current && props.value.renderer.renderNoResults || props.value.renderer.render;\n renderSearchBox(renderProps);\n renderPanel(render, renderProps);\n }\n\n runEffect(function () {\n var environmentProps = autocomplete.value.getEnvironmentProps({\n formElement: dom.value.form,\n panelElement: dom.value.panel,\n inputElement: dom.value.input\n });\n setProperties(props.value.core.environment, environmentProps);\n return function () {\n setProperties(props.value.core.environment, Object.keys(environmentProps).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n };\n });\n runEffect(function () {\n var panelContainerElement = isDetached.value ? props.value.core.environment.document.body : props.value.renderer.panelContainer;\n var panelElement = isDetached.value ? dom.value.detachedOverlay : dom.value.panel;\n\n if (isDetached.value && lastStateRef.current.isOpen) {\n setIsModalOpen(true);\n }\n\n scheduleRender(lastStateRef.current);\n return function () {\n if (panelContainerElement.contains(panelElement)) {\n panelContainerElement.removeChild(panelElement);\n }\n };\n });\n runEffect(function () {\n var containerElement = props.value.renderer.container;\n containerElement.appendChild(dom.value.root);\n return function () {\n containerElement.removeChild(dom.value.root);\n };\n });\n runEffect(function () {\n var debouncedRender = debounce(function (_ref2) {\n var state = _ref2.state;\n scheduleRender(state);\n }, 0);\n\n onStateChangeRef.current = function (_ref3) {\n var state = _ref3.state,\n prevState = _ref3.prevState;\n\n if (isDetached.value && prevState.isOpen !== state.isOpen) {\n setIsModalOpen(state.isOpen);\n } // The outer DOM might have changed since the last time the panel was\n // positioned. The layout might have shifted vertically for instance.\n // It's therefore safer to re-calculate the panel position before opening\n // it again.\n\n\n if (!isDetached.value && state.isOpen && !prevState.isOpen) {\n setPanelPosition();\n } // We scroll to the top of the panel whenever the query changes (i.e. new\n // results come in) so that users don't have to.\n\n\n if (state.query !== prevState.query) {\n var scrollablePanels = props.value.core.environment.document.querySelectorAll('.aa-Panel--scrollable');\n scrollablePanels.forEach(function (scrollablePanel) {\n if (scrollablePanel.scrollTop !== 0) {\n scrollablePanel.scrollTop = 0;\n }\n });\n }\n\n debouncedRender({\n state: state\n });\n };\n\n return function () {\n onStateChangeRef.current = undefined;\n };\n });\n runEffect(function () {\n var onResize = debounce(function () {\n var previousIsDetached = isDetached.value;\n isDetached.value = props.value.core.environment.matchMedia(props.value.renderer.detachedMediaQuery).matches;\n\n if (previousIsDetached !== isDetached.value) {\n update({});\n } else {\n requestAnimationFrame(setPanelPosition);\n }\n }, 20);\n props.value.core.environment.addEventListener('resize', onResize);\n return function () {\n props.value.core.environment.removeEventListener('resize', onResize);\n };\n });\n runEffect(function () {\n if (!isDetached.value) {\n return function () {};\n }\n\n function toggleModalClassname(isActive) {\n dom.value.detachedContainer.classList.toggle('aa-DetachedContainer--modal', isActive);\n }\n\n function onChange(event) {\n toggleModalClassname(event.matches);\n }\n\n var isModalDetachedMql = props.value.core.environment.matchMedia(getComputedStyle(props.value.core.environment.document.documentElement).getPropertyValue('--aa-detached-modal-media-query'));\n toggleModalClassname(isModalDetachedMql.matches); // Prior to Safari 14, `MediaQueryList` isn't based on `EventTarget`,\n // so we must use `addListener` and `removeListener` to observe media query lists.\n // See https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/addListener\n\n var hasModernEventListener = Boolean(isModalDetachedMql.addEventListener);\n hasModernEventListener ? isModalDetachedMql.addEventListener('change', onChange) : isModalDetachedMql.addListener(onChange);\n return function () {\n hasModernEventListener ? isModalDetachedMql.removeEventListener('change', onChange) : isModalDetachedMql.removeListener(onChange);\n };\n });\n runEffect(function () {\n requestAnimationFrame(setPanelPosition);\n return function () {};\n });\n\n function destroy() {\n cleanupEffects();\n }\n\n function update() {\n var updatedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n cleanupEffects();\n\n var _props$value$renderer = props.value.renderer,\n components = _props$value$renderer.components,\n rendererProps = _objectWithoutProperties(_props$value$renderer, _excluded);\n\n optionsRef.current = mergeDeep(rendererProps, props.value.core, {\n // We need to filter out default components so they can be replaced with\n // a new `renderer`, without getting rid of user components.\n // @MAJOR Deal with registering components with the same name as the\n // default ones. If we disallow overriding default components, we'd just\n // need to pass all `components` here.\n components: pickBy(components, function (_ref4) {\n var value = _ref4.value;\n return !value.hasOwnProperty('__autocomplete_componentName');\n }),\n initialState: lastStateRef.current\n }, updatedOptions);\n runReactives();\n runEffects();\n autocomplete.value.refresh().then(function () {\n scheduleRender(lastStateRef.current);\n });\n }\n\n function setIsModalOpen(value) {\n requestAnimationFrame(function () {\n var prevValue = props.value.core.environment.document.body.contains(dom.value.detachedOverlay);\n\n if (value === prevValue) {\n return;\n }\n\n if (value) {\n props.value.core.environment.document.body.appendChild(dom.value.detachedOverlay);\n props.value.core.environment.document.body.classList.add('aa-Detached');\n dom.value.input.focus();\n } else {\n props.value.core.environment.document.body.removeChild(dom.value.detachedOverlay);\n props.value.core.environment.document.body.classList.remove('aa-Detached');\n autocomplete.value.setQuery('');\n autocomplete.value.refresh();\n }\n });\n }\n\n return _objectSpread(_objectSpread({}, autocompleteScopeApi), {}, {\n update: update,\n destroy: destroy\n });\n}","export function createEffectWrapper() {\n var effects = [];\n var cleanups = [];\n\n function runEffect(fn) {\n effects.push(fn);\n var effectCleanup = fn();\n cleanups.push(effectCleanup);\n }\n\n return {\n runEffect: runEffect,\n cleanupEffects: function cleanupEffects() {\n var currentCleanups = cleanups;\n cleanups = [];\n currentCleanups.forEach(function (cleanup) {\n cleanup();\n });\n },\n runEffects: function runEffects() {\n var currentEffects = effects;\n effects = [];\n currentEffects.forEach(function (effect) {\n runEffect(effect);\n });\n }\n };\n}","export function createReactiveWrapper() {\n var reactives = [];\n return {\n reactive: function reactive(value) {\n var current = value();\n var reactive = {\n _fn: value,\n _ref: {\n current: current\n },\n\n get value() {\n return this._ref.current;\n },\n\n set value(value) {\n this._ref.current = value;\n }\n\n };\n reactives.push(reactive);\n return reactive;\n },\n runReactives: function runReactives() {\n reactives.forEach(function (value) {\n value._ref.current = value._fn();\n });\n }\n };\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; }\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\nexport function createRequester(fetcher, requesterId) {\n function execute(fetcherParams) {\n return fetcher({\n searchClient: fetcherParams.searchClient,\n queries: fetcherParams.requests.map(function (x) {\n return x.query;\n })\n }).then(function (responses) {\n return responses.map(function (response, index) {\n var _fetcherParams$reques = fetcherParams.requests[index],\n sourceId = _fetcherParams$reques.sourceId,\n transformResponse = _fetcherParams$reques.transformResponse;\n return {\n items: response,\n sourceId: sourceId,\n transformResponse: transformResponse\n };\n });\n });\n }\n\n return function createSpecifiedRequester(requesterParams) {\n return function requester(requestParams) {\n return _objectSpread(_objectSpread({\n requesterId: requesterId,\n execute: execute\n }, requesterParams), requestParams);\n };\n };\n}","var _excluded = [\"params\"];\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\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\nimport { userAgents as coreUserAgents } from '@algolia/autocomplete-shared';\nimport { HIGHLIGHT_PRE_TAG, HIGHLIGHT_POST_TAG } from '../constants';\nexport function fetchAlgoliaResults(_ref) {\n var searchClient = _ref.searchClient,\n queries = _ref.queries,\n _ref$userAgents = _ref.userAgents,\n userAgents = _ref$userAgents === void 0 ? [] : _ref$userAgents;\n\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n var algoliaAgents = [].concat(_toConsumableArray(coreUserAgents), _toConsumableArray(userAgents));\n algoliaAgents.forEach(function (_ref2) {\n var segment = _ref2.segment,\n version = _ref2.version;\n searchClient.addAlgoliaAgent(segment, version);\n });\n }\n\n return searchClient.search(queries.map(function (searchParameters) {\n var params = searchParameters.params,\n headers = _objectWithoutProperties(searchParameters, _excluded);\n\n return _objectSpread(_objectSpread({}, headers), {}, {\n params: _objectSpread({\n hitsPerPage: 5,\n highlightPreTag: HIGHLIGHT_PRE_TAG,\n highlightPostTag: HIGHLIGHT_POST_TAG\n }, params)\n });\n })).then(function (response) {\n return response.results;\n });\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; }\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\nimport { createRequester, fetchAlgoliaResults } from '@algolia/autocomplete-preset-algolia';\nimport { userAgents } from '../userAgents';\nexport var createAlgoliaRequester = createRequester(function (params) {\n return fetchAlgoliaResults(_objectSpread(_objectSpread({}, params), {}, {\n userAgents: userAgents\n }));\n}, 'algolia');","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; }\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\nimport { createAlgoliaRequester } from './createAlgoliaRequester';\n/**\n * Retrieves Algolia facet hits from multiple indices.\n */\n\nexport function getAlgoliaFacets(requestParams) {\n var requester = createAlgoliaRequester({\n transformResponse: function transformResponse(response) {\n return response.facetHits;\n }\n });\n var queries = requestParams.queries.map(function (query) {\n return _objectSpread(_objectSpread({}, query), {}, {\n type: 'facet'\n });\n });\n return requester(_objectSpread(_objectSpread({}, requestParams), {}, {\n queries: queries\n }));\n}","import { createAlgoliaRequester } from './createAlgoliaRequester';\n/**\n * Retrieves Algolia results from multiple indices.\n */\n\nexport var getAlgoliaResults = createAlgoliaRequester({\n transformResponse: function transformResponse(response) {\n return response.hits;\n }\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletStore;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\n\nvar _CircularProgress = _interopRequireDefault(require(\"@mui/material/CircularProgress\"));\n\nvar _Avatar = _interopRequireDefault(require(\"@arcblock/did-connect/lib/Avatar\"));\n\nvar _useMediaQuery = _interopRequireDefault(require(\"@mui/material/useMediaQuery\"));\n\nvar _Button = _interopRequireDefault(require(\"../Button\"));\n\nvar _Img = _interopRequireDefault(require(\"../Img\"));\n\nvar _Theme = require(\"../Theme\");\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nconst _excluded = [\"title\", \"did\", \"description\", \"cover\", \"version\", \"button\", \"buttonText\", \"buttonDisabled\", \"buttonLoading\", \"onButtonClick\", \"onMainClick\", \"className\"];\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nconst Div = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n &.arcblock-blocklet {\\n padding: \", \" \", \" 0\\n \", \";\\n }\\n .arcblock-blocklet__content {\\n cursor: pointer;\\n display: flex;\\n \", \" {\\n align-items: center;\\n }\\n }\\n .arcblock-blocklet__cover {\\n width: 64px;\\n height: 64px;\\n margin-right: \", \";\\n overflow: hidden;\\n border-radius: 12px;\\n /* see: https://stackoverflow.com/questions/49066011/overflow-hidden-with-border-radius-not-working-on-safari */\\n transform: translateZ(0);\\n \", \" {\\n width: 80px;\\n height: 80px;\\n margin-bottom: 12px;\\n }\\n }\\n .arcblock-blocklet__button--hover {\\n &:not(.Mui-disabled) {\\n position: relative;\\n z-index: 1;\\n &::before {\\n content: '';\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n left: 0;\\n top: 0;\\n transition: opacity 0.3s;\\n }\\n &:hover::before {\\n opacity: 0;\\n }\\n &::after {\\n content: '';\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n background-color: \", \";\\n transform: scale(0.1);\\n opacity: 0;\\n z-index: -1;\\n transition: transform 0.3s, opacity 0.3s, background-color 0.3s;\\n }\\n &:hover::after {\\n opacity: 1;\\n transform-origin: center;\\n transform: scale(1);\\n }\\n }\\n\\n &:not(.Mui-disabled) {\\n background-color: transparent !important;\\n color: \", \";\\n }\\n &:not(.Mui-disabled) {\\n &:hover {\\n color: \", \";\\n }\\n }\\n }\\n .arcblock-blocklet__info {\\n flex: 1;\\n overflow: hidden;\\n border-bottom: 1px solid \", \";\\n padding-bottom: \", \";\\n }\\n .arcblock-blocklet__text {\\n height: 57px;\\n overflow: hidden;\\n }\\n /* \\u8BBE\\u7F6E\\u591A\\u884C\\u6587\\u672C\\u6EA2\\u51FA\\u663E\\u793A\\u7701\\u7565\\u53F7 \\u517C\\u5BB9fireFox\\u3001safari */\\n .arcblock-blocklet__title {\\n margin: 0;\\n font-size: 16px;\\n font-weight: 500;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n .arcblock-blocklet__describe {\\n margin-top: \", \";\\n color: \", \";\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n max-height: 34px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 2;\\n -webkit-box-orient: vertical;\\n word-break: break-word;\\n }\\n .arcblock-blocklet__version {\\n color: \", \";\\n font-size: 12px;\\n }\\n\"])), props => props.theme.spacing(2), props => props.theme.spacing(2), props => props.theme.spacing(2), props => props.theme.breakpoints.up('sm'), props => props.theme.spacing(2), props => props.theme.breakpoints.up('sm'), props => props.theme.palette.primary.main, props => props.theme.palette.primary.main, props => props.theme.palette.common.white, props => props.theme.palette.divider, props => props.theme.spacing(2), props => props.theme.spacing(0.5), props => props.theme.palette.grey[600], props => props.theme.palette.grey[600]);\n\nfunction BlockletStore(_ref) {\n let {\n title,\n did,\n description,\n cover,\n version,\n button,\n buttonText,\n buttonDisabled,\n buttonLoading,\n onButtonClick,\n onMainClick,\n className\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n const wrapHandler = function wrapHandler(handler) {\n let stopFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => false;\n return function (e) {\n if (stopFn()) {\n e.preventDefault();\n e.stopPropagation();\n } else if (handler instanceof Function) {\n e.preventDefault();\n e.stopPropagation();\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n handler(...args);\n }\n };\n };\n\n const _onButtonClick = wrapHandler(onButtonClick, () => {\n // stop click while custom button or buttonDisabled or buttondLoading\n if (button || buttonDisabled || buttonLoading) {\n return true;\n }\n\n return false;\n });\n\n const theme = (0, _Theme.useTheme)();\n const isUpSm = (0, _useMediaQuery.default)(theme.breakpoints.up('sm'));\n\n const _onMainClick = wrapHandler(onMainClick);\n\n const didAvatarSize = isUpSm ? 80 : 64;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({\n className: \"\".concat(className, \" arcblock-blocklet\")\n }, rest), {}, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"arcblock-blocklet__content\",\n onClick: _onMainClick,\n children: [cover ? /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"arcblock-blocklet__cover\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Img.default, {\n src: cover\n })\n }) : did && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"arcblock-blocklet__cover\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {\n did: did,\n size: didAvatarSize\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"arcblock-blocklet__info\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"arcblock-blocklet__text\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n component: \"h3\",\n variant: \"h3\",\n className: \"arcblock-blocklet__title\",\n title: title,\n children: title\n }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n component: \"div\",\n variant: \"body2\",\n className: \"arcblock-blocklet__describe\",\n title: description,\n children: description\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '10px',\n flexFlow: 'wrap'\n },\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n onClick: _onButtonClick,\n style: {\n marginRight: '12px'\n },\n children: button || onButtonClick && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {\n className: \"arcblock-blocklet__button--hover\",\n variant: \"outlined\",\n color: \"primary\",\n size: \"small\",\n disabled: buttonDisabled || buttonLoading,\n style: {\n padding: '3px 6px',\n fontSize: '14px',\n minWidth: '92px',\n textAlign: 'center'\n },\n children: [buttonLoading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {\n size: 15,\n style: {\n marginRight: 3,\n color: 'inherit'\n }\n }), buttonText]\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"arcblock-blocklet__version\",\n children: version && \"v\".concat(version)\n })]\n })]\n })]\n })\n }));\n}\n\nBlockletStore.propTypes = {\n title: _propTypes.default.string.isRequired,\n did: _propTypes.default.string,\n description: _propTypes.default.string,\n cover: _propTypes.default.string,\n buttonText: _propTypes.default.string,\n buttonDisabled: _propTypes.default.bool,\n buttonLoading: _propTypes.default.bool,\n button: _propTypes.default.element,\n version: _propTypes.default.string,\n onButtonClick: _propTypes.default.func,\n onMainClick: _propTypes.default.func,\n className: _propTypes.default.string\n};\nBlockletStore.defaultProps = {\n description: null,\n cover: null,\n did: null,\n buttonText: 'Install',\n buttonDisabled: false,\n buttonLoading: false,\n button: null,\n version: null,\n onButtonClick: null,\n onMainClick: null,\n className: null\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"ActionButton\", {\n enumerable: true,\n get: function get() {\n return _utils.default;\n }\n});\nexports.default = void 0;\n\nvar _utils = _interopRequireDefault(require(\"./utils\"));\n\nvar _blocklet = _interopRequireDefault(require(\"./blocklet\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _blocklet.default;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _Theme = require(\"../Theme\");\n\nvar _templateObject;\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nconst ActionButton = (0, _Theme.styled)('div')(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n background-color: transparent !important;\\n & > :not(.Mui-disabled) {\\n position: relative;\\n z-index: 1;\\n &::before {\\n content: '';\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n left: 0;\\n top: 0;\\n transition: opacity 0.3s;\\n }\\n &:hover::before {\\n opacity: 0;\\n }\\n &::after {\\n content: '';\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n top: 0;\\n left: 0;\\n border-radius: 2px;\\n background-color: \", \";\\n transform: scale(0.1);\\n opacity: 0;\\n z-index: -1;\\n transition: transform 0.3s, opacity 0.3s, background-color 0.3s;\\n }\\n &:hover::after {\\n opacity: 1;\\n transform-origin: center;\\n transform: scale(1);\\n }\\n }\\n & > :not(.Mui-disabled) {\\n background-color: transparent !important;\\n color: \", \"!important;\\n }\\n & > :not(.Mui-disabled) {\\n &:hover {\\n color: \", \"!important;\\n }\\n }\\n\"])), props => props.theme.palette.primary.main, props => props.theme.palette.primary.main, props => props.theme.palette.common.white);\nvar _default = ActionButton;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nconst flat = require('flat');\n\nconst en = {\n common: {\n searchStore: 'Search the store',\n price: 'Price',\n category: 'Category'\n },\n sort: {\n sort: 'Sort',\n nameDescend: 'Name Descending',\n nameAscend: 'Name Ascending',\n popularity: 'Most Popular',\n lastPublished: 'Latest Published'\n },\n category: {\n all: 'All',\n placeholder: 'Category name',\n helperText: 'Please select a category'\n },\n blocklet: {\n noResults: 'No Blocklets',\n payment: 'Paid Blocklets',\n free: 'Fee Blocklets',\n emptyTip: 'Tips:',\n filterTip: 'Appropriately reduce the filter conditions',\n keywordTip: 'Try other keywords',\n owner: 'Blocklets from {name}',\n noBlockletPart1: 'No Blocklets associated with\"',\n noBlockletPart2: '\"were found',\n noCategoryResults1: 'No \"',\n noCategoryResults2: '\" Blocklets'\n }\n};\nconst zh = {\n common: {\n searchStore: '搜索商店内应用',\n price: '价格',\n category: '类别'\n },\n sort: {\n sort: '排序',\n nameDescend: '名称降序',\n nameAscend: '名称升序',\n popularity: '最热门',\n lastPublished: '最新发布'\n },\n category: {\n all: '全部',\n placeholder: '分类名称',\n helperText: '请选择分类'\n },\n blocklet: {\n noResults: '暂无应用',\n free: '免费应用',\n payment: '付费应用',\n emptyTip: '建议:',\n filterTip: '适当减少筛选条件',\n keywordTip: '尝试其他关键字',\n owner: '来自 {name} 的 Blocklets',\n noBlockletPart1: '没有找到与\"',\n noBlockletPart2: '\"相关的 Blocklets',\n noCategoryResults1: '无 \"',\n noCategoryResults2: '\" 类别的 Blocklets'\n }\n};\nvar _default = {\n en: flat(en),\n zh: flat(zh)\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _Sort = _interopRequireDefault(require(\"@mui/icons-material/Sort\"));\n\nvar _material = require(\"@mui/material\");\n\nvar _Face = _interopRequireDefault(require(\"@mui/icons-material/Face\"));\n\nvar _reactErrorBoundary = require(\"react-error-boundary\");\n\nvar _ErrorBoundary = require(\"@arcblock/ux/lib/ErrorBoundary\");\n\nvar _filter = require(\"./contexts/filter\");\n\nvar _customSelect = _interopRequireDefault(require(\"./components/custom-select\"));\n\nvar _filter2 = require(\"./components/filter\");\n\nvar _utils = require(\"./libs/utils\");\n\nvar _list = _interopRequireDefault(require(\"./components/list\"));\n\nvar _aside = _interopRequireDefault(require(\"./components/aside\"));\n\nvar _autocomplete = _interopRequireDefault(require(\"./components/autocomplete\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject, _templateObject2;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction ListBase() {\n var _sortOptions$find, _priceOptions$find;\n\n const {\n handleDeveloper,\n blockletList,\n filters,\n developerName,\n handleSort,\n handleCategory,\n handlePrice,\n t,\n getCategoryLocale,\n priceOptions\n } = (0, _filter.useFilterContext)();\n const sortOptions = (0, _utils.getSortOptions)(t);\n const sortLocale = ((_sortOptions$find = sortOptions.find(f => f.value === filters.sortBy)) === null || _sortOptions$find === void 0 ? void 0 : _sortOptions$find.name) || t('sort.sort');\n const categoryLocale = getCategoryLocale(filters.category);\n const priceLocale = (_priceOptions$find = priceOptions.find(price => price.value === filters.price)) === null || _priceOptions$find === void 0 ? void 0 : _priceOptions$find.name;\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {\n display: \"flex\",\n alignItems: \"flex-start\",\n height: \"100%\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Hidden, {\n mdDown: true,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_aside.default, {})\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledMin, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(FilterContainer, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {\n className: \"filter-bar\",\n display: \"flex\",\n alignItems: \"center\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_autocomplete.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {\n mt: 0,\n ml: \"16px\",\n className: \"filter-container\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Hidden, {\n mdUp: true,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_filter2.FilterIcon, {})\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_customSelect.default, {\n value: filters.sortBy,\n options: sortOptions,\n title: sortLocale,\n icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Sort.default, {}),\n onChange: v => {\n handleSort(v);\n }\n })]\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n mb: \"16px\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_filter2.CustomChip, {\n label: developerName,\n icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Face.default, {}),\n onDelete: () => {\n handleDeveloper(null);\n }\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_filter2.CustomChip, {\n label: categoryLocale,\n onDelete: () => {\n handleCategory(null);\n }\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_filter2.CustomChip, {\n label: priceLocale,\n onDelete: () => {\n handlePrice(null);\n }\n })]\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {\n FallbackComponent: _ErrorBoundary.ErrorFallback,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n style: {\n position: 'relative',\n flex: 1,\n overflow: 'auto'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_list.default, {\n blocklets: blockletList\n })\n })\n })]\n })]\n });\n}\n\nconst StyledMin = _styled.default.main(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n display: flex;\\n flex-direction: column;\\n flex: 1;\\n width: 100%;\\n height: 100%;\\n .filter-bar {\\n justify-content: space-between;\\n margin-bottom: \", \";\\n }\\n .sort-button {\\n white-space: nowrap;\\n }\\n .bl-search-container {\\n flex: 2;\\n margin-left: 0px;\\n }\\n\\n .filter-container {\\n flex: 1;\\n display: flex;\\n justify-content: flex-end;\\n }\\n @media (max-width: \", \"px) {\\n .bl-search-container {\\n width: 100%;\\n margin-bottom: \", \";\\n }\\n .filter-container {\\n margin-left: 0;\\n display: flex;\\n justify-content: flex-start;\\n }\\n .filter-bar {\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n }\\n }\\n @media (max-width: \", \"px) {\\n .sort-button {\\n font-size: 12px;\\n }\\n }\\n\"])), props => props.theme.spacing(2), props => props.theme.breakpoints.values.md, props => props.theme.spacing(2), props => props.theme.breakpoints.values.md);\n\nconst FilterContainer = _styled.default.div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n position: sticky;\\n top: 0;\\n z-index: 9;\\n background-color: white;\\n\"])));\n\nvar _default = ListBase;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _filter = require(\"../contexts/filter\");\n\nvar _filter2 = require(\"./filter\");\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction Aside() {\n const {\n selectedCategory,\n handleCategory,\n t,\n handlePrice,\n filters,\n categoryOptions,\n priceOptions\n } = (0, _filter.useFilterContext)();\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledAside, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_filter2.FilterGroup, {\n title: t('common.price'),\n options: priceOptions,\n value: filters.price,\n onChange: handlePrice\n })\n }), categoryOptions.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n style: {\n marginTop: '16px'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_filter2.FilterGroup, {\n title: t('common.category'),\n options: categoryOptions,\n value: selectedCategory,\n onChange: handleCategory\n })\n })]\n });\n}\n\nconst StyledAside = _styled.default.aside(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n width: 220px;\\n margin-right: \", \";\\n height: 100%;\\n position: sticky;\\n top: 0;\\n overflow-y: auto;\\n z-index: auto;\\n\"])), props => props.theme.spacing(2));\n\nAside.propTypes = {};\nAside.defaultProps = {};\nvar _default = Aside;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Autocomplete;\n\nvar _react = require(\"react\");\n\nvar _client = require(\"react-dom/client\");\n\nvar _autocompleteJs = require(\"@algolia/autocomplete-js\");\n\nvar _react2 = require(\"@emotion/react\");\n\nvar _styles = require(\"@mui/material/styles\");\n\nvar _urlJoin = _interopRequireDefault(require(\"url-join\"));\n\nvar _constant = _interopRequireDefault(require(\"../../libs/constant\"));\n\nvar _utils = require(\"../../libs/utils\");\n\nvar _filter = require(\"../../contexts/filter\");\n\nvar _item = _interopRequireDefault(require(\"./item\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 Autocomplete() {\n const containerRef = (0, _react.useRef)(null);\n const panelRootRef = (0, _react.useRef)(null);\n const rootRef = (0, _react.useRef)(null);\n const {\n storeApi,\n filters,\n endpoint,\n handleKeyword,\n t\n } = (0, _filter.useFilterContext)();\n const muiTheme = (0, _styles.useTheme)();\n const getResults = (0, _react.useCallback)(async params => {\n const {\n data\n } = await storeApi.get(_constant.default.blockletsPath, {\n params\n });\n return data.dataList || [];\n }, [storeApi]);\n\n const onClickItem = detailUrl => {\n window.location.href = detailUrl;\n };\n\n const onSubmit = (0, _react.useCallback)(e => {\n handleKeyword(e.state.query);\n }, [handleKeyword]);\n const onReset = (0, _react.useCallback)(() => {\n handleKeyword();\n }, [handleKeyword]);\n (0, _react.useEffect)(() => {\n if (!containerRef.current) {\n return undefined;\n }\n\n const search = (0, _autocompleteJs.autocomplete)({\n container: containerRef.current,\n renderer: {\n createElement: _react.createElement,\n Fragment: _react.Fragment,\n render: () => {}\n },\n\n render(_ref, root) {\n let {\n children\n } = _ref;\n\n if (!panelRootRef.current || rootRef.current !== root) {\n var _panelRootRef$current;\n\n rootRef.current = root;\n (_panelRootRef$current = panelRootRef.current) === null || _panelRootRef$current === void 0 ? void 0 : _panelRootRef$current.unmount();\n panelRootRef.current = (0, _client.createRoot)(root);\n }\n\n panelRootRef.current.render(children);\n },\n\n classNames: {\n panel: 'bl-autocomplete-panel',\n label: 'bl-autocomplete-label',\n form: 'bl-autocomplete-form',\n input: 'bl-autocomplete-input',\n clearButton: 'bl-autocomplete-clear'\n },\n placeholder: t('common.searchStore'),\n initialState: {\n query: filters.keyword\n },\n onSubmit,\n onReset,\n\n getSources(_ref2) {\n let {\n query\n } = _ref2;\n\n const params = _objectSpread(_objectSpread({}, filters), {}, {\n sortBy: _constant.default[filters.sortBy],\n page: 1,\n pageSize: 10,\n keyword: query\n });\n\n return (0, _utils.debounced)([{\n sourceId: 'blocklets',\n\n getItems() {\n return getResults(params);\n },\n\n // 选中后填充 搜索框中值\n getItemInputValue(_ref3) {\n let {\n item\n } = _ref3;\n return item.title;\n },\n\n getItemUrl(_ref4) {\n let {\n item\n } = _ref4;\n const detailUrl = (0, _urlJoin.default)(endpoint, 'blocklets', item.did);\n return detailUrl;\n },\n\n templates: {\n // eslint-disable-next-line react/no-unstable-nested-components\n item(_ref5) {\n let {\n item\n } = _ref5;\n const logoUrl = item.logo ? (0, _urlJoin.default)(endpoint, 'assets', item.did, item.logo) : null;\n const detailUrl = (0, _urlJoin.default)(endpoint, 'blocklets', item.did);\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.ThemeProvider, {\n theme: muiTheme,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.ThemeProvider, {\n theme: muiTheme,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.default, {\n item: item,\n title: (item === null || item === void 0 ? void 0 : item.title) || (item === null || item === void 0 ? void 0 : item.name),\n did: item.did,\n description: item.description,\n cover: logoUrl,\n onMainClick: () => onClickItem(detailUrl)\n })\n })\n });\n },\n\n noResults() {\n return t('blocklet.noResults');\n }\n\n }\n }]);\n }\n\n });\n return () => {\n search.destroy();\n };\n }, [endpoint, filters, getResults, muiTheme, onReset, onSubmit, t]);\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"bl-search-container\",\n ref: containerRef\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Blocklet;\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\n\nvar _Img = _interopRequireDefault(require(\"@arcblock/ux/lib/Img\"));\n\nvar _Avatar = _interopRequireDefault(require(\"@arcblock/did-connect/lib/Avatar\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nconst _excluded = [\"cover\", \"onMainClick\", \"item\", \"className\"];\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nconst Div = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n &.arcblock-blocklet {\\n padding: \", \" \", \" 0\\n \", \";\\n }\\n .arcblock-blocklet__content {\\n cursor: pointer;\\n display: flex;\\n }\\n .arcblock-blocklet__cover {\\n width: 64px;\\n height: 64px;\\n margin-right: \", \";\\n overflow: hidden;\\n border-radius: 12px;\\n transform: translateZ(0);\\n }\\n\\n .arcblock-blocklet__info {\\n flex: 1;\\n overflow: hidden;\\n border-bottom: 1px solid \", \";\\n padding-bottom: \", \";\\n }\\n .arcblock-blocklet__text {\\n height: 57px;\\n overflow: hidden;\\n }\\n /* \\u8BBE\\u7F6E\\u591A\\u884C\\u6587\\u672C\\u6EA2\\u51FA\\u663E\\u793A\\u7701\\u7565\\u53F7 \\u517C\\u5BB9fireFox\\u3001safari */\\n .arcblock-blocklet__title {\\n margin: 0;\\n font-size: 16px;\\n font-weight: 500;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n }\\n .arcblock-blocklet__describe {\\n margin-top: \", \";\\n color: \", \";\\n font-size: 14px;\\n font-weight: 500;\\n line-height: 17px;\\n max-height: 34px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 2;\\n -webkit-box-orient: vertical;\\n word-break: break-word;\\n }\\n .ms-highlight {\\n background-color: yellow;\\n }\\n\"])), props => props.theme.spacing(2), props => props.theme.spacing(2), props => props.theme.spacing(2), props => props.theme.spacing(2), props => props.theme.palette.divider, props => props.theme.spacing(2), props => props.theme.spacing(0.5), props => props.theme.palette.grey[600]);\n\nfunction Blocklet(_ref) {\n let {\n cover,\n onMainClick,\n item,\n className\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n const wrapHandler = function wrapHandler(handler) {\n let stopFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => false;\n return function (e) {\n if (stopFn()) {\n e.preventDefault();\n e.stopPropagation();\n } else if (handler instanceof Function) {\n e.preventDefault();\n e.stopPropagation();\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n handler(...args);\n }\n };\n };\n\n const _onMainClick = wrapHandler(onMainClick);\n\n const {\n did,\n description,\n title,\n name\n } = item;\n const blockletTitle = title || name;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Div, _objectSpread(_objectSpread({\n className: \"\".concat(className, \" arcblock-blocklet\")\n }, rest), {}, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"arcblock-blocklet__content\",\n onClick: _onMainClick,\n children: [cover ? /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"arcblock-blocklet__cover\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Img.default, {\n src: cover\n })\n }) : did && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"arcblock-blocklet__cover\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {\n did: did,\n size: 64\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"arcblock-blocklet__info\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"div\", {\n className: \"arcblock-blocklet__text\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n component: \"h3\",\n variant: \"h3\",\n className: \"arcblock-blocklet__title\",\n title: title,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ShowAttributes, {\n item: item,\n attribute: \"title\",\n value: blockletTitle\n })\n }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n component: \"div\",\n variant: \"body2\",\n className: \"arcblock-blocklet__describe\",\n title: description,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ShowAttributes, {\n item: item,\n attribute: \"description\",\n value: description\n })\n })]\n })\n })]\n })\n }));\n}\n\nBlocklet.propTypes = {\n cover: _propTypes.default.string,\n onMainClick: _propTypes.default.func,\n className: _propTypes.default.string,\n item: _propTypes.default.object.isRequired\n};\nBlocklet.defaultProps = {\n cover: null,\n onMainClick: null,\n className: null\n};\n\nfunction ShowAttributes(_ref2) {\n let {\n item,\n attribute,\n value\n } = _ref2;\n // eslint-disable-next-line react/no-danger\n if (item._formatted) return /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n dangerouslySetInnerHTML: {\n __html: item._formatted[attribute]\n }\n });\n return value;\n}\n\nShowAttributes.propTypes = {\n item: _propTypes.default.object.isRequired,\n attribute: _propTypes.default.string.isRequired,\n value: _propTypes.default.string.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _material = require(\"@mui/material\");\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nconst _excluded = [\"children\", \"rounded\", \"loading\", \"disabled\"];\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nconst StyledButton = (0, _styled.default)(_material.Button)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n border-radius: 4px;\\n\"])));\nconst Button = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {\n let {\n children,\n rounded,\n loading,\n disabled\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledButton, _objectSpread(_objectSpread({\n ref: ref,\n disableElevation: true,\n disabled: disabled || loading\n }, rest), {}, {\n startIcon: loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.CircularProgress, {\n size: \"1em\"\n }),\n children: children\n }));\n});\nButton.propTypes = {\n children: _propTypes.default.any,\n rounded: _propTypes.default.bool,\n loading: _propTypes.default.bool,\n disabled: _propTypes.default.bool\n};\nButton.defaultProps = {\n children: null,\n rounded: false,\n loading: false,\n disabled: false\n};\nvar _default = Button;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\nvar _styles = require(\"@mui/material/styles\");\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _material = require(\"@mui/material\");\n\nvar _KeyboardArrowDown = _interopRequireDefault(require(\"@mui/icons-material/KeyboardArrowDown\"));\n\nvar _isEmpty = _interopRequireDefault(require(\"lodash/isEmpty\"));\n\nvar _button = _interopRequireDefault(require(\"./button\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject, _templateObject2;\n\nconst _excluded = [\"title\", \"value\", \"icon\", \"prepend\", \"options\", \"onChange\", \"itemRender\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\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\nfunction CustomSelect(_ref) {\n let {\n title,\n value,\n icon,\n prepend,\n options,\n onChange,\n itemRender\n } = _ref,\n buttonProps = _objectWithoutProperties(_ref, _excluded);\n\n const anchorRef = (0, _react.useRef)(null);\n const theme = (0, _styles.useTheme)();\n const [open, setOpen] = (0, _react.useState)(false);\n const [currentValue, setCurrentValue] = (0, _react.useState)(value !== null ? value : '');\n const isSm = (0, _material.useMediaQuery)(theme.breakpoints.down('sm'));\n (0, _react.useEffect)(() => {\n setCurrentValue(value !== null ? value : '');\n }, [value]);\n const closeMenu = (0, _react.useCallback)(() => {\n setOpen(false);\n }, []);\n const openMenu = (0, _react.useCallback)(() => {\n setOpen(true);\n }, []);\n\n function toggle(option) {\n setCurrentValue(option.value);\n onChange(option.value);\n\n if (isSm) {\n closeMenu();\n }\n }\n\n function containsValue(optionValue) {\n return optionValue === currentValue;\n }\n\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledButton, _objectSpread(_objectSpread({\n ref: anchorRef,\n onClick: openMenu,\n variant: \"outlined\",\n size: \"small\",\n className: ['my-select__selector', (0, _isEmpty.default)(currentValue) ? '' : 'my-select__selector--active'].join(' ')\n }, buttonProps), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"my-select__icon\",\n children: icon\n }), title, /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.SvgIcon, {\n className: \"my-select__arrowdown\",\n component: _KeyboardArrowDown.default,\n fontSize: \"small\"\n })]\n })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Popper, {\n open: open,\n anchorEl: anchorRef.current,\n transition: true,\n style: {\n zIndex: '9999'\n },\n children: _ref2 => {\n let {\n TransitionProps,\n placement\n } = _ref2;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grow, _objectSpread(_objectSpread({}, TransitionProps), {}, {\n style: {\n transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Paper, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ClickAwayListener, {\n onClickAway: closeMenu,\n children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledMenuList, {\n autoFocusItem: open,\n onMouseEnter: openMenu,\n onMouseLeave: closeMenu,\n children: [prepend, options.map(option => {\n if (itemRender) {\n return itemRender(option);\n }\n\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MenuItem, {\n onClick: () => toggle(option),\n className: ['my-select__option', containsValue(option.value) ? 'my-select__option--active' : ''].join(' '),\n children: option.name\n }, option.value);\n })]\n })\n })\n })\n }));\n }\n })]\n });\n}\n\nCustomSelect.propTypes = {\n options: _propTypes.default.array.isRequired,\n value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.array]),\n onChange: _propTypes.default.func,\n itemRender: _propTypes.default.func,\n title: _propTypes.default.string.isRequired,\n icon: _propTypes.default.any,\n prepend: _propTypes.default.any\n};\nCustomSelect.defaultProps = {\n value: null,\n icon: null,\n prepend: null,\n itemRender: null,\n onChange: () => {}\n};\nconst StyledButton = (0, _styled.default)(_button.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n border: 1px solid #f0f0f0;\\n padding: 6px 8px 6px 12px;\\n font-weight: \", \";\\n font-size: 16px;\\n color: #666;\\n line-height: 1;\\n text-transform: none;\\n min-width: 100px;\\n & + & {\\n margin-left: 10px;\\n }\\n &.my-select__selector--active {\\n &,\\n .my-select__arrowdown,\\n .my-select__icon svg {\\n color: \", \";\\n }\\n }\\n .my-select__arrowdown {\\n color: #999;\\n font-size: 16px;\\n margin-left: 6px;\\n }\\n .my-select__icon {\\n font-size: 0;\\n svg {\\n color: #999;\\n font-size: 18px;\\n margin-right: 3px;\\n }\\n }\\n\"])), props => props.theme.typography.fontWeightBold, props => props.theme.palette.primary.main);\nconst StyledMenuList = (0, _styled.default)(_material.MenuList)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n .my-select__option__icon {\\n color: transparent;\\n font-size: 16px;\\n margin: 0 3px 0 -5px;\\n }\\n .my-select__option {\\n font-size: 16px;\\n color: #999;\\n }\\n .my-select__option--active {\\n &,\\n .my-select__option__icon {\\n color: \", \";\\n }\\n }\\n\"])), props => props.theme.palette.primary.main);\nvar _default = CustomSelect;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _customSelect = _interopRequireDefault(require(\"./custom-select\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _customSelect.default;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _material = require(\"@mui/material\");\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nconst _excluded = [\"label\", \"icon\", \"onDelete\"];\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nconst StyleDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .MuiChip-root {\\n border-radius: 4px;\\n height: initial;\\n text-transform: capitalize;\\n margin-right: \", \";\\n padding: 4px 0;\\n }\\n\"])), props => props.theme.spacing(2));\n\nfunction FilterChip(_ref) {\n let {\n label,\n icon,\n onDelete\n } = _ref,\n containerProps = _objectWithoutProperties(_ref, _excluded);\n\n if (!label) return null;\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyleDiv, _objectSpread(_objectSpread({}, containerProps), {}, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {\n color: \"primary\",\n \"data-cy\": \"filter-tag\",\n icon: icon,\n label: label,\n onDelete: onDelete\n })\n }));\n}\n\nFilterChip.propTypes = {\n label: _propTypes.default.string,\n onDelete: _propTypes.default.func,\n icon: _propTypes.default.element\n};\nFilterChip.defaultProps = {\n onDelete: () => {},\n icon: null,\n label: null\n};\nvar _default = FilterChip;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction FilterGroup(_ref) {\n let {\n options,\n onChange,\n title,\n value\n } = _ref;\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledDiv, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"title\",\n children: title\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"list\",\n children: options.map(item => {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n title: item.name,\n \"data-cy\": \"filter\",\n className: value === item.value ? 'select item' : 'item',\n onClick: () => onChange(item.value),\n children: item.name\n }, item.value);\n })\n })]\n });\n}\n\nconst StyledDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .title {\\n font-size: 18px;\\n font-weight: bold;\\n margin-bottom: \", \";\\n }\\n .list {\\n }\\n .item {\\n font-size: 16px;\\n padding: \", \";\\n color: #9397a1;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n text-transform: capitalize;\\n cursor: pointer;\\n &:hover {\\n background-color: \", \";\\n color: initial;\\n font-weight: bold;\\n }\\n }\\n .select {\\n color: \", \";\\n font-weight: bold;\\n }\\n\"])), props => props.theme.spacing(1), props => props.theme.spacing(1), props => props.theme.palette.grey[50], props => props.theme.palette.primary.main);\n\nFilterGroup.propTypes = {\n title: _propTypes.default.string.isRequired,\n options: _propTypes.default.array.isRequired,\n onChange: _propTypes.default.func.isRequired,\n value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])\n};\nFilterGroup.defaultProps = {\n value: null\n};\nvar _default = FilterGroup;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = require(\"react\");\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _FilterAltOutlined = _interopRequireDefault(require(\"@mui/icons-material/FilterAltOutlined\"));\n\nvar _Dialog = _interopRequireDefault(require(\"@arcblock/ux/lib/Dialog\"));\n\nvar _Button = _interopRequireDefault(require(\"@mui/material/Button\"));\n\nvar _filter = require(\"../../contexts/filter\");\n\nvar _group = _interopRequireDefault(require(\"./group\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction FilterIcon() {\n const {\n selectedCategory,\n handleCategory,\n t,\n handlePrice,\n filters,\n categoryOptions,\n priceOptions\n } = (0, _filter.useFilterContext)();\n const [open, setOpen] = (0, _react.useState)(false);\n\n const handelChange = (type, value) => {\n if (type === 'category') {\n handleCategory(value);\n }\n\n if (type === 'price') {\n handlePrice(value);\n }\n\n setOpen(false);\n };\n\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledDiv, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {\n variant: \"outlined\",\n className: \"filter-button\",\n onClick: () => setOpen(true),\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FilterAltOutlined.default, {\n className: \"filter-icon\",\n fontSize: \"small\"\n })\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog.default, {\n fullWidth: true,\n title: \"\",\n open: open,\n onClose: () => setOpen(false),\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_group.default, {\n title: t('common.price'),\n options: priceOptions,\n value: filters.price,\n onChange: v => {\n handelChange('price', v);\n }\n }), categoryOptions.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n style: {\n marginTop: '16px'\n },\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_group.default, {\n title: t('common.category'),\n options: categoryOptions,\n value: selectedCategory,\n onChange: v => {\n handelChange('category', v);\n }\n })\n })]\n })]\n });\n}\n\nconst StyledDiv = _styled.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .filter-button {\\n margin-right: 16px;\\n border-color: rgb(240, 240, 240);\\n padding: 5px 8px;\\n min-width: initial;\\n }\\n .filter-icon {\\n cursor: pointer;\\n color: \", \";\\n }\\n\"])), props => props.theme.palette.grey[500]);\n\nFilterIcon.propTypes = {};\nFilterIcon.defaultProps = {};\nvar _default = FilterIcon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"CustomChip\", {\n enumerable: true,\n get: function get() {\n return _customChip.default;\n }\n});\nObject.defineProperty(exports, \"FilterGroup\", {\n enumerable: true,\n get: function get() {\n return _group.default;\n }\n});\nObject.defineProperty(exports, \"FilterIcon\", {\n enumerable: true,\n get: function get() {\n return _icon.default;\n }\n});\n\nvar _icon = _interopRequireDefault(require(\"./icon\"));\n\nvar _customChip = _interopRequireDefault(require(\"./custom-chip\"));\n\nvar _group = _interopRequireDefault(require(\"./group\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.EmptyTitle = EmptyTitle;\nexports.NoResults = NoResults;\nexports.NoResultsTips = NoResultsTips;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\n\nvar _Typography = _interopRequireDefault(require(\"@mui/material/Typography\"));\n\nvar _filter = require(\"../../contexts/filter\");\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction NoResults() {\n const {\n t\n } = (0, _filter.useFilterContext)();\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n style: {\n textAlign: 'center'\n },\n variant: \"subtitle2\",\n children: t('blocklet.noResults')\n });\n}\n\nfunction NoResultsTips(_ref) {\n let {\n filterTip,\n keywordTip\n } = _ref;\n const {\n t,\n locale\n } = (0, _filter.useFilterContext)();\n\n const getSplit = () => {\n if (locale === 'zh') return '、';\n return ' , ';\n };\n\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {\n className: \"tips\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n style: {\n marginRight: '16px'\n },\n children: t('blocklet.emptyTip')\n }), filterTip && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n children: t('blocklet.filterTip')\n }), filterTip && keywordTip && getSplit(), keywordTip && /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n children: t('blocklet.keywordTip')\n })]\n });\n}\n\nNoResultsTips.propTypes = {\n filterTip: _propTypes.default.bool,\n keywordTip: _propTypes.default.bool\n};\nNoResultsTips.defaultProps = {\n filterTip: false,\n keywordTip: false\n};\n\nfunction EmptyTitle(_ref2) {\n let {\n primaryStart,\n primaryEnd,\n filter\n } = _ref2;\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {\n variant: \"subtitle2\",\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n children: primaryStart\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"span\", {\n className: \"primary\",\n children: [\" \", filter, \" \"]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(\"span\", {\n children: [primaryEnd, \" \"]\n })]\n });\n}\n\nEmptyTitle.propTypes = {\n primaryStart: _propTypes.default.string.isRequired,\n primaryEnd: _propTypes.default.string.isRequired,\n filter: _propTypes.default.string.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletList;\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\n\nvar _Empty = _interopRequireDefault(require(\"@arcblock/ux/lib/Empty\"));\n\nvar _Box = _interopRequireDefault(require(\"@mui/material/Box\"));\n\nvar _Grid = _interopRequireDefault(require(\"@mui/material/Grid\"));\n\nvar _CircularProgress = _interopRequireDefault(require(\"@mui/material/CircularProgress\"));\n\nvar _reactInfiniteScrollHook = _interopRequireDefault(require(\"react-infinite-scroll-hook\"));\n\nvar _ErrorBoundary = require(\"@arcblock/ux/lib/ErrorBoundary\");\n\nvar _empty = require(\"./empty\");\n\nvar _filter = require(\"../../contexts/filter\");\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject, _templateObject2, _templateObject3;\n\nconst _excluded = [\"blocklets\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\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\nfunction BlockletList(_ref) {\n let {\n blocklets\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n const {\n blockletRender,\n errors,\n loadings,\n selectedCategory,\n getCategoryLocale,\n filters,\n t,\n hasNextPage,\n loadMore,\n endpoint\n } = (0, _filter.useFilterContext)();\n const showFilterTip = !!selectedCategory || !!filters.price;\n const [sentryRef] = (0, _reactInfiniteScrollHook.default)({\n loading: loadings.fetchBlockletsLoading || loadings.loadingMore,\n hasNextPage,\n onLoadMore: loadMore\n });\n\n if (errors.fetchBlockletsError) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorBoundary.ErrorFallback, {\n error: new Error(\"Failed to fetch blocklets from \".concat(endpoint, \": \").concat(errors.fetchBlockletsError.message))\n });\n }\n\n if (loadings.fetchBlockletsLoading) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n height: 60,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {})\n });\n }\n\n if (filters.keyword && showFilterTip && blocklets.length === 0) {\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CustomEmpty, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.EmptyTitle, {\n primaryStart: t('blocklet.noBlockletPart1'),\n primaryEnd: t('blocklet.noBlockletPart2'),\n filter: filters.keyword\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.NoResultsTips, {\n keywordTip: true,\n filterTip: true\n })]\n });\n }\n\n if (filters.keyword && blocklets.length === 0) {\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CustomEmpty, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.EmptyTitle, {\n primaryStart: t('blocklet.noBlockletPart1'),\n primaryEnd: t('blocklet.noBlockletPart2'),\n filter: filters.keyword\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.NoResultsTips, {\n keywordTip: true\n })]\n });\n }\n\n if (showFilterTip && blocklets.length === 0) {\n const categoryLocale = getCategoryLocale(selectedCategory);\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(CustomEmpty, {\n children: [categoryLocale ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.EmptyTitle, {\n primaryStart: t('blocklet.noCategoryResults1'),\n primaryEnd: t('blocklet.noCategoryResults2'),\n filter: categoryLocale\n }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.NoResults, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.NoResultsTips, {\n filterTip: true\n })]\n });\n }\n\n if (blocklets.length === 0) {\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomEmpty, {\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_empty.NoResults, {})\n });\n }\n\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledGrid, _objectSpread(_objectSpread({\n container: true\n }, rest), {}, {\n children: [blocklets.map(blocklet => /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledGridItem, {\n item: true,\n lg: 4,\n md: 6,\n sm: 6,\n xs: 12,\n \"data-blocklet-did\": blocklet.did,\n children: blockletRender({\n blocklet,\n blocklets\n })\n }, blocklet.did)), hasNextPage && /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledGridItem, {\n item: true,\n md: 12,\n sm: 12,\n xs: 12,\n ref: sentryRef,\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {\n height: 60,\n display: \"flex\",\n justifyContent: \"center\",\n children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {})\n })\n })]\n }));\n}\n\nBlockletList.propTypes = {\n blocklets: _propTypes.default.array.isRequired\n};\nBlockletList.defaultProps = {};\nconst StyledGrid = (0, _styled.default)(_Grid.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n &.MuiGrid-root {\\n width: 100%;\\n margin: 0 -16px;\\n }\\n\"])));\nconst StyledGridItem = /*#__PURE__*/(0, _react.memo)((0, _styled.default)(_Grid.default)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n @media (max-width: \", \"px) {\\n &.MuiGrid-item {\\n padding-bottom: 0px;\\n }\\n }\\n @media (min-width: \", \"px) {\\n &.MuiGrid-item {\\n margin-bottom: \", \";\\n }\\n }\\n\"])), props => props.theme.breakpoints.values.sm, props => props.theme.breakpoints.values.sm, props => props.theme.spacing(2)));\nconst CustomEmpty = (0, _styled.default)(_Empty.default)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n text-align: center;\\n .primary {\\n color: \", \";\\n }\\n .tips {\\n margin-top: \", \";\\n }\\n\"])), props => props.theme.palette.primary.main, props => props.theme.spacing(1));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FilterConsumer = void 0;\nexports.FilterProvider = FilterProvider;\nexports.useFilterContext = useFilterContext;\n\nvar _react = require(\"react\");\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _ahooks = require(\"ahooks\");\n\nvar _orderBy = _interopRequireDefault(require(\"lodash/orderBy\"));\n\nvar _axios = _interopRequireDefault(require(\"axios\"));\n\nvar _utils = require(\"../libs/utils\");\n\nvar _locale = _interopRequireDefault(require(\"../assets/locale\"));\n\nvar _propTypes2 = require(\"../libs/prop-types\");\n\nvar _constant = _interopRequireDefault(require(\"../libs/constant\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nconst Filter = /*#__PURE__*/(0, _react.createContext)({});\nconst {\n Provider,\n Consumer\n} = Filter;\nexports.FilterConsumer = Consumer;\n\nfunction FilterProvider(_ref) {\n let {\n filters,\n children,\n endpoint,\n locale,\n blockletRender,\n onFilterChange,\n extraFilter\n } = _ref;\n\n const storeApi = _axios.default.create({\n baseURL: endpoint\n });\n\n const finalFilters = (0, _react.useMemo)(() => {\n return _objectSpread({\n sortBy: 'popularity',\n sortDirection: 'desc'\n }, filters);\n }, [filters]);\n const selectedCategory = finalFilters.category;\n const paginateState = (0, _ahooks.useReactive)({\n currentPage: _constant.default.currentPage,\n pageSize: (0, _utils.isMobileScreen)() ? _constant.default.mobilePageSize : _constant.default.pageSize,\n defaultCurrentPage: _constant.default.defaultCurrentPage\n });\n const {\n data: blockletsState,\n error: fetchBlockletsError,\n loading: fetchBlockletsLoading,\n loadMore: _loadMore,\n loadingMore\n } = (0, _ahooks.useRequest)(async d => {\n var _d$list;\n\n const params = _objectSpread(_objectSpread({}, finalFilters), {}, {\n sortBy: _constant.default[finalFilters.sortBy],\n page: (0, _utils.getCurrentPage)((d === null || d === void 0 ? void 0 : (_d$list = d.list) === null || _d$list === void 0 ? void 0 : _d$list.length) || 0, paginateState.pageSize),\n pageSize: paginateState.pageSize\n });\n\n const {\n data = {}\n } = await storeApi.get(_constant.default.blockletsPath, {\n params\n });\n return data;\n }, {\n initialData: {\n list: [],\n total: 0\n },\n loadMore: true,\n isNoMore: d => d ? d.list.length >= d.total : false,\n formatResult: response => {\n return {\n list: response === null || response === void 0 ? void 0 : response.dataList,\n total: response.total\n };\n },\n refreshDeps: [endpoint, filters]\n });\n const {\n data: allCategories,\n error: fetchCategoriesError,\n loading: fetchCategoriesLoading\n } = (0, _ahooks.useRequest)(async () => {\n const {\n data\n } = await storeApi.get(_constant.default.categoriesPath);\n return data;\n }, {\n initialData: []\n });\n const categoryList = (0, _react.useMemo)(() => {\n const list = allCategories || []; // 分类按照名称排序\n\n return (0, _orderBy.default)(list, [i => i.name], ['asc']);\n }, [allCategories]);\n\n const translate = (key, data) => {\n if (!_locale.default[locale] || !_locale.default[locale][key]) {\n console.warn(\"Warning: no \".concat(key, \" translation of \").concat(locale));\n return key;\n }\n\n return (0, _utils.replaceTranslate)(_locale.default[locale][key], data);\n };\n\n const blockletList = (0, _react.useMemo)(() => {\n let blocklets = blockletsState.list || []; // 用户传入的过滤函数\n\n blocklets = extraFilter(blocklets);\n return blocklets;\n }, [blockletsState, extraFilter]);\n const categoryOptions = (0, _react.useMemo)(() => (0, _utils.getCategoryOptions)(categoryList, locale), [categoryList, locale]);\n const priceOptions = (0, _utils.getPrices)(translate);\n const filterStore = {\n errors: {\n fetchBlockletsError,\n fetchCategoriesError\n },\n loadings: {\n fetchBlockletsLoading,\n fetchCategoriesLoading,\n loadingMore\n },\n endpoint,\n blockletList,\n t: translate,\n filters: finalFilters,\n selectedCategory,\n categoryList,\n blockletRender,\n locale,\n categoryOptions,\n priceOptions,\n storeApi,\n hasNextPage: blockletsState.list.length < blockletsState.total,\n handleSort: sort => {\n const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {\n sortBy: sort,\n sortDirection: sort === 'nameAsc' ? 'asc' : 'desc'\n });\n\n onFilterChange(changeData);\n },\n handleKeyword: keyWord => {\n const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {\n keyword: keyWord || undefined\n });\n\n onFilterChange(changeData);\n },\n handlePrice: price => {\n const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {\n price: price === finalFilters.price ? undefined : price\n });\n\n onFilterChange(changeData);\n },\n handleCategory: category => {\n let finalCategory = category;\n\n if (category === 'all' || category === finalFilters.category) {\n finalCategory = undefined;\n }\n\n const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {\n category: finalCategory\n });\n\n onFilterChange(changeData);\n },\n handleDeveloper: owner => {\n const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {\n owner: owner || undefined\n });\n\n onFilterChange(changeData);\n },\n handlePage: page => {\n const changeData = _objectSpread(_objectSpread({}, finalFilters), {}, {\n currentPage: page\n });\n\n onFilterChange(changeData);\n },\n loadMore: () => {\n setTimeout(() => {\n _loadMore();\n }, 1000);\n },\n getCategoryLocale: category => {\n if (!category) return null;\n let result = null;\n const find = allCategories.find(item => item._id === category);\n\n if (find) {\n result = find.locales[locale];\n }\n\n return result;\n },\n\n get developerName() {\n var _blocklets$find, _blocklets$find$owner;\n\n const blocklets = blockletList;\n return ((_blocklets$find = blocklets.find(blocklet => {\n var _blocklet$owner;\n\n return (blocklet === null || blocklet === void 0 ? void 0 : (_blocklet$owner = blocklet.owner) === null || _blocklet$owner === void 0 ? void 0 : _blocklet$owner.did) === finalFilters.owner;\n })) === null || _blocklets$find === void 0 ? void 0 : (_blocklets$find$owner = _blocklets$find.owner) === null || _blocklets$find$owner === void 0 ? void 0 : _blocklets$find$owner.name) || '';\n }\n\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(Provider, {\n value: filterStore,\n children: children\n });\n}\n\nFilterProvider.propTypes = _objectSpread(_objectSpread({}, _propTypes2.propTypes), {}, {\n children: _propTypes.default.any.isRequired\n});\nFilterProvider.defaultProps = _propTypes2.defaultProps;\n\nfunction useFilterContext() {\n const filterStore = (0, _react.useContext)(Filter);\n\n if (!filterStore) {\n return {};\n }\n\n return filterStore;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = BlockletList;\n\nvar _react = require(\"@emotion/react\");\n\nvar _styles = require(\"@mui/material/styles\");\n\nvar _base = _interopRequireDefault(require(\"./base\"));\n\nvar _filter = require(\"./contexts/filter\");\n\nvar _propTypes = require(\"./libs/prop-types\");\n\nvar _utils = require(\"./libs/utils\");\n\nrequire(\"@algolia/autocomplete-theme-classic/dist/theme.css\");\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _templateObject;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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 _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction BlockletList(props) {\n const muiTheme = (0, _styles.useTheme)();\n const primaryColor = (0, _utils.toColorRgb)(muiTheme.palette.primary.main);\n const globalStyles = {\n autocomplete: theme => (0, _react.css)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n :root {\\n --aa-detached-media-query: (max-width: \", \"px) !important;\\n --aa-detached-modal-media-query: (min-width: \", \"px) !important;\\n --aa-detached-modal-max-width: \", \"px !important;\\n --aa-selected-color-rgb: \", \", \", \", \", \" !important;\\n --aa-primary-color-rgb: \", \", \", \", \", \" !important;\\n --aa-input-background-color-rgb: 250, 250, 250 !important;\\n }\\n .bl-autocomplete-panel {\\n z-index: \", \" !important;\\n }\\n .bl-autocomplete-label {\\n .aa-SubmitIcon {\\n color: \", \" !important;\\n }\\n }\\n .bl-autocomplete-form {\\n border: none !important;\\n &:focus-within {\\n box-shadow: none !important;\\n }\\n }\\n .aa-DetachedSearchButton {\\n border: none !important;\\n &:focus-within {\\n box-shadow: none !important;\\n }\\n .aa-SubmitIcon {\\n color: \", \" !important;\\n }\\n }\\n \"])), theme.breakpoints.values.md, theme.breakpoints.values.md, theme.breakpoints.values.md, primaryColor.r, primaryColor.g, primaryColor.b, primaryColor.r, primaryColor.g, primaryColor.b, theme.zIndex.modal + 1, theme.palette.grey[500], theme.palette.grey[500])\n };\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_filter.FilterProvider, _objectSpread(_objectSpread({}, props), {}, {\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Global, {\n styles: globalStyles.autocomplete\n }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_base.default, {})]\n }));\n}\n\nBlockletList.propTypes = _propTypes.propTypes;\nBlockletList.defaultProps = _propTypes.defaultProps;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nconst constant = {\n nameAsc: 'title',\n nameDesc: 'title',\n popularity: 'stats.downloads',\n publishAt: 'lastPublishedAt',\n mobilePageSize: 10,\n pageSize: 18,\n defaultCurrentPage: 1,\n blockletsPath: '/api/v2/blocklets.json',\n categoriesPath: '/api/blocklets/categories',\n cacheSize: 100\n};\nvar _default = constant;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.propTypes = exports.defaultProps = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst propTypes = {\n filters: _propTypes.default.shape({\n keyword: _propTypes.default.string,\n sortBy: _propTypes.default.string,\n sortDirection: _propTypes.default.string,\n price: _propTypes.default.string,\n category: _propTypes.default.string,\n developer: _propTypes.default.string\n }),\n extraFilter: _propTypes.default.func,\n endpoint: _propTypes.default.string.isRequired,\n blockletRender: _propTypes.default.func.isRequired,\n onFilterChange: _propTypes.default.func,\n locale: _propTypes.default.oneOf(['zh', 'en'])\n};\nexports.propTypes = propTypes;\nconst defaultProps = {\n locale: 'zh',\n filters: {},\n onFilterChange: () => {},\n extraFilter: list => list\n};\nexports.defaultProps = defaultProps;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.urlStringify = exports.toColorRgb = exports.replaceTranslate = exports.removeUndefined = exports.isMobileScreen = exports.getStoreDetail = exports.getSortOptions = exports.getPrices = exports.getCurrentPage = exports.getCategoryOptions = exports.formatLogoPath = exports.formatError = exports.filterBlockletByPrice = exports.debounced = void 0;\n\nvar _urlJoin = _interopRequireDefault(require(\"url-join\"));\n\nvar _cloneDeep = _interopRequireDefault(require(\"lodash/cloneDeep\"));\n\nvar _color = _interopRequireDefault(require(\"color\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst isFreeBlocklet = blocklet => {\n if (!blocklet.payment) {\n return true;\n }\n\n const priceList = (blocklet.payment.price || []).map(x => x.value || 0);\n return priceList.every(x => x === 0);\n};\n\nconst getSortOptions = t => {\n return [{\n name: t('sort.popularity'),\n value: 'popularity'\n }, {\n name: t('sort.lastPublished'),\n value: 'publishAt'\n }, {\n name: t('sort.nameAscend'),\n value: 'nameAsc'\n }, {\n name: t('sort.nameDescend'),\n value: 'nameDesc'\n }];\n};\n\nexports.getSortOptions = getSortOptions;\n\nconst getPrices = t => {\n return [{\n name: t('blocklet.free'),\n value: 'free'\n }, {\n name: t('blocklet.payment'),\n value: 'payment'\n }];\n};\n\nexports.getPrices = getPrices;\n\nconst getCategoryOptions = function getCategoryOptions() {\n let list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en';\n return list.map(item => ({\n name: item.locales[locale],\n value: item._id\n }));\n};\n/**\n * 根据 是否付费 过滤 blocklet list\n * @param {*} list\n * @param {*} price\n * @returns\n */\n\n\nexports.getCategoryOptions = getCategoryOptions;\n\nconst filterBlockletByPrice = function filterBlockletByPrice() {\n let list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let price = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n let result = list;\n if (!price) return result;\n\n if (price === 'free') {\n result = list.filter(blocklet => isFreeBlocklet(blocklet));\n } else {\n result = list.filter(blocklet => !isFreeBlocklet(blocklet));\n }\n\n return result;\n};\n\nexports.filterBlockletByPrice = filterBlockletByPrice;\n\nconst formatError = error => {\n if (Array.isArray(error.errors)) {\n return error.errors.map(x => x.message).join('\\n');\n }\n\n return error.message;\n};\n\nexports.formatError = formatError;\n\nconst getStoreDetail = (storeUrl, blocklet) => {\n return (0, _urlJoin.default)(storeUrl, \"/blocklets/\".concat(blocklet.did));\n};\n\nexports.getStoreDetail = getStoreDetail;\n\nconst formatLogoPath = function formatLogoPath(did, asset) {\n let target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'assets';\n\n if (asset.startsWith(target)) {\n return asset;\n }\n\n return \"\".concat(target, \"/\").concat(did, \"/\").concat(asset);\n};\n\nexports.formatLogoPath = formatLogoPath;\n\nconst replaceTranslate = (template, data) => // eslint-disable-next-line no-prototype-builtins\ntemplate.replace(/{(\\w*)}/g, (m, key) => data.hasOwnProperty(key) ? data[key] : '');\n\nexports.replaceTranslate = replaceTranslate;\n\nconst removeUndefined = obj => {\n const clone = (0, _cloneDeep.default)(obj);\n Object.keys(clone).forEach(key => {\n if (clone[key] === undefined) {\n delete clone[key];\n }\n });\n return clone;\n};\n\nexports.removeUndefined = removeUndefined;\n\nconst urlStringify = obj => {\n if (!obj) {\n throw new Error('obj is required in urlStringify ');\n }\n\n return new URLSearchParams(removeUndefined(obj)).toString();\n};\n\nexports.urlStringify = urlStringify;\n\nconst isMobileScreen = () => {\n return window.innerWidth <= 600;\n};\n\nexports.isMobileScreen = isMobileScreen;\n\nconst getCurrentPage = (length, pageSize) => {\n const page = (length + pageSize) / pageSize;\n if (page > 1) return page.toFixed();\n return 1;\n};\n\nexports.getCurrentPage = getCurrentPage;\n\nconst toColorRgb = colorStr => {\n const color = (0, _color.default)(colorStr);\n return color.rgb().object();\n};\n\nexports.toColorRgb = toColorRgb;\n\nfunction debouncePromise(fn, time) {\n let timerId;\n return function debounced() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (timerId) {\n clearTimeout(timerId);\n }\n\n return new Promise(resolve => {\n timerId = setTimeout(() => resolve(fn(...args)), time);\n });\n };\n}\n\nconst debounced = debouncePromise(items => Promise.resolve(items), 300);\nexports.debounced = debounced;","export function isDocumentVisible() {\n if (typeof document !== 'undefined' && typeof document.visibilityState !== 'undefined') {\n return document.visibilityState !== 'hidden';\n }\n\n return true;\n}\nexport function isOnline() {\n if (typeof navigator.onLine !== 'undefined') {\n return navigator.onLine;\n }\n\n return true;\n}","var cache = new Map();\n\nvar setCache = function setCache(key, cacheTime, data) {\n var currentCache = cache.get(key);\n\n if (currentCache === null || currentCache === void 0 ? void 0 : currentCache.timer) {\n clearTimeout(currentCache.timer);\n }\n\n var timer = undefined;\n\n if (cacheTime > -1) {\n // 数据在不活跃 cacheTime 后,删除掉\n timer = setTimeout(function () {\n cache[\"delete\"](key);\n }, cacheTime);\n }\n\n cache.set(key, {\n data: data,\n timer: timer,\n startTime: new Date().getTime()\n });\n};\n\nvar getCache = function getCache(key) {\n var currentCache = cache.get(key);\n return {\n data: currentCache === null || currentCache === void 0 ? void 0 : currentCache.data,\n startTime: currentCache === null || currentCache === void 0 ? void 0 : currentCache.startTime\n };\n};\n\nexport { getCache, setCache };","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nexport default function limit(fn, timespan) {\n var pending = false;\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (pending) return;\n pending = true;\n fn.apply(void 0, __spread(args));\n setTimeout(function () {\n pending = false;\n }, timespan);\n };\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useCallback, useRef } from 'react';\n\nfunction usePersistFn(fn) {\n var ref = useRef(function () {\n throw new Error('Cannot call an event handler while rendering.');\n });\n ref.current = fn;\n var persist = useCallback(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var refFn = ref.current;\n\n if (refFn) {\n return refFn.apply(void 0, __spread(args));\n }\n }, [ref]);\n\n if (typeof fn === 'function') {\n return persist;\n }\n\n return undefined;\n}\n\nexport default usePersistFn;","import { useEffect, useRef } from 'react';\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isMounted = useRef(false);\n useEffect(function () {\n return function () {\n isMounted.current = false;\n };\n }, []);\n useEffect(function () {\n if (!isMounted.current) {\n isMounted.current = true;\n } else {\n return effect();\n }\n }, deps);\n};\n\nexport default useUpdateEffect;","// from swr\nimport { isDocumentVisible, isOnline } from './utils';\nvar listeners = [];\n\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\n\nvar eventsBinded = false;\n\nif (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {\n var revalidate = function revalidate() {\n if (!isDocumentVisible() || !isOnline()) return;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n\n window.addEventListener('visibilitychange', revalidate, false);\n window.addEventListener('focus', revalidate, false); // only bind the events once\n\n eventsBinded = true;\n}\n\nexport default subscribe;","// from swr\nimport { isDocumentVisible } from './utils';\nvar listeners = [];\n\nfunction subscribe(listener) {\n listeners.push(listener);\n return function unsubscribe() {\n var index = listeners.indexOf(listener);\n listeners.splice(index, 1);\n };\n}\n\nvar eventsBinded = false;\n\nif (typeof window !== 'undefined' && window.addEventListener && !eventsBinded) {\n var revalidate = function revalidate() {\n if (!isDocumentVisible()) return;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n };\n\n window.addEventListener('visibilitychange', revalidate, false); // only bind the events once\n\n eventsBinded = true;\n}\n\nexport default subscribe;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport debounce from 'lodash.debounce';\nimport throttle from 'lodash.throttle';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { isDocumentVisible } from './utils';\nimport { getCache, setCache } from './utils/cache';\nimport limit from './utils/limit';\nimport usePersistFn from './utils/usePersistFn';\nimport useUpdateEffect from './utils/useUpdateEffect';\nimport subscribeFocus from './utils/windowFocus';\nimport subscribeVisible from './utils/windowVisible';\nvar DEFAULT_KEY = 'AHOOKS_USE_REQUEST_DEFAULT_KEY';\n\nvar Fetch =\n/** @class */\nfunction () {\n function Fetch(service, config, subscribe, initState) {\n // 请求时序\n this.count = 0; // visible 后,是否继续轮询\n\n this.pollingWhenVisibleFlag = false;\n this.pollingTimer = undefined;\n this.loadingDelayTimer = undefined;\n this.unsubscribe = [];\n this.that = this;\n this.state = {\n loading: false,\n params: [],\n data: undefined,\n error: undefined,\n run: this.run.bind(this.that),\n mutate: this.mutate.bind(this.that),\n refresh: this.refresh.bind(this.that),\n cancel: this.cancel.bind(this.that),\n unmount: this.unmount.bind(this.that)\n };\n this.service = service;\n this.config = config;\n this.subscribe = subscribe;\n\n if (initState) {\n this.state = __assign(__assign({}, this.state), initState);\n }\n\n this.debounceRun = this.config.debounceInterval ? debounce(this._run, this.config.debounceInterval) : undefined;\n this.throttleRun = this.config.throttleInterval ? throttle(this._run, this.config.throttleInterval) : undefined;\n this.limitRefresh = limit(this.refresh.bind(this), this.config.focusTimespan);\n\n if (this.config.pollingInterval) {\n this.unsubscribe.push(subscribeVisible(this.rePolling.bind(this)));\n }\n\n if (this.config.refreshOnWindowFocus) {\n this.unsubscribe.push(subscribeFocus(this.limitRefresh.bind(this)));\n }\n }\n\n Fetch.prototype.setState = function (s) {\n if (s === void 0) {\n s = {};\n }\n\n this.state = __assign(__assign({}, this.state), s);\n this.subscribe(this.state);\n };\n\n Fetch.prototype._run = function () {\n var _this = this;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // 取消已有定时器\n\n\n if (this.pollingTimer) {\n clearTimeout(this.pollingTimer);\n } // 取消 loadingDelayTimer\n\n\n if (this.loadingDelayTimer) {\n clearTimeout(this.loadingDelayTimer);\n }\n\n this.count += 1; // 闭包存储当次请求的 count\n\n var currentCount = this.count;\n this.setState({\n loading: !this.config.loadingDelay,\n params: args\n });\n\n if (this.config.loadingDelay) {\n this.loadingDelayTimer = setTimeout(function () {\n _this.setState({\n loading: true\n });\n }, this.config.loadingDelay);\n }\n\n return this.service.apply(this, __spread(args)).then(function (res) {\n if (currentCount !== _this.count) {\n // prevent run.then when request is canceled\n return new Promise(function () {});\n }\n\n if (_this.loadingDelayTimer) {\n clearTimeout(_this.loadingDelayTimer);\n }\n\n var formattedResult = _this.config.formatResult ? _this.config.formatResult(res) : res;\n\n _this.setState({\n data: formattedResult,\n error: undefined,\n loading: false\n });\n\n if (_this.config.onSuccess) {\n _this.config.onSuccess(formattedResult, args);\n }\n\n return formattedResult;\n })[\"catch\"](function (error) {\n if (currentCount !== _this.count) {\n // prevent run.then when request is canceled\n return new Promise(function () {});\n }\n\n if (_this.loadingDelayTimer) {\n clearTimeout(_this.loadingDelayTimer);\n }\n\n _this.setState({\n data: undefined,\n error: error,\n loading: false\n });\n\n if (_this.config.onError) {\n _this.config.onError(error, args);\n } // If throwOnError, user should catch the error self,\n // or the page will crash\n\n\n if (_this.config.throwOnError) {\n throw error;\n }\n\n console.error(error); // eslint-disable-next-line prefer-promise-reject-errors\n\n return Promise.reject('useRequest has caught the exception, if you need to handle the exception yourself, you can set options.throwOnError to true.');\n })[\"finally\"](function () {\n if (currentCount === _this.count) {\n if (_this.config.pollingInterval) {\n // 如果屏幕隐藏,并且 !pollingWhenHidden, 则停止轮询,并记录 flag,等 visible 时,继续轮询\n if (!isDocumentVisible() && !_this.config.pollingWhenHidden) {\n _this.pollingWhenVisibleFlag = true;\n return;\n }\n\n _this.pollingTimer = setTimeout(function () {\n _this._run.apply(_this, __spread(args));\n }, _this.config.pollingInterval);\n }\n }\n });\n };\n\n Fetch.prototype.run = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (this.debounceRun) {\n this.debounceRun.apply(this, __spread(args)); // TODO 如果 options 存在 debounceInterval,或 throttleInterval,则 run 和 refresh 不会返回 Promise。 带类型需要修复后,此处变成 return;。\n\n return Promise.resolve(null);\n }\n\n if (this.throttleRun) {\n this.throttleRun.apply(this, __spread(args));\n return Promise.resolve(null);\n }\n\n return this._run.apply(this, __spread(args));\n };\n\n Fetch.prototype.cancel = function () {\n if (this.debounceRun) {\n this.debounceRun.cancel();\n }\n\n if (this.throttleRun) {\n this.throttleRun.cancel();\n }\n\n if (this.loadingDelayTimer) {\n clearTimeout(this.loadingDelayTimer);\n }\n\n if (this.pollingTimer) {\n clearTimeout(this.pollingTimer);\n }\n\n this.pollingWhenVisibleFlag = false;\n this.count += 1;\n this.setState({\n loading: false\n });\n };\n\n Fetch.prototype.refresh = function () {\n return this.run.apply(this, __spread(this.state.params));\n };\n\n Fetch.prototype.rePolling = function () {\n if (this.pollingWhenVisibleFlag) {\n this.pollingWhenVisibleFlag = false;\n this.refresh();\n }\n };\n\n Fetch.prototype.mutate = function (data) {\n if (typeof data === 'function') {\n this.setState({\n // eslint-disable-next-line react/no-access-state-in-setstate\n data: data(this.state.data) || {}\n });\n } else {\n this.setState({\n data: data\n });\n }\n };\n\n Fetch.prototype.unmount = function () {\n this.cancel();\n this.unsubscribe.forEach(function (s) {\n s();\n });\n };\n\n return Fetch;\n}();\n\nfunction useAsync(service, options) {\n var _options = options || {};\n\n var _a = _options.refreshDeps,\n refreshDeps = _a === void 0 ? [] : _a,\n _b = _options.manual,\n manual = _b === void 0 ? false : _b,\n _c = _options.onSuccess,\n onSuccess = _c === void 0 ? function () {} : _c,\n _d = _options.onError,\n onError = _d === void 0 ? function () {} : _d,\n _e = _options.defaultLoading,\n defaultLoading = _e === void 0 ? false : _e,\n loadingDelay = _options.loadingDelay,\n _f = _options.pollingInterval,\n pollingInterval = _f === void 0 ? 0 : _f,\n _g = _options.pollingWhenHidden,\n pollingWhenHidden = _g === void 0 ? true : _g,\n _h = _options.defaultParams,\n defaultParams = _h === void 0 ? [] : _h,\n _j = _options.refreshOnWindowFocus,\n refreshOnWindowFocus = _j === void 0 ? false : _j,\n _k = _options.focusTimespan,\n focusTimespan = _k === void 0 ? 5000 : _k,\n fetchKey = _options.fetchKey,\n cacheKey = _options.cacheKey,\n _l = _options.cacheTime,\n cacheTime = _l === void 0 ? 5 * 60 * 1000 : _l,\n _m = _options.staleTime,\n staleTime = _m === void 0 ? 0 : _m,\n debounceInterval = _options.debounceInterval,\n throttleInterval = _options.throttleInterval,\n initialData = _options.initialData,\n _o = _options.ready,\n ready = _o === void 0 ? true : _o,\n _p = _options.throwOnError,\n throwOnError = _p === void 0 ? false : _p;\n var newstFetchKey = useRef(DEFAULT_KEY); // 持久化一些函数\n\n var servicePersist = usePersistFn(service);\n var onSuccessPersist = usePersistFn(onSuccess);\n var onErrorPersist = usePersistFn(onError);\n var fetchKeyPersist = usePersistFn(fetchKey);\n var formatResult;\n\n if ('formatResult' in _options) {\n // eslint-disable-next-line prefer-destructuring\n formatResult = _options.formatResult;\n }\n\n var formatResultPersist = usePersistFn(formatResult);\n var config = {\n formatResult: formatResultPersist,\n onSuccess: onSuccessPersist,\n onError: onErrorPersist,\n loadingDelay: loadingDelay,\n pollingInterval: pollingInterval,\n pollingWhenHidden: pollingWhenHidden,\n // refreshOnWindowFocus should not work on manual mode\n refreshOnWindowFocus: !manual && refreshOnWindowFocus,\n focusTimespan: focusTimespan,\n debounceInterval: debounceInterval,\n throttleInterval: throttleInterval,\n throwOnError: throwOnError\n };\n var subscribe = usePersistFn(function (key, data) {\n setFetches(function (s) {\n // eslint-disable-next-line no-param-reassign\n s[key] = data;\n return __assign({}, s);\n });\n });\n\n var _q = __read(useState(function () {\n var _a; // 如果有 缓存,则从缓存中读数据\n\n\n if (cacheKey) {\n var cacheData_1 = (_a = getCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;\n\n if (cacheData_1) {\n newstFetchKey.current = cacheData_1.newstFetchKey;\n /* 使用 initState, 重新 new Fetch */\n\n var newFetches_1 = {};\n Object.keys(cacheData_1.fetches).forEach(function (key) {\n var cacheFetch = cacheData_1.fetches[key];\n var newFetch = new Fetch(servicePersist, config, subscribe.bind(null, key), {\n loading: cacheFetch.loading,\n params: cacheFetch.params,\n data: cacheFetch.data,\n error: cacheFetch.error\n });\n newFetches_1[key] = newFetch.state;\n });\n return newFetches_1;\n }\n }\n\n return {};\n }), 2),\n fetches = _q[0],\n setFetches = _q[1];\n\n var fetchesRef = useRef(fetches);\n fetchesRef.current = fetches;\n var readyMemoryParams = useRef();\n var run = useCallback(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!ready) {\n // 没有 ready, 记录请求参数,等 ready 后,发起请求用\n readyMemoryParams.current = args;\n return;\n }\n\n if (fetchKeyPersist) {\n var key = fetchKeyPersist.apply(void 0, __spread(args));\n newstFetchKey.current = key === undefined ? DEFAULT_KEY : key;\n }\n\n var currentFetchKey = newstFetchKey.current; // 这里必须用 fetchsRef,而不能用 fetches。\n // 否则在 reset 完,立即 run 的时候,这里拿到的 fetches 是旧的。\n\n var currentFetch = fetchesRef.current[currentFetchKey];\n\n if (!currentFetch) {\n var newFetch = new Fetch(servicePersist, config, subscribe.bind(null, currentFetchKey), {\n data: initialData\n });\n currentFetch = newFetch.state;\n setFetches(function (s) {\n // eslint-disable-next-line no-param-reassign\n s[currentFetchKey] = currentFetch;\n return __assign({}, s);\n });\n }\n\n return currentFetch.run.apply(currentFetch, __spread(args));\n }, [fetchKey, subscribe, ready]);\n var runRef = useRef(run);\n runRef.current = run; // cache\n\n useUpdateEffect(function () {\n if (cacheKey) {\n setCache(cacheKey, cacheTime, {\n fetches: fetches,\n newstFetchKey: newstFetchKey.current\n });\n }\n }, [cacheKey, fetches]); // for ready\n\n var hasTriggeredByReady = useRef(false);\n useUpdateEffect(function () {\n if (ready) {\n if (!hasTriggeredByReady.current && readyMemoryParams.current) {\n runRef.current.apply(runRef, __spread(readyMemoryParams.current));\n }\n\n hasTriggeredByReady.current = true;\n }\n }, [ready]); // 第一次默认执行\n\n useEffect(function () {\n var _a;\n\n if (!manual) {\n // 如果有缓存,则重新请求\n if (Object.keys(fetches).length > 0) {\n // 如果 staleTime 是 -1,则 cache 永不过期\n // 如果 statleTime 超期了,则重新请求\n var cacheStartTime = cacheKey && ((_a = getCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.startTime) || 0;\n\n if (!(staleTime === -1 || new Date().getTime() - cacheStartTime <= staleTime)) {\n /* 重新执行所有的 cache */\n Object.values(fetches).forEach(function (f) {\n f.refresh();\n });\n }\n } else {\n // 第一次默认执行,可以通过 defaultParams 设置参数\n runRef.current.apply(runRef, __spread(defaultParams));\n }\n }\n }, []); // 重置 fetches\n\n var reset = useCallback(function () {\n Object.values(fetchesRef.current).forEach(function (f) {\n f.unmount();\n });\n newstFetchKey.current = DEFAULT_KEY;\n setFetches({}); // 不写会有问题。如果不写,此时立即 run,会是老的数据\n\n fetchesRef.current = {};\n }, [setFetches]); // refreshDeps 变化,重新执行所有请求\n\n useUpdateEffect(function () {\n if (!manual) {\n /* 全部重新执行 */\n Object.values(fetchesRef.current).forEach(function (f) {\n f.refresh();\n });\n }\n }, __spread(refreshDeps)); // 卸载组件触发\n\n useEffect(function () {\n return function () {\n Object.values(fetchesRef.current).forEach(function (f) {\n f.unmount();\n });\n };\n }, []);\n var notExecutedWarning = useCallback(function (name) {\n return function () {\n console.warn(\"You should't call \" + name + \" when service not executed once.\");\n };\n }, []);\n return __assign(__assign({\n loading: ready && !manual || defaultLoading,\n data: initialData,\n error: undefined,\n params: [],\n cancel: notExecutedWarning('cancel'),\n refresh: notExecutedWarning('refresh'),\n mutate: notExecutedWarning('mutate')\n }, fetches[newstFetchKey.current] || {}), {\n run: run,\n fetches: fetches,\n reset: reset\n });\n}\n\nexport default useAsync;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useRef, useCallback, useMemo, useEffect, useState } from 'react';\nimport useAsync from './useAsync';\nimport useUpdateEffect from './utils/useUpdateEffect';\n\nfunction useLoadMore(service, options) {\n var _a = options.refreshDeps,\n refreshDeps = _a === void 0 ? [] : _a,\n ref = options.ref,\n isNoMore = options.isNoMore,\n _b = options.threshold,\n threshold = _b === void 0 ? 100 : _b,\n fetchKey = options.fetchKey,\n restOptions = __rest(options, [\"refreshDeps\", \"ref\", \"isNoMore\", \"threshold\", \"fetchKey\"]);\n\n var _c = __read(useState(false), 2),\n loadingMore = _c[0],\n setLoadingMore = _c[1];\n\n useEffect(function () {\n if (options.fetchKey) {\n console.warn(\"useRequest loadMore mode don't need fetchKey!\");\n }\n }, []);\n var result = useAsync(service, __assign(__assign({}, restOptions), {\n fetchKey: function fetchKey(d) {\n var _a;\n\n return ((_a = d === null || d === void 0 ? void 0 : d.list) === null || _a === void 0 ? void 0 : _a.length) || 0;\n },\n onSuccess: function onSuccess() {\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\n setLoadingMore(false);\n\n if (options.onSuccess) {\n options.onSuccess.apply(options, __spread(params));\n }\n }\n }));\n var data = result.data,\n run = result.run,\n params = result.params,\n reset = result.reset,\n loading = result.loading,\n fetches = result.fetches;\n var reload = useCallback(function () {\n reset();\n\n var _a = __read(params),\n restParams = _a.slice(1);\n\n run.apply(void 0, __spread([undefined], restParams));\n }, [run, reset, params]);\n var reloadRef = useRef(reload);\n reloadRef.current = reload;\n /* loadMore 场景下,如果 refreshDeps 变化,重置到第一页 */\n\n useUpdateEffect(function () {\n /* 只有自动执行的场景, refreshDeps 才有效 */\n if (!options.manual) {\n reloadRef.current();\n }\n }, __spread(refreshDeps));\n var dataGroup = useMemo(function () {\n var listGroup = []; // 在 loadMore 时,不希望清空上一次的 data。需要把最后一个 非 loading 的请求 data,放回去。\n\n var lastNoLoadingData = data;\n Object.values(fetches).forEach(function (h) {\n var _a, _b;\n\n if ((_a = h.data) === null || _a === void 0 ? void 0 : _a.list) {\n listGroup = listGroup.concat((_b = h.data) === null || _b === void 0 ? void 0 : _b.list);\n }\n\n if (!h.loading) {\n lastNoLoadingData = h.data;\n }\n });\n return __assign(__assign({}, lastNoLoadingData), {\n list: listGroup\n });\n }, [fetches, data]);\n var noMore = isNoMore ? !loading && !loadingMore && isNoMore(dataGroup) : false;\n var loadMore = useCallback(function () {\n if (noMore) {\n return;\n }\n\n setLoadingMore(true);\n\n var _a = __read(params),\n restParams = _a.slice(1);\n\n run.apply(void 0, __spread([dataGroup], restParams));\n }, [noMore, run, dataGroup, params]);\n /* 上拉加载的方法 */\n\n var scrollMethod = function scrollMethod() {\n if (loading || loadingMore || !ref || !ref.current) {\n return;\n }\n\n if (ref.current.scrollHeight - ref.current.scrollTop <= ref.current.clientHeight + threshold) {\n loadMore();\n }\n }; // 如果不用 ref,而用之前的 useCallbak,在某些情况下会出问题,造成拿到的 loading 不是最新的。\n // fix https://github.com/alibaba/hooks/issues/630\n\n\n var scrollMethodRef = useRef(scrollMethod);\n scrollMethodRef.current = scrollMethod;\n /* 如果有 ref,则会上拉加载更多 */\n\n useEffect(function () {\n if (!ref || !ref.current) {\n return function () {};\n }\n\n var scrollTrigger = function scrollTrigger() {\n return scrollMethodRef.current();\n };\n\n ref.current.addEventListener('scroll', scrollTrigger);\n return function () {\n if (ref && ref.current) {\n ref.current.removeEventListener('scroll', scrollTrigger);\n }\n };\n }, [scrollMethodRef]);\n return __assign(__assign({}, result), {\n data: dataGroup,\n reload: reload,\n loading: loading && dataGroup.list.length === 0,\n loadMore: loadMore,\n loadingMore: loadingMore,\n noMore: noMore\n });\n}\n\nexport default useLoadMore;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport useAsync from './useAsync';\nimport useUpdateEffect from './utils/useUpdateEffect';\n\nfunction usePaginated(service, options) {\n var paginated = options.paginated,\n _a = options.defaultPageSize,\n defaultPageSize = _a === void 0 ? 10 : _a,\n _b = options.refreshDeps,\n refreshDeps = _b === void 0 ? [] : _b,\n fetchKey = options.fetchKey,\n restOptions = __rest(options, [\"paginated\", \"defaultPageSize\", \"refreshDeps\", \"fetchKey\"]);\n\n useEffect(function () {\n if (fetchKey) {\n console.error(\"useRequest pagination's fetchKey will not work!\");\n }\n }, []);\n\n var _c = useAsync(service, __assign({\n defaultParams: [{\n current: 1,\n pageSize: defaultPageSize\n }]\n }, restOptions)),\n data = _c.data,\n params = _c.params,\n run = _c.run,\n loading = _c.loading,\n rest = __rest(_c, [\"data\", \"params\", \"run\", \"loading\"]);\n\n var _d = params && params[0] ? params[0] : {},\n _e = _d.current,\n current = _e === void 0 ? 1 : _e,\n _f = _d.pageSize,\n pageSize = _f === void 0 ? defaultPageSize : _f,\n _g = _d.sorter,\n sorter = _g === void 0 ? {} : _g,\n _h = _d.filters,\n filters = _h === void 0 ? {} : _h; // 只改变 pagination,其他参数原样传递\n\n\n var runChangePagination = useCallback(function (paginationParams) {\n var _a = __read(params),\n oldPaginationParams = _a[0],\n restParams = _a.slice(1);\n\n run.apply(void 0, __spread([__assign(__assign({}, oldPaginationParams), paginationParams)], restParams));\n }, [run, params]);\n var total = (data === null || data === void 0 ? void 0 : data.total) || 0;\n var totalPage = useMemo(function () {\n return Math.ceil(total / pageSize);\n }, [pageSize, total]);\n var onChange = useCallback(function (c, p) {\n var toCurrent = c <= 0 ? 1 : c;\n var toPageSize = p <= 0 ? 1 : p;\n var tempTotalPage = Math.ceil(total / toPageSize);\n\n if (toCurrent > tempTotalPage) {\n toCurrent = Math.max(1, tempTotalPage);\n }\n\n runChangePagination({\n current: toCurrent,\n pageSize: toPageSize\n });\n }, [total, runChangePagination]);\n var changeCurrent = useCallback(function (c) {\n onChange(c, pageSize);\n }, [onChange, pageSize]);\n var changePageSize = useCallback(function (p) {\n onChange(current, p);\n }, [onChange, current]);\n var changeCurrentRef = useRef(changeCurrent);\n changeCurrentRef.current = changeCurrent;\n /* 分页场景下,如果 refreshDeps 变化,重置分页 */\n\n useUpdateEffect(function () {\n /* 只有自动执行的场景, refreshDeps 才有效 */\n if (!options.manual) {\n changeCurrentRef.current(1);\n }\n }, __spread(refreshDeps)); // 表格翻页 排序 筛选等\n\n var changeTable = useCallback(function (p, f, s) {\n runChangePagination({\n current: p.current,\n pageSize: p.pageSize || defaultPageSize,\n filters: f,\n sorter: s\n });\n }, [filters, sorter, runChangePagination]);\n return __assign({\n loading: loading,\n data: data,\n params: params,\n run: run,\n pagination: {\n current: current,\n pageSize: pageSize,\n total: total,\n totalPage: totalPage,\n onChange: onChange,\n changeCurrent: changeCurrent,\n changePageSize: changePageSize\n },\n tableProps: {\n dataSource: (data === null || data === void 0 ? void 0 : data.list) || [],\n loading: loading,\n onChange: changeTable,\n pagination: {\n current: current,\n pageSize: pageSize,\n total: total\n }\n },\n sorter: sorter,\n filters: filters\n }, rest);\n}\n\nexport default usePaginated;","import React from 'react';\nvar ConfigContext = /*#__PURE__*/React.createContext({});\nConfigContext.displayName = 'UseRequestConfigContext';\nexport default ConfigContext;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n/* eslint-disable react-hooks/rules-of-hooks */\n\n\nimport { useRef, useContext } from 'react';\nimport useAsync from './useAsync';\nimport useLoadMore from './useLoadMore';\nimport usePaginated from './usePaginated';\nimport ConfigContext from './configContext';\n\nfunction useRequest(service, options) {\n if (options === void 0) {\n options = {};\n }\n\n var contextConfig = useContext(ConfigContext);\n\n var finalOptions = __assign(__assign({}, contextConfig), options);\n\n var paginated = finalOptions.paginated,\n loadMore = finalOptions.loadMore,\n requestMethod = finalOptions.requestMethod;\n var paginatedRef = useRef(paginated);\n var loadMoreRef = useRef(loadMore);\n\n if (paginatedRef.current !== paginated) {\n throw Error('You should not modify the paginated of options');\n }\n\n if (loadMoreRef.current !== loadMore) {\n throw Error('You should not modify the loadMore of options');\n }\n\n paginatedRef.current = paginated;\n loadMoreRef.current = loadMore; // @ts-ignore\n\n var fetchProxy = function fetchProxy() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // @ts-ignore\n\n\n return fetch.apply(void 0, __spread(args)).then(function (res) {\n if (res.ok) {\n return res.json();\n }\n\n throw new Error(res.statusText);\n });\n };\n\n var finalRequestMethod = requestMethod || fetchProxy;\n var promiseService;\n\n switch (typeof service) {\n case 'string':\n promiseService = function promiseService() {\n return finalRequestMethod(service);\n };\n\n break;\n\n case 'object':\n var url_1 = service.url,\n rest_1 = __rest(service, [\"url\"]);\n\n promiseService = function promiseService() {\n return requestMethod ? requestMethod(service) : fetchProxy(url_1, rest_1);\n };\n\n break;\n\n default:\n promiseService = function promiseService() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new Promise(function (resolve, reject) {\n var s = service.apply(void 0, __spread(args));\n var fn = s;\n\n if (!s.then) {\n switch (typeof s) {\n case 'string':\n fn = finalRequestMethod(s);\n break;\n\n case 'object':\n var url_2 = s.url,\n rest_2 = __rest(s, [\"url\"]);\n\n fn = requestMethod ? requestMethod(s) : fetchProxy(url_2, rest_2);\n break;\n }\n }\n\n fn.then(resolve)[\"catch\"](reject);\n });\n };\n\n }\n\n if (loadMore) {\n return useLoadMore(promiseService, finalOptions);\n }\n\n if (paginated) {\n return usePaginated(promiseService, finalOptions);\n }\n\n return useAsync(promiseService, finalOptions);\n}\n\nvar UseRequestProvider = ConfigContext.Provider; // UseAPIProvider 已经废弃,此处为了兼容 umijs 插件 plugin-request\n\nvar UseAPIProvider = UseRequestProvider;\nexport { useAsync, usePaginated, useLoadMore, UseRequestProvider, UseAPIProvider };\nexport default useRequest;","import { useEffect, useRef } from 'react';\n\nvar useUpdateEffect = function useUpdateEffect(effect, deps) {\n var isMounted = useRef(false);\n useEffect(function () {\n if (!isMounted.current) {\n isMounted.current = true;\n } else {\n return effect();\n }\n }, deps);\n};\n\nexport default useUpdateEffect;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useCallback, useState } from 'react';\nimport useUpdateEffect from '../useUpdateEffect';\n\nfunction useControllableValue(props, options) {\n if (props === void 0) {\n props = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n var defaultValue = options.defaultValue,\n _a = options.defaultValuePropName,\n defaultValuePropName = _a === void 0 ? 'defaultValue' : _a,\n _b = options.valuePropName,\n valuePropName = _b === void 0 ? 'value' : _b,\n _c = options.trigger,\n trigger = _c === void 0 ? 'onChange' : _c;\n var value = props[valuePropName];\n\n var _d = __read(useState(function () {\n if (valuePropName in props) {\n return value;\n }\n\n if (defaultValuePropName in props) {\n return props[defaultValuePropName];\n }\n\n return defaultValue;\n }), 2),\n state = _d[0],\n setState = _d[1];\n /* init 的时候不用执行了 */\n\n\n useUpdateEffect(function () {\n if (valuePropName in props) {\n setState(value);\n }\n }, [value, valuePropName]);\n var handleSetState = useCallback(function (v) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (!(valuePropName in props)) {\n setState(v);\n }\n\n if (props[trigger]) {\n props[trigger].apply(props, __spread([v], args));\n }\n }, [props, valuePropName, trigger]);\n return [valuePropName in props ? value : state, handleSetState];\n}\n\nexport default useControllableValue;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useCallback, useRef, useState } from 'react';\nexport default (function (initialValue) {\n var counterRef = useRef(-1); // key 存储器\n\n var keyList = useRef([]); // 内部方法\n\n var setKey = useCallback(function (index) {\n counterRef.current += 1;\n keyList.current.splice(index, 0, counterRef.current);\n }, []);\n\n var _a = __read(useState(function () {\n (initialValue || []).forEach(function (_, index) {\n setKey(index);\n });\n return initialValue || [];\n }), 2),\n list = _a[0],\n setList = _a[1];\n\n var resetList = useCallback(function (newList) {\n if (newList === void 0) {\n newList = [];\n }\n\n keyList.current = [];\n setList(function () {\n (newList || []).forEach(function (_, index) {\n setKey(index);\n });\n return newList || [];\n });\n }, []);\n var insert = useCallback(function (index, obj) {\n setList(function (l) {\n var temp = __spread(l);\n\n temp.splice(index, 0, obj);\n setKey(index);\n return temp;\n });\n }, []);\n var getKey = useCallback(function (index) {\n return keyList.current[index];\n }, []);\n var getIndex = useCallback(function (key) {\n return keyList.current.findIndex(function (ele) {\n return ele === key;\n });\n }, []);\n var merge = useCallback(function (index, obj) {\n setList(function (l) {\n var temp = __spread(l);\n\n obj.forEach(function (_, i) {\n setKey(index + i);\n });\n temp.splice.apply(temp, __spread([index, 0], obj));\n return temp;\n });\n }, []);\n var replace = useCallback(function (index, obj) {\n setList(function (l) {\n var temp = __spread(l);\n\n temp[index] = obj;\n return temp;\n });\n }, []);\n var remove = useCallback(function (index) {\n setList(function (l) {\n var temp = __spread(l);\n\n temp.splice(index, 1); // remove keys if necessary\n\n try {\n keyList.current.splice(index, 1);\n } catch (e) {\n console.error(e);\n }\n\n return temp;\n });\n }, []);\n var move = useCallback(function (oldIndex, newIndex) {\n if (oldIndex === newIndex) {\n return;\n }\n\n setList(function (l) {\n var newList = __spread(l);\n\n var temp = newList.filter(function (_, index) {\n return index !== oldIndex;\n });\n temp.splice(newIndex, 0, newList[oldIndex]); // move keys if necessary\n\n try {\n var keyTemp = keyList.current.filter(function (_, index) {\n return index !== oldIndex;\n });\n keyTemp.splice(newIndex, 0, keyList.current[oldIndex]);\n keyList.current = keyTemp;\n } catch (e) {\n console.error(e);\n }\n\n return temp;\n });\n }, []);\n var push = useCallback(function (obj) {\n setList(function (l) {\n setKey(l.length);\n return l.concat([obj]);\n });\n }, []);\n var pop = useCallback(function () {\n // remove keys if necessary\n try {\n keyList.current = keyList.current.slice(0, keyList.current.length - 1);\n } catch (e) {\n console.error(e);\n }\n\n setList(function (l) {\n return l.slice(0, l.length - 1);\n });\n }, []);\n var unshift = useCallback(function (obj) {\n setList(function (l) {\n setKey(0);\n return [obj].concat(l);\n });\n }, []);\n var sortForm = useCallback(function (result) {\n return result.map(function (item, index) {\n return {\n key: index,\n item: item\n };\n }) // add index into obj\n .sort(function (a, b) {\n return getIndex(a.key) - getIndex(b.key);\n }) // sort based on the index of table\n .filter(function (item) {\n return !!item.item;\n }) // remove undefined(s)\n .map(function (item) {\n return item.item;\n });\n }, // retrive the data\n []);\n var shift = useCallback(function () {\n // remove keys if necessary\n try {\n keyList.current = keyList.current.slice(1, keyList.current.length);\n } catch (e) {\n console.error(e);\n }\n\n setList(function (l) {\n return l.slice(1, l.length);\n });\n }, []);\n return {\n list: list,\n insert: insert,\n merge: merge,\n replace: replace,\n remove: remove,\n getKey: getKey,\n getIndex: getIndex,\n move: move,\n push: push,\n pop: pop,\n unshift: unshift,\n shift: shift,\n sortForm: sortForm,\n resetList: resetList\n };\n});","var __values = this && this.__values || function (o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n\nimport { useRef, useEffect } from 'react';\n\nvar EventEmitter =\n/** @class */\nfunction () {\n function EventEmitter() {\n var _this = this;\n\n this.subscriptions = new Set();\n\n this.emit = function (val) {\n var e_1, _a;\n\n try {\n for (var _b = __values(_this.subscriptions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var subscription = _c.value;\n subscription(val);\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n };\n\n this.useSubscription = function (callback) {\n var callbackRef = useRef();\n callbackRef.current = callback;\n useEffect(function () {\n function subscription(val) {\n if (callbackRef.current) {\n callbackRef.current(val);\n }\n }\n\n _this.subscriptions.add(subscription);\n\n return function () {\n _this.subscriptions[\"delete\"](subscription);\n };\n }, []);\n };\n }\n\n return EventEmitter;\n}();\n\nexport { EventEmitter };\nexport default function useEventEmitter() {\n var ref = useRef();\n\n if (!ref.current) {\n ref.current = new EventEmitter();\n }\n\n return ref.current;\n}","export function getTargetElement(target, defaultElement) {\n if (!target) {\n return defaultElement;\n }\n\n var targetElement;\n\n if (typeof target === 'function') {\n targetElement = target();\n } else if ('current' in target) {\n targetElement = target.current;\n } else {\n targetElement = target;\n }\n\n return targetElement;\n}","import { useRef } from 'react';\n\nfunction usePersistFn(fn) {\n var fnRef = useRef(fn);\n fnRef.current = fn;\n var persistFn = useRef();\n\n if (!persistFn.current) {\n persistFn.current = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return fnRef.current.apply(this, args);\n };\n }\n\n return persistFn.current;\n}\n\nexport default usePersistFn;","export function isFunction(obj) {\n return typeof obj === 'function';\n}","import { useEffect } from 'react';\nimport usePersistFn from '../usePersistFn';\nimport { isFunction } from '../utils';\n\nvar useUnmount = function useUnmount(fn) {\n var fnPersist = usePersistFn(fn);\n useEffect(function () {\n return function () {\n if (isFunction(fnPersist)) {\n fnPersist();\n }\n };\n }, []);\n};\n\nexport default useUnmount;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useCallback, useRef, useState } from 'react';\nimport useUnmount from '../useUnmount';\n\nvar useRafState = function useRafState(initialState) {\n var frame = useRef(0);\n\n var _a = __read(useState(initialState), 2),\n state = _a[0],\n setState = _a[1];\n\n var setRafState = useCallback(function (value) {\n cancelAnimationFrame(frame.current);\n frame.current = requestAnimationFrame(function () {\n setState(value);\n });\n }, []);\n useUnmount(function () {\n cancelAnimationFrame(frame.current);\n });\n return [state, setRafState];\n};\n\nexport default useRafState;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useLayoutEffect } from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { getTargetElement } from '../utils/dom';\nimport useRafState from './useRafState';\n\nfunction useSize(target) {\n var _a = __read(useRafState(function () {\n var el = getTargetElement(target);\n return {\n width: (el || {}).clientWidth,\n height: (el || {}).clientHeight\n };\n }), 2),\n state = _a[0],\n setState = _a[1];\n\n useLayoutEffect(function () {\n var el = getTargetElement(target);\n\n if (!el) {\n return function () {};\n }\n\n var resizeObserver = new ResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n setState({\n width: entry.target.clientWidth,\n height: entry.target.clientHeight\n });\n });\n });\n resizeObserver.observe(el);\n return function () {\n resizeObserver.disconnect();\n };\n }, [target]);\n return state;\n}\n\nexport default useSize;","var __values = this && this.__values || function (o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useState } from 'react';\nvar subscribers = new Set();\nvar info;\nvar responsiveConfig = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction handleResize() {\n var e_1, _a;\n\n var oldInfo = info;\n calculate();\n if (oldInfo === info) return;\n\n try {\n for (var subscribers_1 = __values(subscribers), subscribers_1_1 = subscribers_1.next(); !subscribers_1_1.done; subscribers_1_1 = subscribers_1.next()) {\n var subscriber = subscribers_1_1.value;\n subscriber();\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (subscribers_1_1 && !subscribers_1_1.done && (_a = subscribers_1[\"return\"])) _a.call(subscribers_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n}\n\nvar listening = false;\n\nfunction calculate() {\n var e_2, _a;\n\n var width = window.innerWidth;\n var newInfo = {};\n var shouldUpdate = false;\n\n try {\n for (var _b = __values(Object.keys(responsiveConfig)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n newInfo[key] = width >= responsiveConfig[key];\n\n if (newInfo[key] !== info[key]) {\n shouldUpdate = true;\n }\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b[\"return\"])) _a.call(_b);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n if (shouldUpdate) {\n info = newInfo;\n }\n}\n\nexport function configResponsive(config) {\n responsiveConfig = config;\n if (info) calculate();\n}\nexport function useResponsive() {\n var windowExists = typeof window !== 'undefined';\n\n if (windowExists && !listening) {\n info = {};\n calculate();\n window.addEventListener('resize', handleResize);\n listening = true;\n }\n\n var _a = __read(useState(info), 2),\n state = _a[0],\n setState = _a[1];\n\n useEffect(function () {\n if (!windowExists) return;\n\n var subscriber = function subscriber() {\n setState(info);\n };\n\n subscribers.add(subscriber);\n return function () {\n subscribers[\"delete\"](subscriber);\n\n if (subscribers.size === 0) {\n window.removeEventListener('resize', handleResize);\n listening = false;\n }\n };\n }, []);\n return state;\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useState, useMemo, useRef } from 'react';\nimport useSize from '../useSize';\nexport default (function (list, options) {\n var containerRef = useRef();\n var size = useSize(containerRef); // 暂时禁止 cache\n // const distanceCache = useRef<{ [key: number]: number }>({});\n\n var _a = __read(useState({\n start: 0,\n end: 10\n }), 2),\n state = _a[0],\n setState = _a[1];\n\n var itemHeight = options.itemHeight,\n _b = options.overscan,\n overscan = _b === void 0 ? 5 : _b;\n\n if (!itemHeight) {\n console.warn('please enter a valid itemHeight');\n }\n\n var getViewCapacity = function getViewCapacity(containerHeight) {\n if (typeof itemHeight === 'number') {\n return Math.ceil(containerHeight / itemHeight);\n }\n\n var _a = state.start,\n start = _a === void 0 ? 0 : _a;\n var sum = 0;\n var capacity = 0;\n\n for (var i = start; i < list.length; i++) {\n var height = itemHeight(i, list[i]);\n sum += height;\n\n if (sum >= containerHeight) {\n capacity = i;\n break;\n }\n }\n\n return capacity - start;\n };\n\n var getOffset = function getOffset(scrollTop) {\n if (typeof itemHeight === 'number') {\n return Math.floor(scrollTop / itemHeight) + 1;\n }\n\n var sum = 0;\n var offset = 0;\n\n for (var i = 0; i < list.length; i++) {\n var height = itemHeight(i, list[i]);\n sum += height;\n\n if (sum >= scrollTop) {\n offset = i;\n break;\n }\n }\n\n return offset + 1;\n };\n\n var calculateRange = function calculateRange() {\n var element = containerRef.current;\n\n if (element) {\n var offset = getOffset(element.scrollTop);\n var viewCapacity = getViewCapacity(element.clientHeight);\n var from = offset - overscan;\n var to = offset + viewCapacity + overscan;\n setState({\n start: from < 0 ? 0 : from,\n end: to > list.length ? list.length : to\n });\n }\n };\n\n useEffect(function () {\n calculateRange();\n }, [size.width, size.height, list.length]);\n var totalHeight = useMemo(function () {\n if (typeof itemHeight === 'number') {\n return list.length * itemHeight;\n }\n\n return list.reduce(function (sum, _, index) {\n return sum + itemHeight(index, list[index]);\n }, 0);\n }, [list.length]);\n\n var getDistanceTop = function getDistanceTop(index) {\n // 如果有缓存,优先返回缓存值\n // if (enableCache && distanceCache.current[index]) {\n // return distanceCache.current[index];\n // }\n if (typeof itemHeight === 'number') {\n var height_1 = index * itemHeight; // if (enableCache) {\n // distanceCache.current[index] = height;\n // }\n\n return height_1;\n }\n\n var height = list.slice(0, index).reduce(function (sum, _, i) {\n return sum + itemHeight(i, list[i]);\n }, 0); // if (enableCache) {\n // distanceCache.current[index] = height;\n // }\n\n return height;\n };\n\n var scrollTo = function scrollTo(index) {\n if (containerRef.current) {\n containerRef.current.scrollTop = getDistanceTop(index);\n calculateRange();\n }\n };\n\n var offsetTop = useMemo(function () {\n return getDistanceTop(state.start);\n }, [state.start]);\n return {\n list: list.slice(state.start, state.end).map(function (ele, index) {\n return {\n data: ele,\n index: index + state.start\n };\n }),\n scrollTo: scrollTo,\n containerProps: {\n ref: function ref(ele) {\n containerRef.current = ele;\n },\n onScroll: function onScroll(e) {\n e.preventDefault();\n calculateRange();\n },\n style: {\n overflowY: 'auto'\n }\n },\n wrapperProps: {\n style: {\n width: '100%',\n height: totalHeight - offsetTop,\n marginTop: offsetTop\n }\n }\n };\n});","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState, useCallback } from 'react';\nimport useUpdateEffect from '../useUpdateEffect';\n\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\n\nexport function createUseStorageState(nullishStorage) {\n function useStorageState(key, defaultValue) {\n var storage = nullishStorage;\n\n var _a = __read(useState(function () {\n return getStoredValue();\n }), 2),\n state = _a[0],\n setState = _a[1];\n\n useUpdateEffect(function () {\n setState(getStoredValue());\n }, [key]);\n\n function getStoredValue() {\n try {\n var raw = storage.getItem(key);\n\n if (raw) {\n return JSON.parse(raw);\n }\n } catch (e) {\n console.error(e);\n }\n\n if (isFunction(defaultValue)) {\n return defaultValue();\n }\n\n return defaultValue;\n }\n\n var updateState = useCallback(function (value) {\n if (typeof value === 'undefined') {\n storage.removeItem(key);\n setState(undefined);\n } else if (isFunction(value)) {\n var previousState = getStoredValue();\n var currentState = value(previousState);\n\n try {\n storage.setItem(key, JSON.stringify(currentState));\n setState(currentState);\n } catch (e) {\n console.error(e);\n }\n } else {\n try {\n storage.setItem(key, JSON.stringify(value));\n setState(value);\n } catch (e) {\n console.error(e);\n }\n }\n }, [key]);\n return [state, updateState];\n }\n\n if (!nullishStorage) {\n return function (_, defaultValue) {\n return [isFunction(defaultValue) ? defaultValue() : defaultValue, function () {}];\n };\n }\n\n return useStorageState;\n}","import { createUseStorageState } from '../createUseStorageState';\nvar useLocalStorageState = createUseStorageState(typeof window === 'object' ? window.localStorage : null);\nexport default useLocalStorageState;","import { createUseStorageState } from '../createUseStorageState';\nvar useSessionStorageState = createUseStorageState(typeof window === 'object' ? window.sessionStorage : null);\nexport default useSessionStorageState;","/* eslint consistent-return: 0 */\nimport { useLayoutEffect, useRef } from 'react';\n\nvar useUpdateLayoutEffect = function useUpdateLayoutEffect(effect, deps) {\n var isMounted = useRef(false);\n useLayoutEffect(function () {\n if (!isMounted.current) {\n isMounted.current = true;\n } else {\n return effect();\n }\n }, deps);\n};\n\nexport default useUpdateLayoutEffect;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState, useMemo } from 'react';\n\nfunction useToggle(defaultValue, reverseValue) {\n if (defaultValue === void 0) {\n defaultValue = false;\n }\n\n var _a = __read(useState(defaultValue), 2),\n state = _a[0],\n setState = _a[1];\n\n var actions = useMemo(function () {\n var reverseValueOrigin = reverseValue === undefined ? !defaultValue : reverseValue; // 切换返回值\n\n var toggle = function toggle(value) {\n // 强制返回状态值,适用于点击操作\n if (value !== undefined) {\n setState(value);\n return;\n }\n\n setState(function (s) {\n return s === defaultValue ? reverseValueOrigin : defaultValue;\n });\n }; // 设置默认值\n\n\n var setLeft = function setLeft() {\n return setState(defaultValue);\n }; // 设置取反值\n\n\n var setRight = function setRight() {\n return setState(reverseValueOrigin);\n };\n\n return {\n toggle: toggle,\n setLeft: setLeft,\n setRight: setRight\n };\n }, [defaultValue, reverseValue]);\n return [state, actions];\n}\n\nexport default useToggle;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useMemo } from 'react';\nimport useToggle from '../useToggle';\nexport default function useBoolean(defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = false;\n }\n\n var _a = __read(useToggle(defaultValue), 2),\n state = _a[0],\n toggle = _a[1].toggle;\n\n var actions = useMemo(function () {\n var setTrue = function setTrue() {\n return toggle(true);\n };\n\n var setFalse = function setFalse() {\n return toggle(false);\n };\n\n return {\n toggle: toggle,\n setTrue: setTrue,\n setFalse: setFalse\n };\n }, [toggle]);\n return [state, actions];\n}","import { useEffect, useRef } from 'react';\nimport { getTargetElement } from '../utils/dom';\n\nfunction useEventListener(eventName, handler, options) {\n if (options === void 0) {\n options = {};\n }\n\n var handlerRef = useRef();\n handlerRef.current = handler;\n useEffect(function () {\n var targetElement = getTargetElement(options.target, window);\n\n if (!targetElement.addEventListener) {\n return;\n }\n\n var eventListener = function eventListener(event) {\n return handlerRef.current && handlerRef.current(event);\n };\n\n targetElement.addEventListener(eventName, eventListener, {\n capture: options.capture,\n once: options.once,\n passive: options.passive\n });\n return function () {\n targetElement.removeEventListener(eventName, eventListener, {\n capture: options.capture\n });\n };\n }, [eventName, options.target, options.capture, options.once, options.passive]);\n}\n\nexport default useEventListener;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState } from 'react';\nimport useEventListener from '../useEventListener';\nimport canUseDom from '../utils/canUseDom';\n\nvar getVisibility = function getVisibility() {\n if (!canUseDom()) return 'visible';\n return document.visibilityState;\n};\n\nfunction useDocumentVisibility() {\n var _a = __read(useState(function () {\n return getVisibility();\n }), 2),\n documentVisibility = _a[0],\n setDocumentVisibility = _a[1];\n\n useEventListener('visibilitychange', function () {\n setDocumentVisibility(getVisibility());\n }, {\n target: function target() {\n return document;\n }\n });\n return documentVisibility;\n}\n\nexport default useDocumentVisibility;","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n/* eslint-disable no-shadow */\n\n\nimport { useState, useMemo } from 'react';\nexport default function useSelections(items, defaultSelected) {\n if (defaultSelected === void 0) {\n defaultSelected = [];\n }\n\n var _a = __read(useState(defaultSelected), 2),\n selected = _a[0],\n setSelected = _a[1];\n\n var selectedSet = useMemo(function () {\n return new Set(selected);\n }, [selected]);\n var singleActions = useMemo(function () {\n var isSelected = function isSelected(item) {\n return selectedSet.has(item);\n };\n\n var select = function select(item) {\n selectedSet.add(item);\n return setSelected(Array.from(selectedSet));\n };\n\n var unSelect = function unSelect(item) {\n selectedSet[\"delete\"](item);\n return setSelected(Array.from(selectedSet));\n };\n\n var toggle = function toggle(item) {\n if (isSelected(item)) {\n unSelect(item);\n } else {\n select(item);\n }\n };\n\n return {\n isSelected: isSelected,\n select: select,\n unSelect: unSelect,\n toggle: toggle\n };\n }, [selectedSet]);\n var allActions = useMemo(function () {\n var selectAll = function selectAll() {\n items.forEach(function (o) {\n selectedSet.add(o);\n });\n setSelected(Array.from(selectedSet));\n };\n\n var unSelectAll = function unSelectAll() {\n items.forEach(function (o) {\n selectedSet[\"delete\"](o);\n });\n setSelected(Array.from(selectedSet));\n };\n\n var noneSelected = items.every(function (o) {\n return !selectedSet.has(o);\n });\n var allSelected = items.every(function (o) {\n return selectedSet.has(o);\n }) && !noneSelected;\n var partiallySelected = !noneSelected && !allSelected;\n\n var toggleAll = function toggleAll() {\n return allSelected ? unSelectAll() : selectAll();\n };\n\n return {\n selectAll: selectAll,\n unSelectAll: unSelectAll,\n noneSelected: noneSelected,\n allSelected: allSelected,\n partiallySelected: partiallySelected,\n toggleAll: toggleAll\n };\n }, [selectedSet, items]);\n return __assign(__assign({\n selected: selected,\n setSelected: setSelected\n }, singleActions), allActions);\n}","import { useRef } from 'react';\nexport default function useCreation(factory, deps) {\n var current = useRef({\n deps: deps,\n obj: undefined,\n initialized: false\n }).current;\n\n if (current.initialized === false || !depsAreSame(current.deps, deps)) {\n current.deps = deps;\n current.obj = factory();\n current.initialized = true;\n }\n\n return current.obj;\n}\n\nfunction depsAreSame(oldDeps, deps) {\n if (oldDeps === deps) return true;\n\n for (var i = 0; i < oldDeps.length; i++) {\n if (oldDeps[i] !== deps[i]) return false;\n }\n\n return true;\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport throttle from 'lodash.throttle';\nimport { useRef } from 'react';\nimport useCreation from '../useCreation';\nimport useUnmount from '../useUnmount';\n\nfunction useThrottleFn(fn, options) {\n var _a;\n\n var fnRef = useRef(fn);\n fnRef.current = fn;\n var wait = (_a = options === null || options === void 0 ? void 0 : options.wait) !== null && _a !== void 0 ? _a : 1000;\n var throttled = useCreation(function () {\n return throttle(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return fnRef.current.apply(fnRef, __spread(args));\n }, wait, options);\n }, []);\n useUnmount(function () {\n throttled.cancel();\n });\n return {\n run: throttled,\n cancel: throttled.cancel,\n flush: throttled.flush\n };\n}\n\nexport default useThrottleFn;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState, useEffect } from 'react';\nimport useThrottleFn from '../useThrottleFn';\n\nfunction useThrottle(value, options) {\n var _a = __read(useState(value), 2),\n throttled = _a[0],\n setThrottled = _a[1];\n\n var run = useThrottleFn(function () {\n setThrottled(value);\n }, options).run;\n useEffect(function () {\n run();\n }, [value]);\n return throttled;\n}\n\nexport default useThrottle;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useState } from 'react';\nimport useThrottleFn from '../useThrottleFn';\nimport useUpdateEffect from '../useUpdateEffect';\nimport useUnmount from '../useUnmount';\n\nfunction useThrottleEffect(effect, deps, options) {\n var _a = __read(useState({}), 2),\n flag = _a[0],\n setFlag = _a[1];\n\n var _b = useThrottleFn(function () {\n setFlag({});\n }, options),\n run = _b.run,\n cancel = _b.cancel;\n\n useEffect(function () {\n return run();\n }, deps);\n useUnmount(cancel);\n useUpdateEffect(effect, [flag]);\n}\n\nexport default useThrottleEffect;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport debounce from 'lodash.debounce';\nimport { useRef } from 'react';\nimport useCreation from '../useCreation';\nimport useUnmount from '../useUnmount';\n\nfunction useDebounceFn(fn, options) {\n var _a;\n\n var fnRef = useRef(fn);\n fnRef.current = fn;\n var wait = (_a = options === null || options === void 0 ? void 0 : options.wait) !== null && _a !== void 0 ? _a : 1000;\n var debounced = useCreation(function () {\n return debounce(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return fnRef.current.apply(fnRef, __spread(args));\n }, wait, options);\n }, []);\n useUnmount(function () {\n debounced.cancel();\n });\n return {\n run: debounced,\n cancel: debounced.cancel,\n flush: debounced.flush\n };\n}\n\nexport default useDebounceFn;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState, useEffect } from 'react';\nimport useDebounceFn from '../useDebounceFn';\n\nfunction useDebounce(value, options) {\n var _a = __read(useState(value), 2),\n debounced = _a[0],\n setDebounced = _a[1];\n\n var run = useDebounceFn(function () {\n setDebounced(value);\n }, options).run;\n useEffect(function () {\n run();\n }, [value]);\n return debounced;\n}\n\nexport default useDebounce;","import { useRef } from 'react';\n\nfunction usePrevious(state, compare) {\n var prevRef = useRef();\n var curRef = useRef();\n var needUpdate = typeof compare === 'function' ? compare(curRef.current, state) : true;\n\n if (needUpdate) {\n prevRef.current = curRef.current;\n curRef.current = state;\n }\n\n return prevRef.current;\n}\n\nexport default usePrevious;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState } from 'react';\nimport useEventListener from '../useEventListener';\nvar initState = {\n screenX: NaN,\n screenY: NaN,\n clientX: NaN,\n clientY: NaN,\n pageX: NaN,\n pageY: NaN\n};\nexport default (function () {\n var _a = __read(useState(initState), 2),\n state = _a[0],\n setState = _a[1];\n\n useEventListener('mousemove', function (event) {\n var screenX = event.screenX,\n screenY = event.screenY,\n clientX = event.clientX,\n clientY = event.clientY,\n pageX = event.pageX,\n pageY = event.pageY;\n setState({\n screenX: screenX,\n screenY: screenY,\n clientX: clientX,\n clientY: clientY,\n pageX: pageX,\n pageY: pageY\n });\n }, {\n target: document\n });\n return state;\n});","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useState } from 'react';\nimport usePersistFn from '../usePersistFn';\nimport { getTargetElement } from '../utils/dom';\n\nfunction useScroll(target, shouldUpdate) {\n if (shouldUpdate === void 0) {\n shouldUpdate = function shouldUpdate() {\n return true;\n };\n }\n\n var _a = __read(useState({\n left: NaN,\n top: NaN\n }), 2),\n position = _a[0],\n setPosition = _a[1];\n\n var shouldUpdatePersist = usePersistFn(shouldUpdate);\n useEffect(function () {\n var el = getTargetElement(target, document);\n if (!el) return;\n\n function updatePosition(currentTarget) {\n var newPosition;\n\n if (currentTarget === document) {\n if (!document.scrollingElement) return;\n newPosition = {\n left: document.scrollingElement.scrollLeft,\n top: document.scrollingElement.scrollTop\n };\n } else {\n newPosition = {\n left: currentTarget.scrollLeft,\n top: currentTarget.scrollTop\n };\n }\n\n if (shouldUpdatePersist(newPosition)) setPosition(newPosition);\n }\n\n updatePosition(el);\n\n function listener(event) {\n if (!event.target) return;\n updatePosition(event.target);\n }\n\n el.addEventListener('scroll', listener);\n return function () {\n el.removeEventListener('scroll', listener);\n };\n }, [target, shouldUpdatePersist]);\n return position;\n}\n\nexport default useScroll;","import { useEffect, useRef } from 'react';\nimport { getTargetElement } from '../utils/dom'; // 鼠标点击事件,click 不会监听右键\n\nvar defaultEvent = 'click';\nexport default function useClickAway(onClickAway, target, eventName) {\n if (eventName === void 0) {\n eventName = defaultEvent;\n }\n\n var onClickAwayRef = useRef(onClickAway);\n onClickAwayRef.current = onClickAway;\n useEffect(function () {\n var handler = function handler(event) {\n var targets = Array.isArray(target) ? target : [target];\n\n if (targets.some(function (targetItem) {\n var targetElement = getTargetElement(targetItem);\n return !targetElement || (targetElement === null || targetElement === void 0 ? void 0 : targetElement.contains(event.target));\n })) {\n return;\n }\n\n onClickAwayRef.current(event);\n };\n\n document.addEventListener(eventName, handler);\n return function () {\n document.removeEventListener(eventName, handler);\n };\n }, [target, eventName]);\n}","/* eslint no-empty: 0 */\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useCallback, useRef, useState } from 'react';\nimport screenfull from 'screenfull';\nimport useUnmount from '../useUnmount';\nimport { getTargetElement } from '../utils/dom';\nexport default (function (target, options) {\n var _a = options || {},\n onExitFull = _a.onExitFull,\n onFull = _a.onFull;\n\n var onExitFullRef = useRef(onExitFull);\n onExitFullRef.current = onExitFull;\n var onFullRef = useRef(onFull);\n onFullRef.current = onFull;\n\n var _b = __read(useState(false), 2),\n state = _b[0],\n setState = _b[1];\n\n var onChange = useCallback(function () {\n if (screenfull.isEnabled) {\n var isFullscreen = screenfull.isFullscreen;\n\n if (isFullscreen) {\n onFullRef.current && onFullRef.current();\n } else {\n screenfull.off('change', onChange);\n onExitFullRef.current && onExitFullRef.current();\n }\n\n setState(isFullscreen);\n }\n }, []);\n var setFull = useCallback(function () {\n var el = getTargetElement(target);\n\n if (!el) {\n return;\n }\n\n if (screenfull.isEnabled) {\n try {\n screenfull.request(el);\n screenfull.on('change', onChange);\n } catch (error) {}\n }\n }, [target, onChange]);\n var exitFull = useCallback(function () {\n if (!state) {\n return;\n }\n\n if (screenfull.isEnabled) {\n screenfull.exit();\n }\n }, [state]);\n var toggleFull = useCallback(function () {\n if (state) {\n exitFull();\n } else {\n setFull();\n }\n }, [state, setFull, exitFull]);\n useUnmount(function () {\n if (screenfull.isEnabled) {\n screenfull.off('change', onChange);\n }\n });\n return [state, {\n setFull: setFull,\n exitFull: exitFull,\n toggleFull: toggleFull\n }];\n});","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __values = this && this.__values || function (o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n\nimport { useEffect, useState } from 'react';\nimport 'intersection-observer';\nimport { getTargetElement } from '../utils/dom';\n\nfunction isInViewPort(el) {\n if (!el) {\n return undefined;\n }\n\n var viewPortWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n var viewPortHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n var rect = el.getBoundingClientRect();\n\n if (rect) {\n var top_1 = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right;\n return bottom > 0 && top_1 <= viewPortHeight && left <= viewPortWidth && right > 0;\n }\n\n return false;\n}\n\nfunction useInViewport(target) {\n var _a = __read(useState(function () {\n var el = getTargetElement(target);\n return isInViewPort(el);\n }), 2),\n inViewPort = _a[0],\n setInViewport = _a[1];\n\n useEffect(function () {\n var el = getTargetElement(target);\n\n if (!el) {\n return function () {};\n }\n\n var observer = new IntersectionObserver(function (entries) {\n var e_1, _a;\n\n try {\n for (var entries_1 = __values(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n\n if (entry.isIntersecting) {\n setInViewport(true);\n } else {\n setInViewport(false);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1[\"return\"])) _a.call(entries_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n });\n observer.observe(el);\n return function () {\n observer.disconnect();\n };\n }, [target]);\n return inViewPort;\n}\n\nexport default useInViewport;","var __values = this && this.__values || function (o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n\nimport { useEffect, useRef } from 'react';\nimport { getTargetElement } from '../utils/dom'; // 键盘事件 keyCode 别名\n\nvar aliasKeyCodeMap = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n \"delete\": [8, 46]\n}; // 键盘事件 key 别名\n\nvar aliasKeyMap = {\n esc: 'Escape',\n tab: 'Tab',\n enter: 'Enter',\n space: ' ',\n // IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n \"delete\": ['Backspace', 'Delete']\n}; // 修饰键\n\nvar modifierKey = {\n ctrl: function ctrl(event) {\n return event.ctrlKey;\n },\n shift: function shift(event) {\n return event.shiftKey;\n },\n alt: function alt(event) {\n return event.altKey;\n },\n meta: function meta(event) {\n return event.metaKey;\n }\n}; // 返回空对象\n\nvar noop = function noop() {};\n/**\n * 判断对象类型\n * @param [obj: any] 参数对象\n * @returns String\n */\n\n\nfunction isType(obj) {\n return Object.prototype.toString.call(obj).replace(/^\\[object (.+)\\]$/, '$1').toLowerCase();\n}\n/**\n * 判断按键是否激活\n * @param [event: KeyboardEvent]键盘事件\n * @param [keyFilter: any] 当前键\n * @returns Boolean\n */\n\n\nfunction genFilterKey(event, keyFilter) {\n var e_1, _a; // 浏览器自动补全 input 的时候,会触发 keyDown、keyUp 事件,但此时 event.key 等为空\n\n\n if (!event.key) {\n return false;\n }\n\n var type = isType(keyFilter); // 数字类型直接匹配事件的 keyCode\n\n if (type === 'number') {\n return event.keyCode === keyFilter;\n } // 字符串依次判断是否有组合键\n\n\n var genArr = keyFilter.split('.');\n var genLen = 0;\n\n try {\n for (var genArr_1 = __values(genArr), genArr_1_1 = genArr_1.next(); !genArr_1_1.done; genArr_1_1 = genArr_1.next()) {\n var key = genArr_1_1.value; // 组合键\n\n var genModifier = modifierKey[key]; // key 别名\n\n var aliasKey = aliasKeyMap[key]; // keyCode 别名\n\n var aliasKeyCode = aliasKeyCodeMap[key];\n /**\n * 满足以上规则\n * 1. 自定义组合键别名\n * 2. 自定义 key 别名\n * 3. 自定义 keyCode 别名\n * 4. 匹配 key 或 keyCode\n */\n\n if (genModifier && genModifier(event) || (aliasKey && isType(aliasKey) === 'array' ? aliasKey.includes(event.key) : aliasKey === event.key) || (aliasKeyCode && isType(aliasKeyCode) === 'array' ? aliasKeyCode.includes(event.keyCode) : aliasKeyCode === event.keyCode) || event.key.toUpperCase() === key.toUpperCase()) {\n genLen++;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (genArr_1_1 && !genArr_1_1.done && (_a = genArr_1[\"return\"])) _a.call(genArr_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n\n return genLen === genArr.length;\n}\n/**\n * 键盘输入预处理方法\n * @param [keyFilter: any] 当前键\n * @returns () => Boolean\n */\n\n\nfunction genKeyFormater(keyFilter) {\n var type = isType(keyFilter);\n\n if (type === 'function') {\n return keyFilter;\n }\n\n if (type === 'string' || type === 'number') {\n return function (event) {\n return genFilterKey(event, keyFilter);\n };\n }\n\n if (type === 'array') {\n return function (event) {\n return keyFilter.some(function (item) {\n return genFilterKey(event, item);\n });\n };\n }\n\n return keyFilter ? function () {\n return true;\n } : function () {\n return false;\n };\n}\n\nvar defaultEvents = ['keydown'];\n\nfunction useKeyPress(keyFilter, eventHandler, option) {\n if (eventHandler === void 0) {\n eventHandler = noop;\n }\n\n if (option === void 0) {\n option = {};\n }\n\n var _a = option.events,\n events = _a === void 0 ? defaultEvents : _a,\n target = option.target;\n var callbackRef = useRef(eventHandler);\n callbackRef.current = eventHandler;\n useEffect(function () {\n var e_2, _a;\n\n var callbackHandler = function callbackHandler(event) {\n var genGuard = genKeyFormater(keyFilter);\n\n if (genGuard(event)) {\n return callbackRef.current(event);\n }\n };\n\n var el = getTargetElement(target, window);\n\n try {\n for (var events_1 = __values(events), events_1_1 = events_1.next(); !events_1_1.done; events_1_1 = events_1.next()) {\n var eventName = events_1_1.value;\n el.addEventListener(eventName, callbackHandler);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (events_1_1 && !events_1_1.done && (_a = events_1[\"return\"])) _a.call(events_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n\n return function () {\n var e_3, _a;\n\n try {\n for (var events_2 = __values(events), events_2_1 = events_2.next(); !events_2_1.done; events_2_1 = events_2.next()) {\n var eventName = events_2_1.value;\n el.removeEventListener(eventName, callbackHandler);\n }\n } catch (e_3_1) {\n e_3 = {\n error: e_3_1\n };\n } finally {\n try {\n if (events_2_1 && !events_2_1.done && (_a = events_2[\"return\"])) _a.call(events_2);\n } finally {\n if (e_3) throw e_3.error;\n }\n }\n };\n }, [events, keyFilter, target]);\n}\n\nexport default useKeyPress;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport useBoolean from '../useBoolean';\nimport useEventListener from '../useEventListener';\nexport default (function (target, options) {\n var _a = options || {},\n onEnter = _a.onEnter,\n onLeave = _a.onLeave;\n\n var _b = __read(useBoolean(false), 2),\n state = _b[0],\n _c = _b[1],\n setTrue = _c.setTrue,\n setFalse = _c.setFalse;\n\n useEventListener('mouseenter', function () {\n onEnter && onEnter();\n setTrue();\n }, {\n target: target\n });\n useEventListener('mouseleave', function () {\n onLeave && onLeave();\n setFalse();\n }, {\n target: target\n });\n return state;\n});","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport useRequest from '@ahooksjs/use-request';\nimport { useState, useCallback, useEffect, useRef } from 'react';\nimport useUpdateEffect from '../useUpdateEffect';\nimport usePersistFn from '../usePersistFn';\n\nfunction useAntdTable(service, options) {\n var form = options.form,\n _a = options.refreshDeps,\n refreshDeps = _a === void 0 ? [] : _a,\n manual = options.manual,\n _b = options.defaultType,\n defaultType = _b === void 0 ? 'simple' : _b,\n defaultParams = options.defaultParams,\n restOptions = __rest(options, [\"form\", \"refreshDeps\", \"manual\", \"defaultType\", \"defaultParams\"]);\n\n var result = useRequest(service, __assign(__assign({}, restOptions), {\n paginated: true,\n manual: true\n }));\n var params = result.params,\n run = result.run;\n var cacheFormTableData = params[2] || {}; // 优先从缓存中读\n\n var _c = __read(useState(cacheFormTableData.type || defaultType), 2),\n type = _c[0],\n setType = _c[1]; // 全量 form 数据,包括 simple 和 advance\n\n\n var _d = __read(useState(cacheFormTableData.allFormData || defaultParams && defaultParams[1] || {}), 2),\n allFormData = _d[0],\n setAllFormData = _d[1]; // 获取当前展示的 form 字段值\n\n\n var getActivetFieldValues = useCallback(function () {\n if (!form) {\n return {};\n } // antd 3\n\n\n if (form.getFieldInstance) {\n var tempAllFiledsValue_1 = form.getFieldsValue();\n var filterFiledsValue_1 = {};\n Object.keys(tempAllFiledsValue_1).forEach(function (key) {\n if (form.getFieldInstance ? form.getFieldInstance(key) : true) {\n filterFiledsValue_1[key] = tempAllFiledsValue_1[key];\n }\n });\n return filterFiledsValue_1;\n } // antd 4\n\n\n return form.getFieldsValue(null, function () {\n return true;\n });\n }, [form]);\n var formRef = useRef(form);\n formRef.current = form;\n /* 初始化,或改变了 searchType, 恢复表单数据 */\n\n useEffect(function () {\n if (!formRef.current) {\n return;\n } // antd 3\n\n\n if (formRef.current.getFieldInstance) {\n // antd 3 需要判断字段是否存在,否则会抛警告\n var filterFiledsValue_2 = {};\n Object.keys(allFormData).forEach(function (key) {\n if (formRef.current.getFieldInstance ? formRef.current.getFieldInstance(key) : true) {\n filterFiledsValue_2[key] = allFormData[key];\n }\n });\n formRef.current.setFieldsValue(filterFiledsValue_2);\n } else {\n // antd 4\n formRef.current.setFieldsValue(allFormData);\n }\n }, [type]); // 首次加载,手动提交。为了拿到 form 的 initial values\n\n useEffect(function () {\n // 如果有缓存,则使用缓存,重新请求\n if (params.length > 0) {\n run.apply(void 0, __spread(params));\n return;\n } // 如果没有缓存,触发 submit\n\n\n if (!manual) {\n _submit(defaultParams);\n }\n }, []);\n var changeType = useCallback(function () {\n var currentFormData = getActivetFieldValues();\n setAllFormData(__assign(__assign({}, allFormData), currentFormData));\n var targetType = type === 'simple' ? 'advance' : 'simple';\n setType(targetType);\n }, [type, allFormData, getActivetFieldValues]);\n var validateFields = useCallback(function () {\n var fieldValues = getActivetFieldValues();\n\n if (!form) {\n return Promise.resolve();\n }\n\n var fields = Object.keys(fieldValues);\n\n if (!form.getInternalHooks) {\n return new Promise(function (resolve, reject) {\n form.validateFields(fields, function (errors, values) {\n if (errors) {\n reject(errors);\n } else {\n resolve(values);\n }\n });\n });\n }\n\n return form.validateFields(fields);\n }, [form]);\n\n var _submit = useCallback(function (initParams) {\n setTimeout(function () {\n validateFields().then(function () {\n var activeFormData = getActivetFieldValues(); // 记录全量数据\n\n var _allFormData = __assign(__assign({}, allFormData), activeFormData);\n\n setAllFormData(_allFormData); // has defaultParams\n\n if (initParams) {\n run(initParams[0], activeFormData, {\n allFormData: _allFormData,\n type: type\n });\n return;\n }\n\n run(__assign(__assign({\n pageSize: options.defaultPageSize || 10\n }, params[0] || {}), {\n current: 1\n }), activeFormData, {\n allFormData: _allFormData,\n type: type\n });\n })[\"catch\"](function (err) {\n return err;\n });\n });\n }, [getActivetFieldValues, run, params, allFormData, type]);\n\n var reset = useCallback(function () {\n if (form) {\n form.resetFields();\n }\n\n _submit();\n }, [form, _submit]);\n var resetPersistFn = usePersistFn(reset); // refreshDeps 变化,reset。\n\n useUpdateEffect(function () {\n if (!manual) {\n resetPersistFn();\n }\n }, __spread(refreshDeps));\n var submit = usePersistFn(function (e) {\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n\n _submit();\n });\n return __assign(__assign({}, result), {\n search: {\n submit: submit,\n type: type,\n changeType: changeType,\n reset: reset\n }\n });\n}\n\nexport default useAntdTable;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nexport var fieldAdapter = function fieldAdapter(field) {\n return {\n getFieldInstance: function getFieldInstance(name) {\n return field.getNames().includes(name);\n },\n setFieldsValue: field.setValues,\n getFieldsValue: field.getValues,\n resetFields: field.resetToDefault,\n validateFields: function validateFields(fields, callback) {\n field.validate(callback);\n }\n };\n};\nexport var resultAdapter = function resultAdapter(result) {\n var tableProps = {\n dataSource: result.tableProps.dataSource,\n loading: result.tableProps.loading,\n onSort: function onSort(dataIndex, order) {\n result.tableProps.onChange({\n current: result.pagination.current,\n pageSize: result.pagination.pageSize\n }, result.filters, {\n field: dataIndex,\n order: order\n });\n },\n onFilter: function onFilter(filterParams) {\n result.tableProps.onChange({\n current: result.pagination.current,\n pageSize: result.pagination.pageSize\n }, filterParams, result.sorter);\n }\n };\n var paginationProps = {\n onChange: result.pagination.changeCurrent,\n onPageSizeChange: result.pagination.changePageSize,\n current: result.pagination.current,\n pageSize: result.pagination.pageSize,\n total: result.pagination.total\n };\n return __assign(__assign({}, result), {\n tableProps: tableProps,\n paginationProps: paginationProps\n });\n};","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport useAntdTable from '../useAntdTable';\nimport { fieldAdapter, resultAdapter } from './fusionAdapter';\n\nfunction useFusionTable(service, options) {\n var ret = useAntdTable(service, __assign(__assign({}, options), {\n form: options.field ? fieldAdapter(options.field) : undefined\n }));\n return resultAdapter(ret);\n}\n\nexport default useFusionTable;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n/* eslint-disable max-len */\n\n\nimport { useState, useMemo, useCallback } from 'react';\n\nfunction useSet(initialValue) {\n var initialSet = useMemo(function () {\n return initialValue === undefined ? new Set() : new Set(initialValue);\n }, []);\n\n var _a = __read(useState(initialSet), 2),\n set = _a[0],\n setSet = _a[1];\n\n var stableActions = useMemo(function () {\n return {\n add: function add(key) {\n setSet(function (prevSet) {\n var temp = new Set(prevSet);\n temp.add(key);\n return temp;\n });\n },\n remove: function remove(key) {\n setSet(function (prevSet) {\n var temp = new Set(prevSet);\n temp[\"delete\"](key);\n return temp;\n });\n },\n reset: function reset() {\n return setSet(initialSet);\n }\n };\n }, [setSet, initialSet]);\n\n var utils = __assign({\n has: useCallback(function (key) {\n return set.has(key);\n }, [set])\n }, stableActions);\n\n return [set, utils];\n}\n\nexport default useSet;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useMemo, useState, useCallback } from 'react';\n\nfunction useMap(initialValue) {\n var initialMap = useMemo(function () {\n return initialValue === undefined ? new Map() : new Map(initialValue);\n }, []);\n\n var _a = __read(useState(initialMap), 2),\n map = _a[0],\n setMap = _a[1];\n\n var stableActions = useMemo(function () {\n return {\n set: function set(key, entry) {\n setMap(function (prev) {\n var temp = new Map(prev);\n temp.set(key, entry);\n return temp;\n });\n },\n setAll: function setAll(newMap) {\n setMap(new Map(newMap));\n },\n remove: function remove(key) {\n setMap(function (prev) {\n var temp = new Map(prev);\n temp[\"delete\"](key);\n return temp;\n });\n },\n reset: function reset() {\n return setMap(initialMap);\n }\n };\n }, [setMap, initialMap]);\n\n var utils = __assign({\n get: useCallback(function (key) {\n return map.get(key);\n }, [map])\n }, stableActions);\n\n return [map, utils];\n}\n\nexport default useMap;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useMemo, useState, useRef, useCallback } from 'react';\n\nvar getProps = function getProps(callback, setIsHovering) {\n return {\n onDragOver: function onDragOver(event) {\n event.preventDefault();\n },\n onDragEnter: function onDragEnter(event) {\n event.preventDefault();\n setIsHovering(true);\n },\n onDragLeave: function onDragLeave() {\n setIsHovering(false);\n },\n onDrop: function onDrop(event) {\n event.preventDefault();\n event.persist();\n setIsHovering(false);\n callback(event.dataTransfer, event);\n },\n onPaste: function onPaste(event) {\n event.persist();\n callback(event.clipboardData, event);\n }\n };\n};\n\nvar useDrop = function useDrop(options) {\n if (options === void 0) {\n options = {};\n }\n\n var optionsRef = useRef(options);\n optionsRef.current = options;\n\n var _a = __read(useState(false), 2),\n isHovering = _a[0],\n setIsHovering = _a[1];\n\n var callback = useCallback(function (dataTransfer, event) {\n var uri = dataTransfer.getData('text/uri-list');\n var dom = dataTransfer.getData('custom');\n\n if (dom && optionsRef.current.onDom) {\n var data = dom;\n\n try {\n data = JSON.parse(dom);\n } catch (e) {\n data = dom;\n }\n\n optionsRef.current.onDom(data, event);\n return;\n }\n\n if (uri && optionsRef.current.onUri) {\n optionsRef.current.onUri(uri, event);\n return;\n }\n\n if (dataTransfer.files && dataTransfer.files.length && optionsRef.current.onFiles) {\n optionsRef.current.onFiles(Array.from(dataTransfer.files), event);\n return;\n }\n\n if (dataTransfer.items && dataTransfer.items.length && optionsRef.current.onText) {\n dataTransfer.items[0].getAsString(function (text) {\n optionsRef.current.onText(text, event);\n });\n }\n }, []);\n var props = useMemo(function () {\n return getProps(callback, setIsHovering);\n }, [callback, setIsHovering]);\n return [props, {\n isHovering: isHovering\n }];\n};\n\nexport default useDrop;","var useDrag = function useDrag(config) {\n var getProps = function getProps(data) {\n return {\n key: config && config.getPropsWithKey === false ? undefined : JSON.stringify(data),\n draggable: 'true',\n onDragStart: function onDragStart(e) {\n if (config && config.onDragStart) {\n config.onDragStart(data, e);\n }\n\n e.dataTransfer.setData('custom', JSON.stringify(data));\n },\n onDragEnd: function onDragEnd(e) {\n if (config && config.onDragEnd) {\n config.onDragEnd(data, e);\n }\n }\n };\n };\n\n return getProps;\n};\n\nexport default useDrag;","import { useEffect } from 'react';\n\nvar useMount = function useMount(fn) {\n useEffect(function () {\n fn();\n }, []);\n};\n\nexport default useMount;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useRef, useState } from 'react';\nimport { getTargetElement } from '../utils/dom';\nvar initRect = {\n top: NaN,\n left: NaN,\n bottom: NaN,\n right: NaN,\n height: NaN,\n width: NaN\n};\n\nvar initState = __assign({\n text: ''\n}, initRect);\n\nfunction getRectFromSelection(selection) {\n if (!selection) {\n return initRect;\n }\n\n if (selection.rangeCount < 1) {\n return initRect;\n }\n\n var range = selection.getRangeAt(0);\n\n var _a = range.getBoundingClientRect(),\n height = _a.height,\n width = _a.width,\n top = _a.top,\n left = _a.left,\n right = _a.right,\n bottom = _a.bottom;\n\n return {\n height: height,\n width: width,\n top: top,\n left: left,\n right: right,\n bottom: bottom\n };\n}\n/**\n * 获取用户选取的文本或当前光标插入的位置\n * */\n\n\nfunction useTextSelection(target) {\n var _a = __read(useState(initState), 2),\n state = _a[0],\n setState = _a[1];\n\n var stateRef = useRef(state);\n stateRef.current = state;\n useEffect(function () {\n // 获取 target 需要放在 useEffect 里,否则存在组件未加载好的情况而导致元素获取不到\n var el = getTargetElement(target, document);\n\n if (!el) {\n return function () {};\n }\n\n var mouseupHandler = function mouseupHandler() {\n var selObj = null;\n var text = '';\n var rect = initRect;\n if (!window.getSelection) return;\n selObj = window.getSelection();\n text = selObj ? selObj.toString() : '';\n\n if (text) {\n rect = getRectFromSelection(selObj);\n setState(__assign(__assign(__assign({}, state), {\n text: text\n }), rect));\n }\n }; // 任意点击都需要清空之前的 range\n\n\n var mousedownHandler = function mousedownHandler() {\n if (!window.getSelection) return;\n\n if (stateRef.current.text) {\n setState(__assign({}, initState));\n }\n\n var selObj = window.getSelection();\n if (!selObj) return;\n selObj.removeAllRanges();\n };\n\n el.addEventListener('mouseup', mouseupHandler);\n document.addEventListener('mousedown', mousedownHandler);\n return function () {\n el.removeEventListener('mouseup', mouseupHandler);\n document.removeEventListener('mousedown', mousedownHandler);\n };\n }, [typeof target === 'function' ? undefined : target]);\n return state;\n}\n\nexport default useTextSelection;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useMemo, useState } from 'react';\nimport useCreation from '../useCreation';\n\nfunction getTargetValue(val, options) {\n if (options === void 0) {\n options = {};\n }\n\n var min = options.min,\n max = options.max;\n var target = val;\n\n if (typeof max === 'number') {\n target = Math.min(max, target);\n }\n\n if (typeof min === 'number') {\n target = Math.max(min, target);\n }\n\n return target;\n}\n\nfunction useCounter(initialValue, options) {\n if (initialValue === void 0) {\n initialValue = 0;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n var min = options.min,\n max = options.max; // get init value\n\n var init = useCreation(function () {\n return getTargetValue(initialValue, {\n min: min,\n max: max\n });\n }, []);\n\n var _a = __read(useState(init), 2),\n current = _a[0],\n setCurrent = _a[1];\n\n var actions = useMemo(function () {\n var setValue = function setValue(value) {\n setCurrent(function (c) {\n // get target value\n var target = typeof value === 'number' ? value : value(c);\n return getTargetValue(target, {\n max: max,\n min: min\n });\n });\n };\n\n var inc = function inc(delta) {\n if (delta === void 0) {\n delta = 1;\n }\n\n setValue(function (c) {\n return c + delta;\n });\n };\n\n var dec = function dec(delta) {\n if (delta === void 0) {\n delta = 1;\n }\n\n setValue(function (c) {\n return c - delta;\n });\n };\n\n var set = function set(value) {\n setValue(value);\n };\n\n var reset = function reset() {\n setValue(init);\n };\n\n return {\n inc: inc,\n dec: dec,\n set: set,\n reset: reset\n };\n }, [init, max, min]);\n return [current, actions];\n}\n\nexport default useCounter;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useCallback, useState } from 'react';\n\nvar useUpdate = function useUpdate() {\n var _a = __read(useState({}), 2),\n setState = _a[1];\n\n return useCallback(function () {\n return setState({});\n }, []);\n};\n\nexport default useUpdate;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState, useCallback, useRef } from 'react';\n\nfunction useEventTarget(options) {\n var _a = options || {},\n initialValue = _a.initialValue,\n transformer = _a.transformer;\n\n var _b = __read(useState(initialValue), 2),\n value = _b[0],\n setValue = _b[1];\n\n var reset = useCallback(function () {\n return setValue(initialValue);\n }, []);\n var transformerRef = useRef(transformer);\n transformerRef.current = transformer;\n var onChange = useCallback(function (e) {\n var _value = e.target.value;\n\n if (typeof transformerRef.current === 'function') {\n return setValue(transformerRef.current(_value));\n } // no transformer => U and T should be the same\n\n\n return setValue(_value);\n }, []);\n return [value, {\n onChange: onChange,\n reset: reset\n }];\n}\n\nexport default useEventTarget;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useState, useCallback, useRef } from 'react';\n\nvar dumpIndex = function dumpIndex(step, arr) {\n var index = step > 0 ? step - 1 // move forward\n : arr.length + step; // move backward\n\n if (index >= arr.length - 1) {\n index = arr.length - 1;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n return index;\n};\n\nvar split = function split(step, targetArr) {\n var index = dumpIndex(step, targetArr);\n return {\n _current: targetArr[index],\n _before: targetArr.slice(0, index),\n _after: targetArr.slice(index + 1)\n };\n};\n\nexport default function useHistoryTravel(initialValue) {\n var _a = __read(useState({\n present: initialValue,\n past: [],\n future: []\n }), 2),\n history = _a[0],\n setHistory = _a[1];\n\n var present = history.present,\n past = history.past,\n future = history.future;\n var initialValueRef = useRef(initialValue);\n var reset = useCallback(function () {\n var params = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n\n var _initial = params.length > 0 ? params[0] : initialValueRef.current;\n\n initialValueRef.current = _initial;\n setHistory({\n present: _initial,\n future: [],\n past: []\n });\n }, [history, setHistory]);\n var updateValue = useCallback(function (val) {\n setHistory({\n present: val,\n future: [],\n past: __spread(past, [present])\n });\n }, [history, setHistory]);\n\n var _forward = useCallback(function (step) {\n if (step === void 0) {\n step = 1;\n }\n\n if (future.length === 0) {\n return;\n }\n\n var _a = split(step, future),\n _before = _a._before,\n _current = _a._current,\n _after = _a._after;\n\n setHistory({\n past: __spread(past, [present], _before),\n present: _current,\n future: _after\n });\n }, [history, setHistory]);\n\n var _backward = useCallback(function (step) {\n if (step === void 0) {\n step = -1;\n }\n\n if (past.length === 0) {\n return;\n }\n\n var _a = split(step, past),\n _before = _a._before,\n _current = _a._current,\n _after = _a._after;\n\n setHistory({\n past: _before,\n present: _current,\n future: __spread(_after, [present], future)\n });\n }, [history, setHistory]);\n\n var go = useCallback(function (step) {\n var stepNum = typeof step === 'number' ? step : Number(step);\n\n if (stepNum === 0) {\n return;\n }\n\n if (stepNum > 0) {\n return _forward(stepNum);\n }\n\n _backward(stepNum);\n }, [_backward, _forward]);\n return {\n value: present,\n setValue: updateValue,\n backLength: past.length,\n forwardLength: future.length,\n go: go,\n back: useCallback(function () {\n go(-1);\n }, [go]),\n forward: useCallback(function () {\n go(1);\n }, [go]),\n reset: reset\n };\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useState } from 'react';\nimport useDebounceFn from '../useDebounceFn';\nimport useUpdateEffect from '../useUpdateEffect';\nimport useUnmount from '../useUnmount';\n\nfunction useDebounceEffect(effect, deps, options) {\n var _a = __read(useState({}), 2),\n flag = _a[0],\n setFlag = _a[1];\n\n var _b = useDebounceFn(function () {\n setFlag({});\n }, options),\n run = _b.run,\n cancel = _b.cancel;\n\n useEffect(function () {\n return run();\n }, deps);\n useUnmount(cancel);\n useUpdateEffect(effect, [flag]);\n}\n\nexport default useDebounceEffect;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport Cookies from 'js-cookie';\nimport { useCallback, useState } from 'react';\nimport { isFunction } from '../utils';\n\nfunction useCookieState(cookieKey, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _a = __read(useState(function () {\n var cookieValue = Cookies.get(cookieKey);\n if (typeof cookieValue === 'string') return cookieValue;\n if (isFunction(options.defaultValue)) return options.defaultValue();\n return options.defaultValue;\n }), 2),\n state = _a[0],\n setState = _a[1]; // usePersistFn 保证返回的 updateState 不会变化\n\n\n var updateState = useCallback(function (newValue, newOptions) {\n if (newOptions === void 0) {\n newOptions = {};\n }\n\n var _a = __assign(__assign({}, options), newOptions),\n defaultValue = _a.defaultValue,\n restOptions = __rest(_a, [\"defaultValue\"]);\n\n setState(function (prevState) {\n var value = isFunction(newValue) ? newValue(prevState) : newValue;\n\n if (value === undefined || value === null) {\n Cookies.remove(cookieKey);\n } else {\n Cookies.set(cookieKey, value, restOptions);\n }\n\n return value;\n });\n }, [cookieKey, options]);\n return [state, updateState];\n}\n\nexport default useCookieState;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useCallback, useState } from 'react';\nimport { isFunction } from '../utils';\n\nvar useSetState = function useSetState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _a = __read(useState(initialState), 2),\n state = _a[0],\n setState = _a[1];\n\n var setMergeState = useCallback(function (patch) {\n setState(function (prevState) {\n return __assign(__assign({}, prevState), isFunction(patch) ? patch(prevState) : patch);\n });\n }, []);\n return [state, setMergeState];\n};\n\nexport default useSetState;","import { useEffect, useRef } from 'react';\n\nfunction useInterval(fn, delay, options) {\n var immediate = options === null || options === void 0 ? void 0 : options.immediate;\n var fnRef = useRef();\n fnRef.current = fn;\n useEffect(function () {\n var _a;\n\n if (delay === undefined || delay === null) return;\n\n if (immediate) {\n (_a = fnRef.current) === null || _a === void 0 ? void 0 : _a.call(fnRef);\n }\n\n var timer = setInterval(function () {\n var _a;\n\n (_a = fnRef.current) === null || _a === void 0 ? void 0 : _a.call(fnRef);\n }, delay);\n return function () {\n clearInterval(timer);\n };\n }, [delay]);\n}\n\nexport default useInterval;","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nimport { useEffect, useRef } from 'react';\nexport default function useWhyDidYouUpdate(componentName, props) {\n var prevProps = useRef({});\n useEffect(function () {\n if (prevProps.current) {\n var allKeys = Object.keys(__assign(__assign({}, prevProps.current), props));\n var changedProps_1 = {};\n allKeys.forEach(function (key) {\n if (prevProps.current[key] !== props[key]) {\n changedProps_1[key] = {\n from: prevProps.current[key],\n to: props[key]\n };\n }\n });\n\n if (Object.keys(changedProps_1).length) {\n console.log('[why-did-you-update]', componentName, changedProps_1);\n }\n }\n\n prevProps.current = props;\n });\n}","import { useEffect, useRef } from 'react';\nimport useUnmount from '../useUnmount';\nvar DEFAULT_OPTIONS = {\n restoreOnUnmount: false\n};\n\nfunction useTitle(title, options) {\n if (options === void 0) {\n options = DEFAULT_OPTIONS;\n }\n\n var titleRef = useRef(document.title);\n useEffect(function () {\n document.title = title;\n }, [title]);\n useUnmount(function () {\n if (options && options.restoreOnUnmount) {\n document.title = titleRef.current;\n }\n });\n}\n\nexport default typeof document !== 'undefined' ? useTitle : function () {};","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useState } from 'react';\n\nfunction getConnection() {\n var nav = navigator;\n if (typeof nav !== 'object') return null;\n return nav.connection || nav.mozConnection || nav.webkitConnection;\n}\n\nfunction getConnectionProperty() {\n var c = getConnection();\n if (!c) return {};\n return {\n rtt: c.rtt,\n type: c.type,\n saveData: c.saveData,\n downlink: c.downlink,\n downlinkMax: c.downlinkMax,\n effectiveType: c.effectiveType\n };\n}\n\nfunction useNetwork() {\n var _a = __read(useState(function () {\n return __assign({\n since: undefined,\n online: navigator.onLine\n }, getConnectionProperty());\n }), 2),\n state = _a[0],\n setState = _a[1];\n\n useEffect(function () {\n var onOnline = function onOnline() {\n setState(function (prevState) {\n return __assign(__assign({}, prevState), {\n online: true,\n since: new Date()\n });\n });\n };\n\n var onOffline = function onOffline() {\n setState(function (prevState) {\n return __assign(__assign({}, prevState), {\n online: false,\n since: new Date()\n });\n });\n };\n\n var onConnectionChange = function onConnectionChange() {\n setState(function (prevState) {\n return __assign(__assign({}, prevState), getConnectionProperty());\n });\n };\n\n window.addEventListener('online', onOnline);\n window.addEventListener('offline', onOffline);\n var connection = getConnection();\n connection === null || connection === void 0 ? void 0 : connection.addEventListener('change', onConnectionChange);\n return function () {\n window.removeEventListener('online', onOnline);\n window.removeEventListener('offline', onOffline);\n connection === null || connection === void 0 ? void 0 : connection.removeEventListener('change', onConnectionChange);\n };\n }, []);\n return state;\n}\n\nexport default useNetwork;","import { useEffect } from 'react';\nimport usePersistFn from '../usePersistFn';\n\nfunction useTimeout(fn, delay) {\n var timerFn = usePersistFn(fn);\n useEffect(function () {\n if (delay === undefined || delay === null) return;\n var timer = setTimeout(function () {\n timerFn();\n }, delay);\n return function () {\n clearTimeout(timer);\n };\n }, [delay, timerFn]);\n}\n\nexport default useTimeout;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useRef, useState } from 'react';\nimport useCreation from '../useCreation'; // k:v 原对象:代理过的对象\n\nvar proxyMap = new WeakMap(); // k:v 代理过的对象:原对象\n\nvar rawMap = new WeakMap();\n\nfunction isObject(val) {\n return typeof val === 'object' && val !== null;\n}\n\nfunction observer(initialVal, cb) {\n var existingProxy = proxyMap.get(initialVal); // 添加缓存 防止重新构建proxy\n\n if (existingProxy) {\n return existingProxy;\n } // 防止代理已经代理过的对象\n // https://github.com/alibaba/hooks/issues/839\n\n\n if (rawMap.has(initialVal)) {\n return initialVal;\n }\n\n var proxy = new Proxy(initialVal, {\n get: function get(target, key, receiver) {\n var res = Reflect.get(target, key, receiver);\n return isObject(res) ? observer(res, cb) : Reflect.get(target, key);\n },\n set: function set(target, key, val) {\n var ret = Reflect.set(target, key, val);\n cb();\n return ret;\n },\n deleteProperty: function deleteProperty(target, key) {\n var ret = Reflect.deleteProperty(target, key);\n cb();\n return ret;\n }\n });\n proxyMap.set(initialVal, proxy);\n rawMap.set(proxy, initialVal);\n return proxy;\n}\n\nfunction useReactive(initialState) {\n var _a = __read(useState({}), 2),\n setFlag = _a[1];\n\n var stateRef = useRef(initialState);\n var state = useCreation(function () {\n return observer(stateRef.current, function () {\n setFlag({});\n });\n }, []);\n return state;\n}\n\nexport default useReactive;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport useUnmount from '../useUnmount';\nimport usePersistFn from '../usePersistFn';\nimport { useEffect, useRef, useState } from 'react';\nexport var ReadyState;\n\n(function (ReadyState) {\n ReadyState[ReadyState[\"Connecting\"] = 0] = \"Connecting\";\n ReadyState[ReadyState[\"Open\"] = 1] = \"Open\";\n ReadyState[ReadyState[\"Closing\"] = 2] = \"Closing\";\n ReadyState[ReadyState[\"Closed\"] = 3] = \"Closed\";\n})(ReadyState || (ReadyState = {}));\n\nexport default function useWebSocket(socketUrl, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _a = options.reconnectLimit,\n reconnectLimit = _a === void 0 ? 3 : _a,\n _b = options.reconnectInterval,\n reconnectInterval = _b === void 0 ? 3 * 1000 : _b,\n _c = options.manual,\n manual = _c === void 0 ? false : _c,\n onOpen = options.onOpen,\n onClose = options.onClose,\n onMessage = options.onMessage,\n onError = options.onError;\n var reconnectTimesRef = useRef(0);\n var reconnectTimerRef = useRef();\n var websocketRef = useRef();\n var unmountedRef = useRef(false);\n\n var _d = __read(useState(), 2),\n latestMessage = _d[0],\n setLatestMessage = _d[1];\n\n var _e = __read(useState(ReadyState.Closed), 2),\n readyState = _e[0],\n setReadyState = _e[1];\n /**\n * 重连\n */\n\n\n var reconnect = usePersistFn(function () {\n var _a;\n\n if (reconnectTimesRef.current < reconnectLimit && ((_a = websocketRef.current) === null || _a === void 0 ? void 0 : _a.readyState) !== ReadyState.Open) {\n reconnectTimerRef.current && clearTimeout(reconnectTimerRef.current);\n reconnectTimerRef.current = setTimeout(function () {\n connectWs();\n reconnectTimesRef.current++;\n }, reconnectInterval);\n }\n });\n var connectWs = usePersistFn(function () {\n reconnectTimerRef.current && clearTimeout(reconnectTimerRef.current);\n\n if (websocketRef.current) {\n websocketRef.current.close();\n }\n\n try {\n websocketRef.current = new WebSocket(socketUrl);\n\n websocketRef.current.onerror = function (event) {\n var _a;\n\n reconnect();\n onError && onError(event);\n setReadyState(((_a = websocketRef.current) === null || _a === void 0 ? void 0 : _a.readyState) || ReadyState.Closed);\n };\n\n websocketRef.current.onopen = function (event) {\n var _a;\n\n onOpen && onOpen(event);\n reconnectTimesRef.current = 0;\n setReadyState(((_a = websocketRef.current) === null || _a === void 0 ? void 0 : _a.readyState) || ReadyState.Closed);\n };\n\n websocketRef.current.onmessage = function (message) {\n onMessage && onMessage(message);\n setLatestMessage(message);\n };\n\n websocketRef.current.onclose = function (event) {\n var _a;\n\n if (unmountedRef.current) {\n return;\n }\n\n reconnect();\n onClose && onClose(event);\n setReadyState(((_a = websocketRef.current) === null || _a === void 0 ? void 0 : _a.readyState) || ReadyState.Closed);\n };\n } catch (error) {\n throw error;\n }\n });\n /**\n * 发送消息\n * @param message\n */\n\n var sendMessage = usePersistFn(function (message) {\n var _a;\n\n if (readyState === ReadyState.Open) {\n (_a = websocketRef.current) === null || _a === void 0 ? void 0 : _a.send(message);\n } else {\n throw new Error('WebSocket disconnected');\n }\n });\n /**\n * 手动 connect\n */\n\n var connect = usePersistFn(function () {\n reconnectTimesRef.current = 0;\n connectWs();\n });\n /**\n * disconnect websocket\n */\n\n var disconnect = usePersistFn(function () {\n var _a;\n\n reconnectTimerRef.current && clearTimeout(reconnectTimerRef.current);\n reconnectTimesRef.current = reconnectLimit;\n (_a = websocketRef.current) === null || _a === void 0 ? void 0 : _a.close();\n });\n useEffect(function () {\n // 初始连接\n if (!manual) {\n connect();\n }\n }, [socketUrl, manual]);\n useUnmount(function () {\n unmountedRef.current = true;\n disconnect();\n });\n return {\n latestMessage: latestMessage,\n sendMessage: sendMessage,\n connect: connect,\n disconnect: disconnect,\n readyState: readyState,\n webSocketIns: websocketRef.current\n };\n}","import { useEffect } from 'react'; // image/vnd.microsoft.icon MIME类型只有当图像真的是ICO文件时才会起作用\n// image/x-icon 会同时也适用于位图与GIF\n// 主要是为了兼容扩展名为ico的非ico文件\n\nvar ImgTypeMap = {\n SVG: 'image/svg+xml',\n ICO: 'image/x-icon',\n GIF: 'image/gif',\n PNG: 'image/png'\n};\n\nvar useFavicon = function useFavicon(favUrl) {\n useEffect(function () {\n if (!favUrl) return;\n var cutUrl = favUrl.split('.');\n var imgSuffix = cutUrl[cutUrl.length - 1].toLocaleUpperCase();\n var link = document.querySelector(\"link[rel*='icon']\") || document.createElement('link');\n link.type = ImgTypeMap[imgSuffix];\n link.href = favUrl; // 大部分浏览器只会识别'icon' 只有IE会识别整个名称'shortcut icon'\n\n link.rel = 'shortcut icon';\n document.getElementsByTagName('head')[0].appendChild(link);\n }, [favUrl]);\n};\n\nexport default useFavicon;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useEffect, useMemo, useState } from 'react';\nimport dayjs from 'dayjs';\nimport usePersistFn from '../usePersistFn';\n\nvar calcLeft = function calcLeft(t) {\n if (!t) {\n return 0;\n } // https://stackoverflow.com/questions/4310953/invalid-date-in-safari\n\n\n var left = dayjs(t).valueOf() - new Date().getTime();\n\n if (left < 0) {\n return 0;\n }\n\n return left;\n};\n\nvar parseMs = function parseMs(milliseconds) {\n return {\n days: Math.floor(milliseconds / 86400000),\n hours: Math.floor(milliseconds / 3600000) % 24,\n minutes: Math.floor(milliseconds / 60000) % 60,\n seconds: Math.floor(milliseconds / 1000) % 60,\n milliseconds: Math.floor(milliseconds) % 1000\n };\n};\n\nvar useCountdown = function useCountdown(options) {\n var _a = options || {},\n targetDate = _a.targetDate,\n _b = _a.interval,\n interval = _b === void 0 ? 1000 : _b,\n onEnd = _a.onEnd;\n\n var _c = __read(useState(targetDate), 2),\n target = _c[0],\n setTargetDate = _c[1];\n\n var _d = __read(useState(function () {\n return calcLeft(target);\n }), 2),\n timeLeft = _d[0],\n setTimeLeft = _d[1];\n\n var onEndPersistFn = usePersistFn(function () {\n if (onEnd) {\n onEnd();\n }\n });\n useEffect(function () {\n if (!target) {\n // for stop\n setTimeLeft(0);\n return;\n } // 立即执行一次\n\n\n setTimeLeft(calcLeft(target));\n var timer = setInterval(function () {\n var targetLeft = calcLeft(target);\n setTimeLeft(targetLeft);\n\n if (targetLeft === 0) {\n clearInterval(timer);\n onEndPersistFn();\n }\n }, interval);\n return function () {\n return clearInterval(timer);\n };\n }, [target, interval]);\n var formattedRes = useMemo(function () {\n return parseMs(timeLeft);\n }, [timeLeft]);\n return [timeLeft, setTargetDate, formattedRes];\n};\n\nexport default useCountdown;","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nvar __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport { useRef, useCallback } from 'react';\n\nfunction useLockFn(fn) {\n var _this = this;\n\n var lockRef = useRef(false);\n return useCallback(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return __awaiter(_this, void 0, void 0, function () {\n var ret, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (lockRef.current) return [2\n /*return*/\n ];\n lockRef.current = true;\n _a.label = 1;\n\n case 1:\n _a.trys.push([1, 3,, 4]);\n\n return [4\n /*yield*/\n , fn.apply(void 0, __spread(args))];\n\n case 2:\n ret = _a.sent();\n lockRef.current = false;\n return [2\n /*return*/\n , ret];\n\n case 3:\n e_1 = _a.sent();\n lockRef.current = false;\n throw e_1;\n\n case 4:\n return [2\n /*return*/\n ];\n }\n });\n });\n }, [fn]);\n}\n\nexport default useLockFn;","import { useEffect, useRef } from 'react';\n\nvar useTrackedEffect = function useTrackedEffect(effect, deps) {\n var previousDepsRef = useRef();\n\n var diffTwoDeps = function diffTwoDeps(deps1, deps2) {\n //Let's do a reference equality check on 2 dependency list.\n //If deps1 is defined, we iterate over deps1 and do comparison on each element with equivalent element from deps2\n //As this func is used only in this hook, we assume 2 deps always have same length.\n return deps1 ? deps1.map(function (_ele, idx) {\n return deps1[idx] !== deps2[idx] ? idx : -1;\n }).filter(function (ele) {\n return ele >= 0;\n }) : deps2 ? deps2.map(function (_ele, idx) {\n return idx;\n }) : [];\n };\n\n useEffect(function () {\n var changes = diffTwoDeps(previousDepsRef.current, deps);\n var previousDeps = previousDepsRef.current;\n previousDepsRef.current = deps;\n return effect(changes, previousDeps, deps);\n }, deps);\n};\n\nexport default useTrackedEffect;","import { useRef, useEffect } from 'react';\n\nvar useUnmountedRef = function useUnmountedRef() {\n var unmountedRef = useRef(false);\n useEffect(function () {\n unmountedRef.current = false;\n return function () {\n unmountedRef.current = true;\n };\n }, []);\n return unmountedRef;\n};\n\nexport default useUnmountedRef;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport { useState, useRef, useEffect, useMemo } from 'react';\nimport { getTargetElement } from '../utils/dom';\nexport default function useExternal(path, options) {\n var isPath = typeof path === 'string' && path !== '';\n\n var _a = __read(useState(isPath ? 'loading' : 'unset'), 2),\n status = _a[0],\n setStatus = _a[1];\n\n var _b = __read(useState(isPath), 2),\n active = _b[0],\n setActive = _b[1];\n\n var ref = useRef();\n useEffect(function () {\n var _a;\n\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.remove();\n\n if (!isPath || !active) {\n setStatus('unset');\n ref.current = undefined;\n return;\n }\n\n setStatus('loading'); // Create external element\n\n var pathname = path.replace(/[|#].*$/, '');\n\n if ((options === null || options === void 0 ? void 0 : options.type) === 'css' || /(^css!|\\.css$)/.test(pathname)) {\n // css\n ref.current = document.createElement('link');\n ref.current.rel = 'stylesheet';\n ref.current.href = path;\n ref.current.media = (options === null || options === void 0 ? void 0 : options.media) || 'all'; // IE9+\n\n var isLegacyIECss = ('hideFocus' in ref.current); // use preload in IE Edge (to detect load errors)\n\n if (isLegacyIECss && ref.current.relList) {\n ref.current.rel = 'preload';\n ref.current.as = 'style';\n }\n\n ref.current.setAttribute('data-status', 'loading');\n document.head.appendChild(ref.current);\n } else if ((options === null || options === void 0 ? void 0 : options.type) === 'js' || /(^js!|\\.js$)/.test(pathname)) {\n // javascript\n ref.current = document.createElement('script');\n ref.current.src = path;\n ref.current.async = (options === null || options === void 0 ? void 0 : options.async) === undefined ? true : options === null || options === void 0 ? void 0 : options.async;\n ref.current.setAttribute('data-status', 'loading');\n document.body.appendChild(ref.current);\n } else if ((options === null || options === void 0 ? void 0 : options.type) === 'img' || /(^img!|\\.(png|gif|jpg|svg|webp)$)/.test(pathname)) {\n // image\n ref.current = document.createElement('img');\n ref.current.src = path;\n ref.current.setAttribute('data-status', 'loading'); // append to wrapper\n\n var wrapper = getTargetElement(options === null || options === void 0 ? void 0 : options.target) || document.body;\n\n if (wrapper) {\n wrapper.appendChild(ref.current);\n }\n } else {\n // do nothing\n console.error(\"Cannot infer the type of external resource, and please provide a type ('js' | 'css' | 'img'). \" + \"Refer to the https://ahooks.js.org/hooks/dom/use-external/#options\");\n }\n\n if (!ref.current) return; // Bind setAttribute Event\n\n var setAttributeFromEvent = function setAttributeFromEvent(event) {\n var _a;\n\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.setAttribute('data-status', event.type === 'load' ? 'ready' : 'error');\n };\n\n ref.current.addEventListener('load', setAttributeFromEvent);\n ref.current.addEventListener('error', setAttributeFromEvent);\n\n var setStateFromEvent = function setStateFromEvent(event) {\n setStatus(event.type === 'load' ? 'ready' : 'error');\n };\n\n ref.current.addEventListener('load', setStateFromEvent);\n ref.current.addEventListener('error', setStateFromEvent);\n return function () {\n var _a, _b;\n\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('load', setStateFromEvent);\n (_b = ref.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('error', setStateFromEvent);\n };\n }, [path, active]);\n var action = useMemo(function () {\n var unload = function unload() {\n return setActive(false);\n };\n\n var load = function load() {\n return setActive(true);\n };\n\n var toggle = function toggle() {\n return setActive(function (value) {\n return !value;\n });\n };\n\n return {\n toggle: toggle,\n load: load,\n unload: unload\n };\n }, [setActive]);\n return [status, action];\n}","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nimport React from 'react';\nimport useUnmountedRef from '../useUnmountedRef';\n\nfunction useSafeState(initialState) {\n var unmountedRef = useUnmountedRef();\n\n var _a = __read(React.useState(initialState), 2),\n state = _a[0],\n setState = _a[1];\n\n var setCurrentState = React.useCallback(function (currentState) {\n /** 如果组件已经卸载则不再更新 state */\n if (unmountedRef.current) return;\n setState(currentState);\n }, []);\n return [state, setCurrentState];\n}\n\nexport default useSafeState;","var __read = this && this.__read || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n};\n\nvar __spread = this && this.__spread || function () {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n};\n\nimport useRequest, { UseRequestProvider } from '@ahooksjs/use-request';\nimport useControllableValue from './useControllableValue';\nimport useDynamicList from './useDynamicList';\nimport useEventEmitter from './useEventEmitter';\nimport useVirtualList from './useVirtualList';\nimport { configResponsive, useResponsive } from './useResponsive';\nimport useSize from './useSize';\nimport useLocalStorageState from './useLocalStorageState';\nimport useSessionStorageState from './useSessionStorageState';\nimport useUpdateEffect from './useUpdateEffect';\nimport useUpdateLayoutEffect from './useUpdateLayoutEffect';\nimport useBoolean from './useBoolean';\nimport useToggle from './useToggle';\nimport useDocumentVisibility from './useDocumentVisibility';\nimport useSelections from './useSelections';\nimport useThrottle from './useThrottle';\nimport useThrottleFn from './useThrottleFn';\nimport useThrottleEffect from './useThrottleEffect';\nimport useDebounce from './useDebounce';\nimport useDebounceFn from './useDebounceFn';\nimport usePrevious from './usePrevious';\nimport useMouse from './useMouse';\nimport useScroll from './useScroll';\nimport useClickAway from './useClickAway';\nimport useFullscreen from './useFullscreen';\nimport useInViewport from './useInViewport';\nimport useKeyPress from './useKeyPress';\nimport useEventListener from './useEventListener';\nimport useHover from './useHover';\nimport useUnmount from './useUnmount';\nimport useAntdTable from './useAntdTable';\nimport useFusionTable from './useFusionTable';\nimport useSet from './useSet';\nimport usePersistFn from './usePersistFn';\nimport useMap from './useMap';\nimport useCreation from './useCreation';\nimport useDrop from './useDrop';\nimport useDrag from './useDrag';\nimport useMount from './useMount';\nimport useTextSelection from './useTextSelection';\nimport useCounter from './useCounter';\nimport useUpdate from './useUpdate';\nimport useEventTarget from './useEventTarget';\nimport useHistoryTravel from './useHistoryTravel';\nimport useDebounceEffect from './useDebounceEffect';\nimport useCookieState from './useCookieState';\nimport useSetState from './useSetState';\nimport useInterval from './useInterval';\nimport useWhyDidYouUpdate from './useWhyDidYouUpdate';\nimport useTitle from './useTitle';\nimport useNetwork from './useNetwork';\nimport useTimeout from './useTimeout';\nimport useReactive from './useReactive';\nimport useFavicon from './useFavicon';\nimport useCountDown from './useCountDown';\nimport useWebSocket from './useWebSocket';\nimport useLockFn from './useLockFn';\nimport useTrackedEffect from './useTrackedEffect';\nimport useUnmountedRef from './useUnmountedRef';\nimport useExternal from './useExternal';\nimport useSafeState from './useSafeState';\n\nvar useControlledValue = function useControlledValue() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n console.warn('useControlledValue is deprecated and will be removed in the next major version. Please use useControllableValue instead.');\n return useControllableValue.apply(void 0, __spread(args));\n};\n\nexport { useControlledValue, useControllableValue, useDynamicList, useVirtualList, useResponsive, useEventEmitter, useLocalStorageState, useSessionStorageState, useSize, configResponsive, useUpdateEffect, useUpdateLayoutEffect, useBoolean, useToggle, useDocumentVisibility, useSelections, useThrottle, useThrottleFn, useThrottleEffect, useDebounce, useDebounceFn, useDebounceEffect, usePrevious, useMouse, useScroll, useClickAway, useFullscreen, useInViewport, useKeyPress, useEventListener, useHover, useRequest, UseRequestProvider, useAntdTable, useUnmount, useSet, usePersistFn, useMap, useCreation, useDrag, useDrop, useMount, useCounter, useUpdate, useTextSelection, useEventTarget, useHistoryTravel, useFusionTable, useCookieState, useSetState, useInterval, useWhyDidYouUpdate, useTitle, useNetwork, useTimeout, useReactive, useFavicon, useCountDown, useTrackedEffect, useWebSocket, useLockFn, useUnmountedRef, useExternal, useSafeState };","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * A local reference to the document.\n */\nvar document = window.document;\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array<Object>} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the <body>\n // or <html> element, update the intersection rect.\n // Note: <body> and <html> cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use <html>/<body> instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a <slot>, return the parent of a slot.\n return parent.assignedSlot.parentNode;\n }\n\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5-1-1h-5l-1 1H5v2h14V4z\"\n}), 'DeleteOutline');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M9 11.75c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zm6 0c-.69 0-1.25.56-1.25 1.25s.56 1.25 1.25 1.25 1.25-.56 1.25-1.25-.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c.78 0 1.53-.09 2.25-.26.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z\"\n}), 'Face');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M7 6h10l-5.01 6.3L7 6zm-2.75-.39C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z\"\n}), 'FilterAltOutlined');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"\n}), 'KeyboardArrowDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"\n}), 'Launch');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\"\n}), 'ShoppingCart');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z\"\n}), 'Sort');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z\"\n}), 'VerifiedUser');\n\nexports.default = _default;","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","const colorString = require('color-string');\nconst convert = require('color-convert');\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = colorString.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in colorString.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to[self.model](args);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst args = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn colorString.to.rgb.percent(args);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn colorString.to.hex(this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn colorString.to.hex(rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...args) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (args.length > 0) {\n\t\t\treturn new Color(args, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...args) {\n\t\tlet color = args[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(args, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] || (limiters[m] = []))[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nmodule.exports = Color;\n","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","import { useState, useCallback, useEffect, useRef } from 'react';\n\nconst DEFAULT_ROOT_MARGIN = '0px';\nconst DEFAULT_THRESHOLD = [0];\n\n// eslint-disable-next-line no-undef\nexport type IntersectionObserverHookArgs = IntersectionObserverInit;\n\nexport type IntersectionObserverHookRefCallbackNode = Element | null;\n\nexport type IntersectionObserverHookRefCallback = (\n node: IntersectionObserverHookRefCallbackNode,\n) => void;\n\nexport type IntersectionObserverHookRootRefCallbackNode = IntersectionObserverHookArgs['root'];\n\nexport type IntersectionObserverHookRootRefCallback = (\n node: IntersectionObserverHookRootRefCallbackNode,\n) => void;\n\nexport type IntersectionObserverHookResult = [\n IntersectionObserverHookRefCallback,\n {\n entry: IntersectionObserverEntry | undefined;\n rootRef: IntersectionObserverHookRootRefCallback;\n },\n];\n\n// For more info:\n// https://developers.google.com/web/updates/2016/04/intersectionobserver\n// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\nfunction useIntersectionObserver(\n args?: IntersectionObserverHookArgs,\n): IntersectionObserverHookResult {\n const rootMargin = args?.rootMargin ?? DEFAULT_ROOT_MARGIN;\n const threshold = args?.threshold ?? DEFAULT_THRESHOLD;\n\n const nodeRef = useRef<IntersectionObserverHookRefCallbackNode>(null);\n const rootRef = useRef<IntersectionObserverHookRootRefCallbackNode>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const unobserve = useCallback(() => {\n // Disconnect the current observer (if there is one)\n const currentObserver = observerRef.current;\n currentObserver?.disconnect();\n observerRef.current = null;\n }, []);\n\n const observe = useCallback(() => {\n const node = nodeRef.current;\n if (node) {\n const root = rootRef.current;\n const options = { root, rootMargin, threshold };\n // Create a observer for current \"node\" with given options.\n const observer = new IntersectionObserver(([newEntry]) => {\n setEntry(newEntry);\n }, options);\n observer.observe(node);\n observerRef.current = observer;\n }\n }, [rootMargin, threshold]);\n\n const initializeObserver = useCallback(() => {\n unobserve();\n observe();\n }, [observe, unobserve]);\n\n const refCallback = useCallback<IntersectionObserverHookRefCallback>(\n (node) => {\n nodeRef.current = node;\n initializeObserver();\n },\n [initializeObserver],\n );\n\n const rootRefCallback = useCallback<IntersectionObserverHookRootRefCallback>(\n (rootNode) => {\n rootRef.current = rootNode;\n initializeObserver();\n },\n [initializeObserver],\n );\n\n useEffect(() => {\n // After React 18, StrictMode unmounts and mounts components to be sure\n // if they are resilient effects being mounted and destroyed multiple times.\n // This a behavior to be sure nothing breaks when off-screen components\n // can preserve their state with future React versions.\n // So in StrictMode, React unmounts the component, clean-up of this useEffect gets triggered and\n // we stop observing the node. But we need to start observing after component re-mounts with its preserved state.\n // So to handle this case, we call initializeObserver here.\n // https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-strict-mode\n initializeObserver();\n return () => {\n // We disconnect the observer on unmount to prevent memory leaks etc.\n unobserve();\n };\n }, [initializeObserver, unobserve]);\n\n return [refCallback, { entry, rootRef: rootRefCallback }];\n}\n\nexport default useIntersectionObserver;\n","import { useEffect, useState } from 'react';\nimport useIntersectionObserver, {\n IntersectionObserverHookArgs,\n IntersectionObserverHookResult,\n} from './useIntersectionObserver';\n\nexport type TrackVisibilityHookArgs = IntersectionObserverHookArgs;\n\nexport type TrackVisibilityHookResult = [\n IntersectionObserverHookResult[0],\n IntersectionObserverHookResult[1] & {\n isVisible: boolean;\n wasEverVisible: boolean;\n },\n];\n\nfunction useTrackVisibility(\n args?: IntersectionObserverHookArgs,\n): TrackVisibilityHookResult {\n const [ref, result] = useIntersectionObserver(args);\n const isVisible = Boolean(result.entry?.isIntersecting);\n const [wasEverVisible, setWasEverVisible] = useState(isVisible);\n\n useEffect(() => {\n if (isVisible) {\n setWasEverVisible(isVisible);\n }\n }, [isVisible]);\n\n return [ref, { ...result, isVisible, wasEverVisible }];\n}\n\nexport default useTrackVisibility;\n","import { useEffect } from 'react';\nimport {\n useTrackVisibility,\n IntersectionObserverHookArgs,\n IntersectionObserverHookRefCallback as UseInfiniteScrollHookRefCallback,\n IntersectionObserverHookRootRefCallback as UseInfiniteScrollHookRootRefCallback,\n} from 'react-intersection-observer-hook';\n\nconst DEFAULT_DELAY_IN_MS = 100;\n\nexport {\n UseInfiniteScrollHookRefCallback,\n UseInfiniteScrollHookRootRefCallback,\n};\n\nexport type UseInfiniteScrollHookResult = [\n UseInfiniteScrollHookRefCallback,\n { rootRef: UseInfiniteScrollHookRootRefCallback },\n];\n\nexport type UseInfiniteScrollHookArgs = Pick<\n IntersectionObserverHookArgs,\n // We pass this to 'IntersectionObserver'. We can use it to configure when to trigger 'onLoadMore'.\n 'rootMargin'\n> & {\n // Some sort of \"is fetching\" info of the request.\n loading: boolean;\n // If the list has more items to load.\n hasNextPage: boolean;\n // The callback function to execute when the 'onLoadMore' is triggered.\n // eslint-disable-next-line no-undef\n onLoadMore: VoidFunction;\n // Flag to stop infinite scrolling. Can be used in case of an error etc too.\n disabled?: boolean;\n // How long it should wait before triggering 'onLoadMore'.\n delayInMs?: number;\n};\n\nfunction useInfiniteScroll({\n loading,\n hasNextPage,\n onLoadMore,\n rootMargin,\n disabled,\n delayInMs = DEFAULT_DELAY_IN_MS,\n}: UseInfiniteScrollHookArgs): UseInfiniteScrollHookResult {\n const [ref, { rootRef, isVisible }] = useTrackVisibility({\n rootMargin,\n });\n\n const shouldLoadMore = !disabled && !loading && isVisible && hasNextPage;\n\n // eslint-disable-next-line consistent-return\n useEffect(() => {\n if (shouldLoadMore) {\n // When we trigger 'onLoadMore' and new items are added to the list,\n // right before they become rendered on the screen, 'loading' becomes false\n // and 'isVisible' can be true for a brief time, based on the scroll position.\n // So, it triggers 'onLoadMore' just after the first one is finished.\n // We use a small delay here to prevent this kind of situations.\n // It can be configured by hook args.\n const timer = setTimeout(() => {\n onLoadMore();\n }, delayInMs);\n return () => {\n clearTimeout(timer);\n };\n }\n }, [onLoadMore, shouldLoadMore, delayInMs]);\n\n return [ref, { rootRef }];\n}\n\nexport default useInfiniteScroll;\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","// extracted by mini-css-extract-plugin\nexport default {};"],"names":["createCancelablePromiseList","list","add","cancelablePromise","push","finally","filter","item","cancelAll","forEach","promise","cancel","isEmpty","length","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_defineProperty","obj","key","value","defineProperty","configurable","writable","createStore","reducer","props","onStoreStateChange","state","initialState","getState","dispatch","action","payload","prevState","target","i","arguments","source","getOwnPropertyDescriptors","defineProperties","_objectSpread","type","pendingRequests","flatten","values","reduce","a","b","concat","getItemsCount","collections","sum","collection","items","autocompleteId","generateAutocompleteId","noop","getNormalizedSources","getSources","params","seenSourceIds","Promise","resolve","then","sources","Array","isArray","all","maybeSource","Boolean","map","sourceId","includes","Error","JSON","stringify","normalizedSource","getItemInputValue","_ref","query","getItemUrl","onSelect","_ref2","setIsOpen","onActive","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","o","minLen","n","prototype","toString","call","slice","constructor","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","isDescription","execute","preResolve","itemsOrDescription","description","requests","queries","transformResponse","acc","current","searchClient","requesterId","container","find","_container$items","request","maybeDescription","responses","postResolve","matches","response","results","transform","rawResults","result","_hits","hits","hit","__autocomplete_indexName","index","__autocomplete_queryID","queryID","facetHits","_facetHits","facetHit","label","count","_highlightResult","highlighted","mapToAlgoliaResponse","every","undefined","createInternalCancelablePromise","onfulfilled","onrejected","createCallback","catch","onfinally","onCancelList","isCanceled","callbacks","callback","createCancelablePromise","executor","reject","cancelable","onResult","fallback","arg","getActiveItem","collectionIndex","collectionsCount","nextValue","activeItemId","getCollectionFromActiveItemId","isOffsetFound","counter","previousItemsOffset","currentCollection","getRelativeActiveItemId","itemInputValue","itemUrl","reason","_excluded","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","lastStalledId","runConcurrentSafePromise","basePromiseId","latestResolvedId","latestResolvedValue","currentPromiseId","x","createConcurrentSafePromise","onInput","event","_ref$nextState","nextState","refresh","store","setters","environment","clearTimeout","setCollections","setQuery","setActiveItemId","setStatus","defaultActiveItemId","openOnFocus","_nextState$isOpen","isOpen","shouldPanelOpen","_request","setTimeout","stallThreshold","getItems","sourcesBySourceId","reshape","_nextState$isOpen2","isPanelOpen","highlightedItem","regex","_excluded2","_excluded3","_excluded4","_excluded5","getPropGetters","getEnvironmentProps","providedProps","inputElement","formElement","panelElement","onMouseDownOrTouchStart","some","contextNode","parent","child","contains","debug","onTouchStart","onMouseDown","onTouchMove","document","activeElement","blur","getRootProps","rest","role","id","getFormProps","noValidate","onSubmit","_providedProps$inputE","preventDefault","onReset","_providedProps$inputE2","focus","getLabelProps","htmlFor","getInputProps","_props$environment$na","onFocus","completion","_ref2$maxLength","maxLength","activeItem","shouldFallbackKeyHint","userAgent","match","isSamsung","navigator","enterKeyHint","autoComplete","autoCorrect","autoCapitalize","spellCheck","autoFocus","placeholder","onChange","currentTarget","onKeyDown","triggerScrollIntoView","nodeItem","getElementById","scrollIntoViewIfNeeded","scrollIntoView","triggerOnActive","nextActiveItemId","metaKey","ctrlKey","navigateNewTab","shiftKey","navigateNewWindow","altKey","navigate","_onKeyDown","onBlur","onClick","getPanelProps","onMouseLeave","getListProps","getItemProps","__autocomplete_id","onMouseMove","_item","_source","version","userAgents","segment","getMetadata","_","_options$__autocomple","_options$__autocomple2","_options$__autocomple3","plugins","options","optionsKey","__autocomplete_metadata","extraOptions","plugin","__autocomplete_pluginOptions","ua","getCompletion","_getActiveItem","getNextActiveItemId","moveAmount","baseIndex","itemCount","numericIndex","stateReducer","status","context","hasOwnProperty","_nextState","createAutocomplete","subscribers","pluginSubscribers","_props$id","window","onStateChange","_props$onStateChange","_x$onStateChange","_props$onSubmit","_x$onSubmit","_props$onReset","_x$onReset","nested","_x$onSelect","_x$onActive","_ref3","location","assign","_ref4","windowReference","open","_ref5","getDefaultProps","rawValue","baseItemId","setContext","getAutocompleteSetters","propGetters","Event","_plugin$subscribe","subscribe","fn","_environment$navigato","_environment$navigato2","metadata","metadataContainer","createElement","headRef","querySelector","content","appendChild","injectMetadata","createRef","initialValue","debounce","time","timerId","_len","args","_key","t","s","r","e","u","h","p","Map","get","this","set","replace","l","SearchIcon","element","createElementNS","setAttribute","path","ClearIcon","LoadingIcon","innerHTML","TOUCH_EVENTS_ALIASES","setStyle","style","eventProxy","_listeners","setProperty","dom","useCapture","nameLower","oldValue","toLowerCase","addEventListener","removeEventListener","removeAttribute","getNormalizedName","setProperties","setPropertiesWithoutEvents","getCreateDomElement","tagName","_ref$children","children","append","createAutocompleteDom","autocomplete","autocompleteScopeApi","classNames","isDetached","_ref$placeholder","setIsModalOpen","translations","createDomElement","rootProps","root","class","detachedContainer","stopPropagation","detachedOverlay","labelProps","submitButton","title","submitButtonTitle","clearButton","clearButtonTitle","loadingIndicator","input","getInputPropsCore","inputProps","Input","inputWrapperPrefix","inputWrapperSuffix","inputWrapper","formProps","form","panelProps","panel","detachedSearchButtonIcon","detachedSearchButtonPlaceholder","textContent","detachedSearchButton","detachedCancelButton","detachedCancelButtonText","detachedFormContainer","vnodeId","rerenderQueue","prevDebounce","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","removeNode","node","parentNode","removeChild","ref","normalizedProps","defaultProps","createVNode","original","vnode","__","__b","__e","__d","__h","Fragment","Component","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","c","process","debounceRendering","queue","sort","component","commitQueue","oldVNode","oldDom","parentDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","reorderChildren","placeChild","unmount","applyRef","tmp","nextDom","sibDom","outer","nextSibling","insertBefore","cssText","eventProxyCapture","newVNode","isNew","oldProps","oldState","snapshot","clearProcessingException","newProps","provider","componentContext","renderHook","newType","contextType","render","doRender","sub","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","cb","oldHtml","newHtml","nodeType","localName","createTextNode","is","data","childNodes","dangerouslySetInnerHTML","attributes","hydrate","diffProps","checked","parentVNode","skipRemove","componentWillUnmount","replaceNode","firstChild","getAttributeValueByPath","record","error","errorInfo","ctor","handled","getDerivedStateFromError","setState","componentDidCatch","update","forceUpdate","HIGHLIGHT_PRE_TAG","HIGHLIGHT_POST_TAG","parseAttribute","preTagParts","highlightedValue","split","firstValue","shift","parts","part","lastPart","isHighlighted","createAttributeSet","postTagParts","parseAlgoliaHitHighlight","attribute","createHighlightComponent","Highlight","_ref2$tagName","__autocomplete_componentName","htmlEscapes","hasAlphanumeric","RegExp","regexEscapedHtml","regexHasEscapedHtml","isPartHighlighted","_parts","_parts2","isNextHighlighted","isPreviousHighlighted","character","reverseHighlightedParts","createReverseHighlightComponent","ReverseHighlight","parseAlgoliaHitSnippet","createReverseSnippetComponent","ReverseSnippet","createSnippetComponent","Snippet","getHTMLElement","mergeClassNames","accValue","currentValue","join","defaultClassNames","panelLayout","sourceFooter","sourceHeader","sourceNoResults","defaultRender","defaultRenderer","preactCreateElement","PreactFragment","getPanelPlacementStyle","panelPlacement","containerRect","getBoundingClientRect","top","pageYOffset","documentElement","scrollTop","body","height","left","right","clientWidth","width","maxWidth","formRect","_extends","_typeof","isPlainObject","mergeDeep","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","_nonIterableRest","pickBy","predicate","entries","_createEffectWrapper","effects","cleanups","runEffect","effectCleanup","cleanupEffects","currentCleanups","cleanup","runEffects","currentEffects","effect","createEffectWrapper","_createReactiveWrappe","reactives","reactive","_fn","runReactives","createReactiveWrapper","hasNoResultsSourceTemplateRef","optionsRef","onStateChangeRef","_core$id","panelContainer","renderNoResults","renderer","detachedMediaQuery","components","core","containerElement","defaultedRenderer","defaultComponents","_ref6","_ref7","_ref8","_ref9","getComputedStyle","getPropertyValue","getDefaultOptions","matchMedia","_onStateChangeRef$cur","_props$value$core$onS","_props$value$core","templates","noResults","hasItems","hasNoResultsTemplate","lastStateRef","html","htm","setPanelPosition","scheduleRender","renderProps","hidden","renderSearchBox","classList","toggle","sections","sourceIndex","className","header","itemProps","footer","elements","renderPanel","updatedOptions","_props$value$renderer","rendererProps","requestAnimationFrame","prevValue","remove","environmentProps","panelContainerElement","debouncedRender","querySelectorAll","scrollablePanel","onResize","previousIsDetached","toggleModalClassname","isActive","isModalDetachedMql","hasModernEventListener","addListener","removeListener","destroy","createAlgoliaRequester","fetcher","fetcherParams","_fetcherParams$reques","requesterParams","requestParams","createRequester","_ref$userAgents","addAlgoliaAgent","coreUserAgents","search","searchParameters","hitsPerPage","highlightPreTag","highlightPostTag","fetchAlgoliaResults","getAlgoliaFacets","requester","getAlgoliaResults","exports","BlockletStore","_templateObject","_propTypes","_interopRequireDefault","require","_Typography","_CircularProgress","_Avatar","_useMediaQuery","_Button","_Img","_Theme","_jsxRuntime","__esModule","default","strings","raw","Div","styled","freeze","theme","spacing","breakpoints","up","palette","primary","main","common","white","divider","grey","did","cover","button","buttonText","buttonDisabled","buttonLoading","onButtonClick","onMainClick","wrapHandler","handler","stopFn","Function","_onButtonClick","useTheme","isUpSm","_onMainClick","didAvatarSize","jsx","jsxs","src","size","variant","display","alignItems","marginTop","flexFlow","marginRight","color","disabled","padding","fontSize","minWidth","textAlign","propTypes","string","isRequired","bool","func","_utils","_default","flat","en","searchStore","price","category","nameDescend","nameAscend","popularity","lastPublished","helperText","blocklet","payment","free","emptyTip","filterTip","keywordTip","owner","noBlockletPart1","noBlockletPart2","noCategoryResults1","noCategoryResults2","zh","_templateObject2","_styled","_Sort","_material","_Face","_reactErrorBoundary","_ErrorBoundary","_filter","_customSelect","_filter2","_list","_aside","_autocomplete","_taggedTemplateLiteral","StyledMin","md","FilterContainer","div","_sortOptions$find","_priceOptions$find","useFilterContext","handleDeveloper","blockletList","filters","developerName","handleSort","handleCategory","handlePrice","getCategoryLocale","priceOptions","sortOptions","getSortOptions","sortLocale","f","sortBy","categoryLocale","priceLocale","Box","Hidden","mdDown","mt","ml","mdUp","FilterIcon","icon","v","flexWrap","mb","CustomChip","onDelete","ErrorBoundary","FallbackComponent","ErrorFallback","position","flex","overflow","blocklets","Aside","selectedCategory","categoryOptions","StyledAside","FilterGroup","aside","containerRef","_react","useRef","panelRootRef","rootRef","storeApi","endpoint","handleKeyword","muiTheme","_styles","getResults","useCallback","_constant","blockletsPath","dataList","useEffect","_autocompleteJs","_panelRootRef$current","_client","createRoot","keyword","page","pageSize","debounced","_urlJoin","logoUrl","logo","detailUrl","ThemeProvider","_react2","href","onClickItem","Blocklet","blockletTitle","ShowAttributes","_formatted","__html","StyledButton","Button","forwardRef","loading","rounded","disableElevation","startIcon","CircularProgress","any","_KeyboardArrowDown","_isEmpty","_button","CustomSelect","prepend","itemRender","buttonProps","anchorRef","useState","setOpen","setCurrentValue","isSm","useMediaQuery","down","closeMenu","openMenu","SvgIcon","Popper","anchorEl","transition","zIndex","TransitionProps","placement","Grow","transformOrigin","Paper","ClickAwayListener","onClickAway","StyledMenuList","autoFocusItem","onMouseEnter","option","MenuItem","optionValue","array","oneOfType","number","typography","fontWeightBold","MenuList","StyleDiv","FilterChip","containerProps","Chip","StyledDiv","_FilterAltOutlined","_Dialog","_group","handelChange","fullWidth","onClose","_customChip","_icon","EmptyTitle","NoResults","NoResultsTips","_Box","locale","primaryStart","primaryEnd","BlockletList","_templateObject3","_Empty","_Grid","_reactInfiniteScrollHook","_empty","blockletRender","errors","loadings","hasNextPage","loadMore","showFilterTip","fetchBlockletsLoading","loadingMore","onLoadMore","sentryRef","fetchBlockletsError","message","justifyContent","CustomEmpty","StyledGrid","StyledGridItem","lg","sm","xs","memo","FilterConsumer","FilterProvider","filterStore","useContext","Filter","_ahooks","_orderBy","_axios","_locale","_propTypes2","createContext","Provider","Consumer","onFilterChange","extraFilter","create","baseURL","finalFilters","useMemo","sortDirection","paginateState","useReactive","currentPage","isMobileScreen","mobilePageSize","defaultCurrentPage","useRequest","d","getCurrentPage","_d$list","initialData","total","isNoMore","formatResult","refreshDeps","blockletsState","_loadMore","categoriesPath","allCategories","fetchCategoriesError","fetchCategoriesLoading","categoryList","translate","replaceTranslate","console","warn","getCategoryOptions","getPrices","changeData","keyWord","finalCategory","handlePage","_id","locales","_blocklets$find","_blocklets$find$owner","_blocklet$owner","_base","primaryColor","toColorRgb","globalStyles","css","g","modal","Global","styles","nameAsc","nameDesc","publishAt","cacheSize","shape","developer","oneOf","urlStringify","removeUndefined","getStoreDetail","formatLogoPath","formatError","filterBlockletByPrice","_cloneDeep","_color","isFreeBlocklet","storeUrl","asset","startsWith","template","m","clone","URLSearchParams","innerWidth","toFixed","colorStr","rgb","debouncePromise","isDocumentVisible","visibilityState","cache","getCache","currentCache","startTime","__read","ar","__spread","persist","refFn","deps","isMounted","listeners","eventsBinded","revalidate","onLine","listener","splice","__assign","DEFAULT_KEY","Fetch","service","config","initState","pollingWhenVisibleFlag","pollingTimer","loadingDelayTimer","unsubscribe","that","run","bind","mutate","debounceRun","debounceInterval","_run","throttleRun","throttleInterval","throttle","limitRefresh","timespan","pending","limit","focusTimespan","pollingInterval","subscribeVisible","rePolling","refreshOnWindowFocus","subscribeFocus","_this","currentCount","loadingDelay","res","formattedResult","onSuccess","onError","throwOnError","pollingWhenHidden","_options","_a","_b","manual","_c","defaultLoading","_f","_g","_h","defaultParams","_j","_k","fetchKey","cacheKey","_l","cacheTime","_m","staleTime","_o","ready","_p","newstFetchKey","servicePersist","usePersistFn","onSuccessPersist","onErrorPersist","fetchKeyPersist","setFetches","_q","cacheData_1","newFetches_1","fetches","cacheFetch","newFetch","fetchesRef","readyMemoryParams","currentFetchKey","currentFetch","runRef","useUpdateEffect","timer","Date","getTime","setCache","hasTriggeredByReady","cacheStartTime","reset","notExecutedWarning","__rest","threshold","restOptions","setLoadingMore","useAsync","reload","restParams","reloadRef","dataGroup","listGroup","lastNoLoadingData","noMore","scrollMethod","scrollHeight","clientHeight","scrollMethodRef","scrollTrigger","paginated","defaultPageSize","sorter","runChangePagination","paginationParams","oldPaginationParams","totalPage","Math","ceil","toCurrent","toPageSize","tempTotalPage","max","changeCurrent","changePageSize","changeCurrentRef","changeTable","pagination","tableProps","dataSource","ConfigContext","React","displayName","UseRequestProvider","contextConfig","finalOptions","requestMethod","paginatedRef","loadMoreRef","promiseService","fetchProxy","fetch","ok","json","statusText","finalRequestMethod","url_1","url","rest_1","url_2","rest_2","useLoadMore","usePaginated","defaultValue","defaultValuePropName","valuePropName","trigger","handleSetState","counterRef","keyList","setKey","setList","resetList","newList","insert","temp","getKey","getIndex","findIndex","ele","merge","move","oldIndex","newIndex","keyTemp","pop","unshift","sortForm","__values","EventEmitter","subscriptions","Set","emit","val","e_1","subscription","e_1_1","useSubscription","callbackRef","useEventEmitter","getTargetElement","defaultElement","fnRef","persistFn","isFunction","fnPersist","frame","setRafState","cancelAnimationFrame","useUnmount","info","useRafState","el","useLayoutEffect","resizeObserver","ResizeObserver","entry","observe","disconnect","useSize","start","end","itemHeight","overscan","calculateRange","offset","floor","getOffset","viewCapacity","containerHeight","capacity","getViewCapacity","to","totalHeight","getDistanceTop","offsetTop","scrollTo","onScroll","overflowY","wrapperProps","responsiveConfig","xl","handleResize","oldInfo","calculate","subscribers_1","subscribers_1_1","subscriber","listening","e_2","newInfo","shouldUpdate","e_2_1","configResponsive","useResponsive","windowExists","createUseStorageState","nullishStorage","storage","getStoredValue","getItem","parse","removeItem","currentState","setItem","localStorage","sessionStorage","reverseValue","reverseValueOrigin","setLeft","setRight","useBoolean","useToggle","setTrue","setFalse","eventName","handlerRef","targetElement","eventListener","capture","once","passive","getVisibility","documentVisibility","setDocumentVisibility","useEventListener","useSelections","defaultSelected","selected","setSelected","selectedSet","singleActions","isSelected","has","select","unSelect","allActions","selectAll","unSelectAll","noneSelected","allSelected","partiallySelected","toggleAll","useCreation","factory","initialized","oldDeps","depsAreSame","wait","throttled","flush","setThrottled","useThrottleFn","flag","setFlag","setDebounced","useDebounceFn","compare","prevRef","curRef","screenX","NaN","screenY","clientX","clientY","pageX","pageY","setPosition","shouldUpdatePersist","updatePosition","newPosition","scrollingElement","scrollLeft","useClickAway","onClickAwayRef","targetItem","onExitFull","onFull","onExitFullRef","onFullRef","screenfull","isFullscreen","setFull","exitFull","toggleFull","viewPortWidth","viewPortHeight","innerHeight","rect","top_1","bottom","isInViewPort","inViewPort","setInViewport","observer","IntersectionObserver","entries_1","entries_1_1","isIntersecting","aliasKeyCodeMap","esc","tab","enter","space","aliasKeyMap","modifierKey","ctrl","alt","meta","isType","genFilterKey","keyFilter","keyCode","genArr","genLen","genArr_1","genArr_1_1","genModifier","aliasKey","aliasKeyCode","toUpperCase","defaultEvents","eventHandler","events","callbackHandler","genGuard","genKeyFormater","events_1","events_1_1","e_3","events_2","events_2_1","e_3_1","onEnter","onLeave","defaultType","cacheFormTableData","setType","allFormData","setAllFormData","getActivetFieldValues","getFieldInstance","tempAllFiledsValue_1","getFieldsValue","filterFiledsValue_1","formRef","filterFiledsValue_2","setFieldsValue","_submit","changeType","currentFormData","validateFields","fieldValues","fields","getInternalHooks","initParams","activeFormData","_allFormData","resetFields","resetPersistFn","submit","field","onSort","dataIndex","order","onFilter","filterParams","paginationProps","onPageSizeChange","resultAdapter","useAntdTable","getNames","setValues","getValues","resetToDefault","validate","initialSet","setSet","stableActions","prevSet","utils","initialMap","setMap","prev","setAll","newMap","isHovering","setIsHovering","dataTransfer","uri","getData","onDom","onUri","files","onFiles","onText","getAsString","text","onDragOver","onDragEnter","onDragLeave","onDrop","onPaste","clipboardData","getProps","getPropsWithKey","draggable","onDragStart","setData","onDragEnd","initRect","stateRef","mouseupHandler","selObj","getSelection","selection","rangeCount","getRangeAt","getRectFromSelection","mousedownHandler","removeAllRanges","getTargetValue","min","init","setCurrent","setValue","inc","delta","dec","transformer","transformerRef","_value","step","targetArr","dumpIndex","_current","_before","_after","useHistoryTravel","present","past","future","history","setHistory","initialValueRef","_initial","updateValue","_forward","_backward","go","stepNum","Number","backLength","forwardLength","back","forward","cookieKey","cookieValue","Cookies","updateState","newValue","newOptions","patch","delay","immediate","setInterval","clearInterval","useWhyDidYouUpdate","componentName","prevProps","allKeys","changedProps_1","log","DEFAULT_OPTIONS","restoreOnUnmount","titleRef","getConnection","nav","connection","mozConnection","webkitConnection","getConnectionProperty","rtt","saveData","downlink","downlinkMax","effectiveType","since","online","onOnline","onOffline","onConnectionChange","timerFn","proxyMap","WeakMap","rawMap","initialVal","existingProxy","proxy","Proxy","receiver","Reflect","ret","deleteProperty","ReadyState","ImgTypeMap","SVG","ICO","GIF","PNG","favUrl","cutUrl","imgSuffix","toLocaleUpperCase","link","rel","getElementsByTagName","calcLeft","dayjs","valueOf","targetDate","interval","onEnd","setTargetDate","timeLeft","setTimeLeft","onEndPersistFn","targetLeft","formattedRes","milliseconds","days","hours","minutes","seconds","useWebSocket","socketUrl","reconnectLimit","reconnectInterval","onOpen","onMessage","reconnectTimesRef","reconnectTimerRef","websocketRef","unmountedRef","latestMessage","setLatestMessage","Closed","readyState","setReadyState","reconnect","Open","connectWs","close","WebSocket","onerror","onopen","onmessage","onclose","sendMessage","send","connect","webSocketIns","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","__generator","y","sent","trys","ops","verb","op","lockRef","previousDepsRef","deps1","deps2","changes","_ele","idx","previousDeps","useExternal","isPath","active","setActive","pathname","media","relList","as","head","async","wrapper","setAttributeFromEvent","setStateFromEvent","load","unload","useUnmountedRef","useControlledValue","useControllableValue","IntersectionObserverEntry","intersectionRatio","registry","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_observationTargets","_registerInstance","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","isNaN","_parseRootMargin","opt_rootMargin","margins","margin","exec","parseFloat","unit","_monitoringIntersections","_monitoringInterval","addEvent","_domObserver","MutationObserver","childList","characterData","subtree","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","performance","now","boundingClientRect","rootBounds","_hasCrossedThreshold","_callback","getParentNode","atRoot","parentRect","parentComputedStyle","computeRectIntersection","_expandRectByRootMargin","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","targetArea","intersectionArea","opt_options","timeout","rootMargin","opt_useCapture","attachEvent","detatchEvent","rect1","rect2","host","assignedSlot","_createSvgIcon","module","colorNames","swizzle","reverseNames","cs","clamp","num","hexDouble","str","round","model","substring","hsl","hwb","hexAlpha","i2","parseInt","alpha","hex","rgba","percent","hsla","hwba","colorString","convert","skippedModels","hashedModelKeys","labels","limiters","Color","channels","valpha","newArray","zeroArray","hashedKeys","toJSON","places","self","percentString","unitArray","unitObject","roundTo","roundToPlace","red","getset","maxfn","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","wblack","cyan","magenta","yellow","black","z","hexa","rgbArray","alphaHex","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","ratio","darken","saturate","desaturate","whiten","blacken","grayscale","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w","w1","w2","assertArray","channel","modifier","cssKeywords","reverseKeywords","hsv","cmyk","xyz","lab","lch","ansi16","ansi256","hcg","apple","rdif","gdif","bdif","diffc","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","t2","t3","t1","smin","lmin","hi","q","sl","vmin","wh","bl","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","saturation","ansi","mult","rem","char","integer","mg","pure","conversions","route","fromModel","routes","toModel","wrappedFn","arg0","conversion","wrapRounded","wrapRaw","deriveBFS","graph","models","buildGraph","adjacents","adjacent","wrapConversion","cur","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","objectToString","nativeMax","nativeMin","isObject","toNumber","isObjectLike","isSymbol","other","isBinary","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","isInvoking","FUNC_ERROR_TEXT","baseOrderBy","iteratees","orders","guard","DEFAULT_THRESHOLD","useTrackVisibility","nodeRef","observerRef","setEntry","currentObserver","initializeObserver","refCallback","rootRefCallback","rootNode","useIntersectionObserver","isVisible","_result$entry","wasEverVisible","setWasEverVisible","delayInMs","DEFAULT_DELAY_IN_MS","shouldLoadMore","isArrayish","wrap"],"sourceRoot":""}
|