@abtnode/webapp 1.8.29 → 1.8.31
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 +15 -15
- package/build/index.html +1 -1
- package/build/static/js/4897.d9c2e84e.chunk.js +2 -0
- package/build/static/js/4897.d9c2e84e.chunk.js.map +1 -0
- package/build/static/js/{5306.7904606c.chunk.js → 5306.e57185ac.chunk.js} +2 -2
- package/build/static/js/5306.e57185ac.chunk.js.map +1 -0
- package/build/static/js/5720.cebd5eb8.chunk.js +2 -0
- package/build/static/js/{5720.6a664a49.chunk.js.map → 5720.cebd5eb8.chunk.js.map} +1 -1
- package/build/static/js/7595.2d41497d.chunk.js +2 -0
- package/build/static/js/7595.2d41497d.chunk.js.map +1 -0
- package/build/static/js/8440.0d3e6baf.chunk.js +2 -0
- package/build/static/js/{8440.ad893b9c.chunk.js.map → 8440.0d3e6baf.chunk.js.map} +1 -1
- package/build/static/js/976.d320954f.chunk.js +3 -0
- package/build/static/js/{976.5c646415.chunk.js.LICENSE.txt → 976.d320954f.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/976.d320954f.chunk.js.map +1 -0
- package/build/static/js/main.89f26b95.js +3 -0
- package/build/static/js/{main.b38edd14.js.LICENSE.txt → main.89f26b95.js.LICENSE.txt} +0 -0
- package/build/static/js/main.89f26b95.js.map +1 -0
- package/package.json +1 -1
- package/build/static/js/4897.2d04c339.chunk.js +0 -2
- package/build/static/js/4897.2d04c339.chunk.js.map +0 -1
- package/build/static/js/5306.7904606c.chunk.js.map +0 -1
- package/build/static/js/5720.6a664a49.chunk.js +0 -2
- package/build/static/js/7595.7fbdecd8.chunk.js +0 -2
- package/build/static/js/7595.7fbdecd8.chunk.js.map +0 -1
- package/build/static/js/8440.ad893b9c.chunk.js +0 -2
- package/build/static/js/976.5c646415.chunk.js +0 -3
- package/build/static/js/976.5c646415.chunk.js.map +0 -1
- package/build/static/js/main.b38edd14.js +0 -3
- package/build/static/js/main.b38edd14.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/976.5c646415.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/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/constants.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/@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/orderBy.js","../../../node_modules/hotkeys-js/dist/hotkeys.esm.js","../../../node_modules/react-hotkeys-hook/src/useIsHotkeyPressed.ts","../../../node_modules/react-hotkeys-hook/src/useHotkeys.ts","../../../node_modules/react-hotkeys-hook/src/index.ts","../../../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}","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) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\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}\n\nprocess._rerenderCount = 0;\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 { 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\tchildVNode.ref ? childVNode.ref : null,\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\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(parentDom, vnode, vnode, c, vnode._dom, oldDom);\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 (value != null && (value !== false || name.indexOf('-') != -1)) {\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\tc._stateCallbacks = [];\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\tfor (tmp = 0; tmp < c._stateCallbacks.length; tmp++) {\n\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[tmp]);\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\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) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\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\tvnode._component = undefined;\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, skipRemove || typeof vnode.type !== 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\n\t}\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._parent = vnode._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 handleSearchSelect,\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, {\n onSelect: handleSearchSelect\n }), /*#__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 _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _client = require(\"react-dom/client\");\n\nvar _autocompleteJs = require(\"@algolia/autocomplete-js\");\n\nvar _reactHotkeysHook = require(\"react-hotkeys-hook\");\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(_ref) {\n let {\n onSelect\n } = _ref;\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 const onSubmit = (0, _react.useCallback)(e => {\n handleKeyword(e.state.query); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setFocus = () => {\n if (containerRef.current) {\n // see: https://discourse.algolia.com/t/autocomplete-focus-input-field/4019/5\n setTimeout(() => {\n const input = containerRef.current.querySelector('input.bl-autocomplete-input');\n\n if (input) {\n input.focus();\n }\n });\n }\n };\n\n const onReset = (0, _react.useCallback)(autocompleteState => {\n handleKeyword();\n setFocus();\n autocompleteState.setIsOpen(false); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n (0, _reactHotkeysHook.useHotkeys)('/, ctrl + k, command + k', e => {\n e.stopPropagation();\n e.preventDefault();\n setFocus();\n return false;\n }, {\n enableOnTags: ['INPUT']\n });\n (0, _react.useEffect)(() => {\n setFocus();\n }, [endpoint]);\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(_ref2, root) {\n let {\n children\n } = _ref2;\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 autoFocus: true,\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\n onReset(autocompleteState) {\n onReset(autocompleteState);\n },\n\n getSources(_ref3) {\n let {\n query\n } = _ref3;\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(_ref4) {\n let {\n item\n } = _ref4;\n return item.title;\n },\n\n onSelect(_ref5) {\n let {\n item\n } = _ref5;\n onSelect({\n blocklet: item,\n detailUrl: (0, _urlJoin.default)(endpoint, \"/blocklets/\".concat(item.did)),\n storeUrl: endpoint\n });\n },\n\n templates: {\n // eslint-disable-next-line react/no-unstable-nested-components\n item(_ref6) {\n let {\n item\n } = _ref6;\n const logoUrl = item.logo ? (0, _urlJoin.default)(endpoint, 'assets', item.did, item.logo) : null;\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 did: item.did,\n description: item.description,\n cover: logoUrl\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, onSubmit, onSelect, t, onReset]);\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(\"div\", {\n className: \"bl-search-container\",\n ref: containerRef\n });\n}\n\nAutocomplete.propTypes = {\n onSelect: _propTypes.default.func.isRequired\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\", \"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 item,\n className\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n const {\n did,\n description,\n title,\n name\n } = item;\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 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 children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ShowAttributes, {\n item: item,\n attribute: \"title\",\n value: title || name\n })\n }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {\n component: \"div\",\n variant: \"body2\",\n className: \"arcblock-blocklet__describe\",\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 className: _propTypes.default.string,\n item: _propTypes.default.object.isRequired\n};\nBlocklet.defaultProps = {\n cover: null,\n className: null\n};\n\nfunction ShowAttributes(_ref2) {\n let {\n item,\n attribute,\n value\n } = _ref2;\n\n if (item._formatted) {\n // eslint-disable-next-line react/no-danger\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(\"span\", {\n \"data-cy\": \"bl-autocomplete-item\",\n dangerouslySetInnerHTML: {\n __html: item._formatted[attribute]\n }\n });\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 onSearchSelect,\n extraFilter\n } = _ref;\n const storeApi = (0, _react.useMemo)(() => {\n return _axios.default.create({\n baseURL: endpoint\n });\n }, [endpoint]);\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 [fetchBlockletsError, setFetchBlockletsError] = (0, _react.useState)(null);\n const {\n data: blockletsState = {\n list: [],\n total: 0\n },\n loading: fetchBlockletsLoading,\n loadMore: _loadMore,\n loadingMore\n } = (0, _ahooks.useInfiniteScroll)(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 {\n list: (data === null || data === void 0 ? void 0 : data.dataList) || [],\n total: (data === null || data === void 0 ? void 0 : data.total) || 0\n };\n }, {\n isNoMore: d => d ? d.list.length >= d.total : false,\n reloadDeps: [endpoint, filters],\n onError: e => {\n setFetchBlockletsError(e);\n }\n });\n const {\n data: allCategories = [],\n error: fetchCategoriesError,\n loading: fetchCategoriesLoading,\n run: fetchCategories\n } = (0, _ahooks.useRequest)(async () => {\n const {\n data\n } = await storeApi.get(_constant.default.categoriesPath);\n return Array.isArray(data) ? data : [];\n }, {\n manual: true\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 const translate = (0, _react.useCallback)((key, data) => {\n // 找不到对应的翻译时,fallback 到英文翻译\n const fallback = _locale.default[locale] ? _locale.default[locale][key] : _locale.default.en[key];\n return (0, _utils.replaceTranslate)(fallback, data);\n }, [locale]);\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 handleSearchSelect: onSearchSelect\n };\n (0, _react.useEffect)(() => {\n fetchCategories(); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [endpoint]);\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: 1px solid #fff !important;\\n &:focus-within {\\n box-shadow: none !important;\\n border: 1px solid rgba(0, 0, 0, 0.12) !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 onSearchSelect: _propTypes.default.func,\n locale: _propTypes.default.oneOf(['zh', 'en'])\n};\nexports.propTypes = propTypes;\nconst defaultProps = {\n locale: 'zh',\n filters: {},\n onFilterChange: () => {},\n onSearchSelect: _ref => {\n let {\n detailUrl\n } = _ref;\n window.location.href = detailUrl;\n },\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] || \"Category.\".concat(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;","\"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","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","/**! \n * hotkeys-js v3.9.4 \n * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies. \n * \n * Copyright (c) 2022 kenny wong <wowohoo@qq.com> \n * http://jaywcjlove.github.io/hotkeys \n * Licensed under the MIT license \n */\n\nvar isff = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase().indexOf('firefox') > 0 : false; // 绑定事件\n\nfunction addEvent(object, event, method, useCapture) {\n if (object.addEventListener) {\n object.addEventListener(event, method, useCapture);\n } else if (object.attachEvent) {\n object.attachEvent(\"on\".concat(event), function () {\n method(window.event);\n });\n }\n} // 修饰键转换成对应的键码\n\n\nfunction getMods(modifier, key) {\n var mods = key.slice(0, key.length - 1);\n\n for (var i = 0; i < mods.length; i++) {\n mods[i] = modifier[mods[i].toLowerCase()];\n }\n\n return mods;\n} // 处理传的key字符串转换成数组\n\n\nfunction getKeys(key) {\n if (typeof key !== 'string') key = '';\n key = key.replace(/\\s/g, ''); // 匹配任何空白字符,包括空格、制表符、换页符等等\n\n var keys = key.split(','); // 同时设置多个快捷键,以','分割\n\n var index = keys.lastIndexOf(''); // 快捷键可能包含',',需特殊处理\n\n for (; index >= 0;) {\n keys[index - 1] += ',';\n keys.splice(index, 1);\n index = keys.lastIndexOf('');\n }\n\n return keys;\n} // 比较修饰键的数组\n\n\nfunction compareArray(a1, a2) {\n var arr1 = a1.length >= a2.length ? a1 : a2;\n var arr2 = a1.length >= a2.length ? a2 : a1;\n var isIndex = true;\n\n for (var i = 0; i < arr1.length; i++) {\n if (arr2.indexOf(arr1[i]) === -1) isIndex = false;\n }\n\n return isIndex;\n}\n\nvar _keyMap = {\n backspace: 8,\n tab: 9,\n clear: 12,\n enter: 13,\n return: 13,\n esc: 27,\n escape: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n del: 46,\n delete: 46,\n ins: 45,\n insert: 45,\n home: 36,\n end: 35,\n pageup: 33,\n pagedown: 34,\n capslock: 20,\n num_0: 96,\n num_1: 97,\n num_2: 98,\n num_3: 99,\n num_4: 100,\n num_5: 101,\n num_6: 102,\n num_7: 103,\n num_8: 104,\n num_9: 105,\n num_multiply: 106,\n num_add: 107,\n num_enter: 108,\n num_subtract: 109,\n num_decimal: 110,\n num_divide: 111,\n '⇪': 20,\n ',': 188,\n '.': 190,\n '/': 191,\n '`': 192,\n '-': isff ? 173 : 189,\n '=': isff ? 61 : 187,\n ';': isff ? 59 : 186,\n '\\'': 222,\n '[': 219,\n ']': 221,\n '\\\\': 220\n}; // Modifier Keys\n\nvar _modifier = {\n // shiftKey\n '⇧': 16,\n shift: 16,\n // altKey\n '⌥': 18,\n alt: 18,\n option: 18,\n // ctrlKey\n '⌃': 17,\n ctrl: 17,\n control: 17,\n // metaKey\n '⌘': 91,\n cmd: 91,\n command: 91\n};\nvar modifierMap = {\n 16: 'shiftKey',\n 18: 'altKey',\n 17: 'ctrlKey',\n 91: 'metaKey',\n shiftKey: 16,\n ctrlKey: 17,\n altKey: 18,\n metaKey: 91\n};\nvar _mods = {\n 16: false,\n 18: false,\n 17: false,\n 91: false\n};\nvar _handlers = {}; // F1~F12 special key\n\nfor (var k = 1; k < 20; k++) {\n _keyMap[\"f\".concat(k)] = 111 + k;\n}\n\nvar _downKeys = []; // 记录摁下的绑定键\n\nvar winListendFocus = false; // window是否已经监听了focus事件\n\nvar _scope = 'all'; // 默认热键范围\n\nvar elementHasBindEvent = []; // 已绑定事件的节点记录\n// 返回键码\n\nvar code = function code(x) {\n return _keyMap[x.toLowerCase()] || _modifier[x.toLowerCase()] || x.toUpperCase().charCodeAt(0);\n}; // 设置获取当前范围(默认为'所有')\n\n\nfunction setScope(scope) {\n _scope = scope || 'all';\n} // 获取当前范围\n\n\nfunction getScope() {\n return _scope || 'all';\n} // 获取摁下绑定键的键值\n\n\nfunction getPressedKeyCodes() {\n return _downKeys.slice(0);\n} // 表单控件控件判断 返回 Boolean\n// hotkey is effective only when filter return true\n\n\nfunction filter(event) {\n var target = event.target || event.srcElement;\n var tagName = target.tagName;\n var flag = true; // ignore: isContentEditable === 'true', <input> and <textarea> when readOnly state is false, <select>\n\n if (target.isContentEditable || (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') && !target.readOnly) {\n flag = false;\n }\n\n return flag;\n} // 判断摁下的键是否为某个键,返回true或者false\n\n\nfunction isPressed(keyCode) {\n if (typeof keyCode === 'string') {\n keyCode = code(keyCode); // 转换成键码\n }\n\n return _downKeys.indexOf(keyCode) !== -1;\n} // 循环删除handlers中的所有 scope(范围)\n\n\nfunction deleteScope(scope, newScope) {\n var handlers;\n var i; // 没有指定scope,获取scope\n\n if (!scope) scope = getScope();\n\n for (var key in _handlers) {\n if (Object.prototype.hasOwnProperty.call(_handlers, key)) {\n handlers = _handlers[key];\n\n for (i = 0; i < handlers.length;) {\n if (handlers[i].scope === scope) handlers.splice(i, 1);else i++;\n }\n }\n } // 如果scope被删除,将scope重置为all\n\n\n if (getScope() === scope) setScope(newScope || 'all');\n} // 清除修饰键\n\n\nfunction clearModifier(event) {\n var key = event.keyCode || event.which || event.charCode;\n\n var i = _downKeys.indexOf(key); // 从列表中清除按压过的键\n\n\n if (i >= 0) {\n _downKeys.splice(i, 1);\n } // 特殊处理 cmmand 键,在 cmmand 组合快捷键 keyup 只执行一次的问题\n\n\n if (event.key && event.key.toLowerCase() === 'meta') {\n _downKeys.splice(0, _downKeys.length);\n } // 修饰键 shiftKey altKey ctrlKey (command||metaKey) 清除\n\n\n if (key === 93 || key === 224) key = 91;\n\n if (key in _mods) {\n _mods[key] = false; // 将修饰键重置为false\n\n for (var k in _modifier) {\n if (_modifier[k] === key) hotkeys[k] = false;\n }\n }\n}\n\nfunction unbind(keysInfo) {\n // unbind(), unbind all keys\n if (typeof keysInfo === 'undefined') {\n Object.keys(_handlers).forEach(function (key) {\n return delete _handlers[key];\n });\n } else if (Array.isArray(keysInfo)) {\n // support like : unbind([{key: 'ctrl+a', scope: 's1'}, {key: 'ctrl-a', scope: 's2', splitKey: '-'}])\n keysInfo.forEach(function (info) {\n if (info.key) eachUnbind(info);\n });\n } else if (typeof keysInfo === 'object') {\n // support like unbind({key: 'ctrl+a, ctrl+b', scope:'abc'})\n if (keysInfo.key) eachUnbind(keysInfo);\n } else if (typeof keysInfo === 'string') {\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 // support old method\n // eslint-disable-line\n var scope = args[0],\n method = args[1];\n\n if (typeof scope === 'function') {\n method = scope;\n scope = '';\n }\n\n eachUnbind({\n key: keysInfo,\n scope: scope,\n method: method,\n splitKey: '+'\n });\n }\n} // 解除绑定某个范围的快捷键\n\n\nvar eachUnbind = function eachUnbind(_ref) {\n var key = _ref.key,\n scope = _ref.scope,\n method = _ref.method,\n _ref$splitKey = _ref.splitKey,\n splitKey = _ref$splitKey === void 0 ? '+' : _ref$splitKey;\n var multipleKeys = getKeys(key);\n multipleKeys.forEach(function (originKey) {\n var unbindKeys = originKey.split(splitKey);\n var len = unbindKeys.length;\n var lastKey = unbindKeys[len - 1];\n var keyCode = lastKey === '*' ? '*' : code(lastKey);\n if (!_handlers[keyCode]) return; // 判断是否传入范围,没有就获取范围\n\n if (!scope) scope = getScope();\n var mods = len > 1 ? getMods(_modifier, unbindKeys) : [];\n _handlers[keyCode] = _handlers[keyCode].filter(function (record) {\n // 通过函数判断,是否解除绑定,函数相等直接返回\n var isMatchingMethod = method ? record.method === method : true;\n return !(isMatchingMethod && record.scope === scope && compareArray(record.mods, mods));\n });\n });\n}; // 对监听对应快捷键的回调函数进行处理\n\n\nfunction eventHandler(event, handler, scope, element) {\n if (handler.element !== element) {\n return;\n }\n\n var modifiersMatch; // 看它是否在当前范围\n\n if (handler.scope === scope || handler.scope === 'all') {\n // 检查是否匹配修饰符(如果有返回true)\n modifiersMatch = handler.mods.length > 0;\n\n for (var y in _mods) {\n if (Object.prototype.hasOwnProperty.call(_mods, y)) {\n if (!_mods[y] && handler.mods.indexOf(+y) > -1 || _mods[y] && handler.mods.indexOf(+y) === -1) {\n modifiersMatch = false;\n }\n }\n } // 调用处理程序,如果是修饰键不做处理\n\n\n if (handler.mods.length === 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91] || modifiersMatch || handler.shortcut === '*') {\n if (handler.method(event, handler) === false) {\n if (event.preventDefault) event.preventDefault();else event.returnValue = false;\n if (event.stopPropagation) event.stopPropagation();\n if (event.cancelBubble) event.cancelBubble = true;\n }\n }\n }\n} // 处理keydown事件\n\n\nfunction dispatch(event, element) {\n var asterisk = _handlers['*'];\n var key = event.keyCode || event.which || event.charCode; // 表单控件过滤 默认表单控件不触发快捷键\n\n if (!hotkeys.filter.call(this, event)) return; // Gecko(Firefox)的command键值224,在Webkit(Chrome)中保持一致\n // Webkit左右 command 键值不一样\n\n if (key === 93 || key === 224) key = 91;\n /**\n * Collect bound keys\n * If an Input Method Editor is processing key input and the event is keydown, return 229.\n * https://stackoverflow.com/questions/25043934/is-it-ok-to-ignore-keydown-events-with-keycode-229\n * http://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html\n */\n\n if (_downKeys.indexOf(key) === -1 && key !== 229) _downKeys.push(key);\n /**\n * Jest test cases are required.\n * ===============================\n */\n\n ['ctrlKey', 'altKey', 'shiftKey', 'metaKey'].forEach(function (keyName) {\n var keyNum = modifierMap[keyName];\n\n if (event[keyName] && _downKeys.indexOf(keyNum) === -1) {\n _downKeys.push(keyNum);\n } else if (!event[keyName] && _downKeys.indexOf(keyNum) > -1) {\n _downKeys.splice(_downKeys.indexOf(keyNum), 1);\n } else if (keyName === 'metaKey' && event[keyName] && _downKeys.length === 3) {\n /**\n * Fix if Command is pressed:\n * ===============================\n */\n if (!(event.ctrlKey || event.shiftKey || event.altKey)) {\n _downKeys = _downKeys.slice(_downKeys.indexOf(keyNum));\n }\n }\n });\n /**\n * -------------------------------\n */\n\n if (key in _mods) {\n _mods[key] = true; // 将特殊字符的key注册到 hotkeys 上\n\n for (var k in _modifier) {\n if (_modifier[k] === key) hotkeys[k] = true;\n }\n\n if (!asterisk) return;\n } // 将 modifierMap 里面的修饰键绑定到 event 中\n\n\n for (var e in _mods) {\n if (Object.prototype.hasOwnProperty.call(_mods, e)) {\n _mods[e] = event[modifierMap[e]];\n }\n }\n /**\n * https://github.com/jaywcjlove/hotkeys/pull/129\n * This solves the issue in Firefox on Windows where hotkeys corresponding to special characters would not trigger.\n * An example of this is ctrl+alt+m on a Swedish keyboard which is used to type μ.\n * Browser support: https://caniuse.com/#feat=keyboardevent-getmodifierstate\n */\n\n\n if (event.getModifierState && !(event.altKey && !event.ctrlKey) && event.getModifierState('AltGraph')) {\n if (_downKeys.indexOf(17) === -1) {\n _downKeys.push(17);\n }\n\n if (_downKeys.indexOf(18) === -1) {\n _downKeys.push(18);\n }\n\n _mods[17] = true;\n _mods[18] = true;\n } // 获取范围 默认为 `all`\n\n\n var scope = getScope(); // 对任何快捷键都需要做的处理\n\n if (asterisk) {\n for (var i = 0; i < asterisk.length; i++) {\n if (asterisk[i].scope === scope && (event.type === 'keydown' && asterisk[i].keydown || event.type === 'keyup' && asterisk[i].keyup)) {\n eventHandler(event, asterisk[i], scope, element);\n }\n }\n } // key 不在 _handlers 中返回\n\n\n if (!(key in _handlers)) return;\n\n for (var _i = 0; _i < _handlers[key].length; _i++) {\n if (event.type === 'keydown' && _handlers[key][_i].keydown || event.type === 'keyup' && _handlers[key][_i].keyup) {\n if (_handlers[key][_i].key) {\n var record = _handlers[key][_i];\n var splitKey = record.splitKey;\n var keyShortcut = record.key.split(splitKey);\n var _downKeysCurrent = []; // 记录当前按键键值\n\n for (var a = 0; a < keyShortcut.length; a++) {\n _downKeysCurrent.push(code(keyShortcut[a]));\n }\n\n if (_downKeysCurrent.sort().join('') === _downKeys.sort().join('')) {\n // 找到处理内容\n eventHandler(event, record, scope, element);\n }\n }\n }\n }\n} // 判断 element 是否已经绑定事件\n\n\nfunction isElementBind(element) {\n return elementHasBindEvent.indexOf(element) > -1;\n}\n\nfunction hotkeys(key, option, method) {\n _downKeys = [];\n var keys = getKeys(key); // 需要处理的快捷键列表\n\n var mods = [];\n var scope = 'all'; // scope默认为all,所有范围都有效\n\n var element = document; // 快捷键事件绑定节点\n\n var i = 0;\n var keyup = false;\n var keydown = true;\n var splitKey = '+';\n var capture = false; // 对为设定范围的判断\n\n if (method === undefined && typeof option === 'function') {\n method = option;\n }\n\n if (Object.prototype.toString.call(option) === '[object Object]') {\n if (option.scope) scope = option.scope; // eslint-disable-line\n\n if (option.element) element = option.element; // eslint-disable-line\n\n if (option.keyup) keyup = option.keyup; // eslint-disable-line\n\n if (option.keydown !== undefined) keydown = option.keydown; // eslint-disable-line\n\n if (option.capture !== undefined) capture = option.capture; // eslint-disable-line\n\n if (typeof option.splitKey === 'string') splitKey = option.splitKey; // eslint-disable-line\n }\n\n if (typeof option === 'string') scope = option; // 对于每个快捷键进行处理\n\n for (; i < keys.length; i++) {\n key = keys[i].split(splitKey); // 按键列表\n\n mods = []; // 如果是组合快捷键取得组合快捷键\n\n if (key.length > 1) mods = getMods(_modifier, key); // 将非修饰键转化为键码\n\n key = key[key.length - 1];\n key = key === '*' ? '*' : code(key); // *表示匹配所有快捷键\n // 判断key是否在_handlers中,不在就赋一个空数组\n\n if (!(key in _handlers)) _handlers[key] = [];\n\n _handlers[key].push({\n keyup: keyup,\n keydown: keydown,\n scope: scope,\n mods: mods,\n shortcut: keys[i],\n method: method,\n key: keys[i],\n splitKey: splitKey,\n element: element\n });\n } // 在全局document上设置快捷键\n\n\n if (typeof element !== 'undefined' && !isElementBind(element) && window) {\n elementHasBindEvent.push(element);\n addEvent(element, 'keydown', function (e) {\n dispatch(e, element);\n }, capture);\n\n if (!winListendFocus) {\n winListendFocus = true;\n addEvent(window, 'focus', function () {\n _downKeys = [];\n }, capture);\n }\n\n addEvent(element, 'keyup', function (e) {\n dispatch(e, element);\n clearModifier(e);\n }, capture);\n }\n}\n\nfunction trigger(shortcut) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';\n Object.keys(_handlers).forEach(function (key) {\n var data = _handlers[key].find(function (item) {\n return item.scope === scope && item.shortcut === shortcut;\n });\n\n if (data && data.method) {\n data.method();\n }\n });\n}\n\nvar _api = {\n setScope: setScope,\n getScope: getScope,\n deleteScope: deleteScope,\n getPressedKeyCodes: getPressedKeyCodes,\n isPressed: isPressed,\n filter: filter,\n trigger: trigger,\n unbind: unbind,\n keyMap: _keyMap,\n modifier: _modifier,\n modifierMap: modifierMap\n};\n\nfor (var a in _api) {\n if (Object.prototype.hasOwnProperty.call(_api, a)) {\n hotkeys[a] = _api[a];\n }\n}\n\nif (typeof window !== 'undefined') {\n var _hotkeys = window.hotkeys;\n\n hotkeys.noConflict = function (deep) {\n if (deep && window.hotkeys === hotkeys) {\n window.hotkeys = _hotkeys;\n }\n\n return hotkeys;\n };\n\n window.hotkeys = hotkeys;\n}\n\nexport { hotkeys as default };\n","import hotkeys from 'hotkeys-js';\n\n/**\n * @deprecated Use isHotkeyPressed instead. Will be removed version 4.\n */\nexport function useIsHotkeyPressed() {\n return hotkeys.isPressed;\n}","import hotkeys, { HotkeysEvent, KeyHandler } from 'hotkeys-js';\nimport React, { useCallback, useEffect, useRef } from 'react';\n\ntype AvailableTags = 'INPUT' | 'TEXTAREA' | 'SELECT';\n\n// We implement our own custom filter system.\nhotkeys.filter = () => true;\n\nconst tagFilter = ({ target }: KeyboardEvent, enableOnTags?: AvailableTags[]) => {\n const targetTagName = target && (target as HTMLElement).tagName;\n\n return Boolean((targetTagName && enableOnTags && enableOnTags.includes(targetTagName as AvailableTags)));\n};\n\nconst isKeyboardEventTriggeredByInput = (ev: KeyboardEvent) => {\n return tagFilter(ev, ['INPUT', 'TEXTAREA', 'SELECT']);\n};\n\nexport type Options = {\n enabled?: boolean; // Main setting that determines if the hotkey is enabled or not. (Default: true)\n filter?: typeof hotkeys.filter; // A filter function returning whether the callback should get triggered or not. (Default: undefined)\n filterPreventDefault?: boolean; // Prevent default browser behavior if the filter function returns false. (Default: true)\n enableOnTags?: AvailableTags[]; // Enable hotkeys on a list of tags. (Default: [])\n enableOnContentEditable?: boolean; // Enable hotkeys on tags with contentEditable props. (Default: false)\n splitKey?: string; // Character to split keys in hotkeys combinations. (Default +)\n scope?: string; // Scope. Currently not doing anything.\n keyup?: boolean; // Trigger on keyup event? (Default: undefined)\n keydown?: boolean; // Trigger on keydown event? (Default: true)\n};\n\nexport function useHotkeys<T extends Element>(keys: string, callback: KeyHandler, options?: Options): React.MutableRefObject<T | null>;\nexport function useHotkeys<T extends Element>(keys: string, callback: KeyHandler, deps?: any[]): React.MutableRefObject<T | null>;\nexport function useHotkeys<T extends Element>(keys: string, callback: KeyHandler, options?: Options, deps?: any[]): React.MutableRefObject<T | null>;\nexport function useHotkeys<T extends Element>(keys: string, callback: KeyHandler, options?: any[] | Options, deps?: any[]): React.MutableRefObject<T | null> {\n if (options instanceof Array) {\n deps = options;\n options = undefined;\n }\n\n const {\n enableOnTags,\n filter,\n keyup,\n keydown,\n filterPreventDefault = true,\n enabled = true,\n enableOnContentEditable = false,\n } = options as Options || {};\n const ref = useRef<T | null>(null);\n\n // The return value of this callback determines if the browsers default behavior is prevented.\n const memoisedCallback = useCallback((keyboardEvent: KeyboardEvent, hotkeysEvent: HotkeysEvent) => {\n if (filter && !filter(keyboardEvent)) {\n return !filterPreventDefault;\n }\n\n // Check whether the hotkeys was triggered inside an input and that input is enabled or if it was triggered by a content editable tag and it is enabled.\n if (\n (isKeyboardEventTriggeredByInput(keyboardEvent) && !tagFilter(keyboardEvent, enableOnTags))\n || ((keyboardEvent.target as HTMLElement)?.isContentEditable && !enableOnContentEditable)\n ) {\n return true;\n }\n\n if (ref.current === null || document.activeElement === ref.current || ref.current?.contains(document.activeElement)) {\n callback(keyboardEvent, hotkeysEvent);\n return true;\n }\n\n return false;\n }, deps ? [ref, enableOnTags, filter, ...deps] : [ref, enableOnTags, filter]);\n\n useEffect(() => {\n if (!enabled) {\n hotkeys.unbind(keys, memoisedCallback);\n\n return;\n }\n\n // In this case keydown is likely undefined, so we set it to false, since hotkeys needs the `keydown` key to have a value.\n if (keyup && keydown !== true) {\n (options as Options).keydown = false;\n }\n\n hotkeys(keys, (options as Options) || {}, memoisedCallback);\n\n return () => hotkeys.unbind(keys, memoisedCallback);\n }, [memoisedCallback, keys, enabled]);\n\n return ref;\n}\n","import { useIsHotkeyPressed } from './useIsHotkeyPressed';\nimport { useHotkeys, Options } from './useHotkeys';\nimport hotkeys from 'hotkeys-js';\n\nconst isHotkeyPressed = hotkeys.isPressed;\n\nexport { useHotkeys, useIsHotkeyPressed, isHotkeyPressed, Options };","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","__k","__","__b","__e","__d","__c","__h","__v","Fragment","Component","getDomSibling","childIndex","sibling","updateParentDomPointers","base","enqueueRender","c","process","debounceRendering","queue","__r","sort","component","commitQueue","oldVNode","oldDom","parentDom","__P","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","__E","render","doRender","sub","__s","getDerivedStateFromProps","_sb","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","diffElementNodes","diffed","cb","oldHtml","newHtml","nodeType","localName","createTextNode","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","diffProps","hydrate","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","handleSearchSelect","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","Autocomplete","_react","_client","_autocompleteJs","_reactHotkeysHook","_react2","_styles","_urlJoin","_constant","containerRef","useRef","panelRootRef","rootRef","storeApi","endpoint","handleKeyword","muiTheme","getResults","useCallback","blockletsPath","dataList","setFocus","autocompleteState","useHotkeys","enableOnTags","useEffect","_panelRootRef$current","createRoot","keyword","page","pageSize","debounced","detailUrl","storeUrl","logoUrl","logo","ThemeProvider","Blocklet","ShowAttributes","_formatted","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","onSearchSelect","extraFilter","useMemo","create","baseURL","finalFilters","sortDirection","paginateState","useReactive","currentPage","isMobileScreen","mobilePageSize","defaultCurrentPage","setFetchBlockletsError","useInfiniteScroll","d","getCurrentPage","_d$list","total","isNoMore","reloadDeps","onError","blockletsState","_loadMore","useRequest","categoriesPath","manual","allCategories","fetchCategoriesError","fetchCategoriesLoading","fetchCategories","run","categoryList","translate","replaceTranslate","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","href","urlStringify","removeUndefined","getStoreDetail","formatLogoPath","formatError","filterBlockletByPrice","_cloneDeep","_color","isFreeBlocklet","asset","startsWith","template","m","clone","URLSearchParams","innerWidth","toFixed","colorStr","rgb","debouncePromise","_createSvgIcon","module","colorNames","swizzle","reverseNames","cs","to","clamp","num","min","max","Math","hexDouble","str","round","toUpperCase","val","model","substring","hsl","hwb","hexAlpha","i2","parseInt","parseFloat","alpha","isNaN","hex","rgba","percent","hsla","hwba","colorString","convert","skippedModels","hashedModelKeys","labels","limiters","Color","channels","valpha","newArray","zeroArray","splice","hashedKeys","limit","toJSON","places","self","percentString","unitArray","unitObject","Number","roundTo","roundToPlace","red","getset","maxfn","green","blue","hue","saturationl","lightness","saturationv","chroma","gray","wblack","cyan","magenta","yellow","black","y","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","delta","rdif","gdif","bdif","diffc","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","t2","t3","t1","smin","lmin","hi","floor","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","pop","adjacents","adjacent","unshift","link","wrapConversion","cur","baseOrderBy","iteratees","orders","guard","isff","addEvent","method","attachEvent","getMods","mods","getKeys","lastIndexOf","_keyMap","backspace","tab","clear","enter","return","esc","escape","space","del","delete","ins","insert","home","end","pageup","pagedown","capslock","num_0","num_1","num_2","num_3","num_4","num_5","num_6","num_7","num_8","num_9","num_multiply","num_add","num_enter","num_subtract","num_decimal","num_divide","_modifier","alt","ctrl","control","cmd","command","modifierMap","_mods","_handlers","_downKeys","winListendFocus","_scope","elementHasBindEvent","code","charCodeAt","setScope","scope","getScope","eachUnbind","_ref$splitKey","splitKey","originKey","unbindKeys","lastKey","keyCode","a1","a2","arr1","isIndex","compareArray","eventHandler","modifiersMatch","shortcut","returnValue","cancelBubble","asterisk","which","charCode","hotkeys","keyName","keyNum","getModifierState","keydown","keyup","keyShortcut","_downKeysCurrent","capture","isElementBind","clearModifier","_api","deleteScope","newScope","handlers","getPressedKeyCodes","isPressed","srcElement","flag","isContentEditable","readOnly","trigger","unbind","keysInfo","info","keyMap","_hotkeys","noConflict","deep","useIsHotkeyPressed","tagFilter","targetTagName","deps","_ref2$filterPreventDe","filterPreventDefault","_ref2$enabled","enabled","_ref2$enableOnContent","enableOnContentEditable","memoisedCallback","keyboardEvent","hotkeysEvent","_ref$current","isHotkeyPressed","DEFAULT_THRESHOLD","useTrackVisibility","rootMargin","threshold","nodeRef","observerRef","entry","setEntry","unobserve","currentObserver","disconnect","observe","observer","IntersectionObserver","newEntry","initializeObserver","refCallback","rootRefCallback","rootNode","useIntersectionObserver","isVisible","_result$entry","isIntersecting","wasEverVisible","setWasEverVisible","delayInMs","DEFAULT_DELAY_IN_MS","shouldLoadMore","timer","isArrayish","wrap"],"sourceRoot":""}
|