@choc-ui/chakra-autocomplete 4.11.1 → 4.11.2

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.
@@ -234,7 +234,7 @@ var _excluded = ["onBlur", "onChange", "onFocus", "onKeyDown", "variant"],
234
234
  */
235
235
 
236
236
  function useAutoComplete(autoCompleteProps) {
237
- var _itemList$;
237
+ var _defaultQuery, _itemList$;
238
238
 
239
239
  var _autoCompleteProps$cl = autoCompleteProps.closeOnBlur,
240
240
  closeOnBlur = _autoCompleteProps$cl === void 0 ? true : _autoCompleteProps$cl,
@@ -250,7 +250,7 @@ function useAutoComplete(autoCompleteProps) {
250
250
  multiple = autoCompleteProps.multiple,
251
251
  defaultValue = autoCompleteProps.defaultValue,
252
252
  _autoCompleteProps$de = autoCompleteProps.defaultValues,
253
- defaultValues = _autoCompleteProps$de === void 0 ? defaultValue ? [defaultValue] : undefined : _autoCompleteProps$de,
253
+ defaultValues = _autoCompleteProps$de === void 0 ? defaultValue ? [defaultValue] : [""] : _autoCompleteProps$de,
254
254
  onReady = autoCompleteProps.onReady,
255
255
  defaultIsOpen = autoCompleteProps.defaultIsOpen,
256
256
  _autoCompleteProps$sh = autoCompleteProps.shouldRenderSuggestions,
@@ -260,7 +260,7 @@ function useAutoComplete(autoCompleteProps) {
260
260
  suggestWhenEmpty = autoCompleteProps.suggestWhenEmpty,
261
261
  value = autoCompleteProps.value,
262
262
  _autoCompleteProps$va = autoCompleteProps.values,
263
- valuesProp = _autoCompleteProps$va === void 0 ? value ? [value] : defaultValues ? undefined : [] : _autoCompleteProps$va;
263
+ valuesProp = _autoCompleteProps$va === void 0 ? value ? [value] : undefined : _autoCompleteProps$va;
264
264
  closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;
265
265
  freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;
266
266
 
@@ -289,7 +289,7 @@ function useAutoComplete(autoCompleteProps) {
289
289
  var defaultQuery = "";
290
290
  if (multiple) defaultQuery = "";else if (!utils.isUndefined(defaultValues)) defaultQuery = defaultValues[0];else if (!utils.isUndefined(valuesProp)) defaultQuery = valuesProp[0];
291
291
 
292
- var _useState2 = React.useState(defaultQuery),
292
+ var _useState2 = React.useState((_defaultQuery = defaultQuery) != null ? _defaultQuery : ""),
293
293
  query = _useState2[0],
294
294
  setQuery = _useState2[1];
295
295
 
@@ -352,9 +352,12 @@ function useAutoComplete(autoCompleteProps) {
352
352
  var selectItem = function selectItem(optionValue) {
353
353
  var _inputRef$current2;
354
354
 
355
- if (!values.includes(optionValue) && values.length < maxSelections) setValues(function (v) {
356
- return multiple ? [].concat(v, [optionValue]) : [optionValue];
357
- });
355
+ if (!values.includes(optionValue) && values.length < maxSelections) {
356
+ setValues(function (v) {
357
+ return multiple ? [].concat(v, [optionValue]) : [optionValue];
358
+ });
359
+ }
360
+
358
361
  var option = filteredList.find(function (i) {
359
362
  return i.value === optionValue;
360
363
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chakra-autocomplete.cjs.development.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/helpers/list.ts","../src/autocomplete-list.tsx","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]]).toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode) => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : undefined,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n value,\n values: valuesProp = value ? [value] : defaultValues ? undefined : [],\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery);\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n\n const item = filteredList.find(opt => opt.value === values[0]);\n const optionLabel = item?.label || item?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n const listIsFocused = e.relatedTarget === listRef?.current;\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if (key === \"Enter\") {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: \"unstyled\",\n },\n };\n };\n\n const dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return React.Children.map(children, (child: any, i) => {\n if (child.type.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n });\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s1","s2","pairs1","pairs2","set","Set","total","hits","item","getDefItemValue","Object","keys","toString","setEmphasis","children","query","isEmpty","newChildren","replace","RegExp","escapeRegex","match","getItemList","itemChildren","getChildrenDeep","child","type","displayName","map","itemObj","pick","props","getValue","value","finObj","isDefined","label","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","hasLastItem","lastItem","hasChildren","filteredList","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","undefined","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","values","valuesProp","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","selectMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","optionLabel","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","getListProps","width","marginBox","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
1
+ {"version":3,"file":"chakra-autocomplete.cjs.development.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/helpers/list.ts","../src/autocomplete-list.tsx","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]]).toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode) => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [\"\"],\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n value,\n values: valuesProp = value ? [value] : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n\n const item = filteredList.find(opt => opt.value === values[0]);\n const optionLabel = item?.label || item?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n const listIsFocused = e.relatedTarget === listRef?.current;\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if (key === \"Enter\") {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: \"unstyled\",\n },\n };\n };\n\n const dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return React.Children.map(children, (child: any, i) => {\n if (child.type.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n });\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s1","s2","pairs1","pairs2","set","Set","total","hits","item","getDefItemValue","Object","keys","toString","setEmphasis","children","query","isEmpty","newChildren","replace","RegExp","escapeRegex","match","getItemList","itemChildren","getChildrenDeep","child","type","displayName","map","itemObj","pick","props","getValue","value","finObj","isDefined","label","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","hasLastItem","lastItem","hasChildren","filteredList","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","selectMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","optionLabel","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","getListProps","width","marginBox","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@chakra-ui/react-utils"),o=require("@chakra-ui/react"),u=require("@chakra-ui/utils"),l=require("react-nanny"),i=require("@chakra-ui/layout"),a=require("@chakra-ui/tag"),s=r.createContext({name:"AutoCompleteContext",errorMessage:"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`"}),c=s[0],f=s[1];function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){if(null==e)return{};var n,r,o={},u=Object.keys(e);for(r=0;r<u.length;r++)t.indexOf(n=u[r])>=0||(o[n]=e[n]);return o}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n){function r(e,t){e=" ".repeat(t-1)+e.toLowerCase()+" ".repeat(t-1);for(var n=new Array(e.length-t+1),r=0;r<n.length;r++)n[r]=e.slice(r,r+t);return n}if(void 0===n&&(n=2),null==e||!e.length||null==t||!t.length)return 0;for(var o,u=e.length<t.length?t:e,l=r(e.length<t.length?e:t,n),i=r(u,n),a=new Set(l),s=i.length,c=0,f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,void 0):void 0}}(e))){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(i);!(o=f()).done;)a.delete(o.value)&&c++;return c/s}var g=function(e){return("string"==typeof e?e:e[Object.keys(e)[0]]).toString()},h=function(e,t){return"string"!=typeof e||u.isEmpty(t)?e:e.toString().replace(new RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi"),(function(e){return"<mark>"+e+"</mark>"}))},y=function(e,t,n){return(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==n?void 0:n.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||m(e,t)>=.5||m(e,n)>=.5},b=function(e,t){return d({},t&&d({},e.field,{_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3}),{cursor:"text",h:"fit-content"})},C=function(e,t){return l.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},I=function(e,t){return l.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},x=["onBlur","onChange","onFocus","onKeyDown","variant"],O=["_fixed","_focus","children","disabled","label","value","fixed","getValue","onClick","onMouseOver","sx"];function w(e){var n,r=e.closeOnBlur,i=void 0===r||r,a=e.closeOnSelect,s=e.creatable,c=e.emphasize,f=e.emptyState,v=void 0===f||f,m=e.freeSolo,w=e.isReadOnly,S=e.listAllValuesOnFocus,A=e.maxSuggestions,E=e.multiple,F=e.defaultValue,R=e.defaultValues,j=void 0===R?F?[F]:void 0:R,D=e.onReady,k=e.shouldRenderSuggestions,L=void 0===k?function(){return!0}:k,P=e.suggestWhenEmpty,N=e.value,_=e.values,M=void 0===_?N?[N]:j?void 0:[]:_;a=a||!E,m=m||!!E||e.freeSolo;var T=o.useDisclosure({defaultIsOpen:e.defaultIsOpen}),V=T.isOpen,q=T.onClose,B=T.onOpen,G=u.runIfFn(e.children,{isOpen:V,onClose:q,onOpen:B}),W=function(e){return l.getChildrenDeep(e,(function(e){var t;return"AutoCompleteItem"===(null==e||null==(t=e.type)?void 0:t.displayName)})).map((function(e){var t=u.pick(e.props,["value","label","fixed","disabled"]),n=e.props.getValue,r=(void 0===n?g:n)(t.value),o=u.isDefined(t.label)?t:d({},t,{label:r});return d({},o,{value:r})}))}(G),H=t.useRef(null),U=t.useRef(null),z=t.useRef(null),K=t.useRef(null),$=t.useState(!1),Y=$[0],Q=$[1],J="";E?J="":u.isUndefined(j)?u.isUndefined(M)||(J=M[0]):J=j[0];var X=t.useState(J),Z=X[0],ee=X[1],te=W.filter((function(t){return t.fixed||u.runIfFn(e.filter||y,Z,t.value,t.label)||Y})).filter((function(e,t){return!A||t<A})),ne=[].concat(te,s?[{value:Z,noFilter:!0}]:[]),re=o.useControllableState({defaultValue:j,value:M,onChange:function(t){var n=ne.find((function(e){return e.value===t[0]})),r=t.map((function(e){return ne.find((function(t){return t.value===e}))}));u.runIfFn(e.onChange,E?t:t[0],E?r:n)}}),oe=re[0],ue=re[1],le=t.useState(null==(n=W[0])?void 0:n.value),ie=le[0],ae=le[1],se=e.maxSelections||oe.length+1,ce=ne.findIndex((function(e){return e.value===ie})),fe=u.getNextItem(ce,ne,!!e.rollNavigation),de=u.getPrevItem(ce,ne,!!e.rollNavigation),pe=u.getFirstItem(ne),ve=u.getLastItem(ne);o.useUpdateEffect((function(){ae(null==pe?void 0:pe.value)}),[Z]),t.useEffect((function(){var t=W.find((function(e){return e.value===ie}));u.runIfFn(e.onOptionFocus,{item:t,selectMethod:K.current,isNewInput:!1})}),[ie,e.onOptionFocus]);var me=function(t){var n;!oe.includes(t)&&oe.length<se&&ue((function(e){return E?[].concat(e,[t]):[t]}));var r,o=ne.find((function(e){return e.value===t}));E&&(null==(r=H.current)||r.focus()),e.focusInputOnSelect&&(null==(n=H.current)||n.focus()),u.runIfFn(e.onSelectOption,{item:o,selectMethod:K.current,isNewInput:!1}),a&&q()},ge=function(t){ue((function(n){var r=W.find((function(e){return e.value===t}));return u.runIfFn(e.onTagRemoved,t,r,n),n.filter((function(e){return e!==t}))})),Z===t&&ee("")},he=E?oe.map((function(e){var t;return{label:(null==(t=W.find((function(t){return t.value===e})))?void 0:t.label)||e,onRemove:function(){return ge(e)}}})):[];t.useEffect((function(){u.runIfFn(D,{tags:he});var e=ne.find((function(e){return e.value===oe[0]})),t=(null==e?void 0:e.label)||(null==e?void 0:e.value);ee((function(){return E?"":null!=t?t:""}))}),[oe]);var ye=o.useDimensions(U,!0);return{autoCompleteProps:e,children:G,filteredList:ne,filteredResults:te,focusedValue:ie,getEmptyStateProps:function(e){if(ne.every((function(e){return e.noFilter}))&&v&&!s)return"boolean"==typeof v?e:u.runIfFn(v,{query:Z})},getGroupProps:function(e){var t=function(e,t){return u.isDefined(l.getChildDeep(e,(function(e){return t.findIndex((function(t){var n;return t.value===(null==(n=e.props)?void 0:n.value)}))>=0})))}(e.children,ne);return{divider:{hasFirstChild:C(e.children,pe),hasLastChild:I(e.children,u.getLastItem(ne.filter((function(e){return u.isUndefined(null==e?void 0:e.noFilter)}))))},group:{display:t?"initial":"none"}}},getInputProps:function(t,n){var r=t.onBlur,o=t.onChange,l=t.onFocus,a=t.onKeyDown,s=p(t,x);return{wrapper:d({ref:U,onClick:function(){var e;null==H||null==(e=H.current)||e.focus()},tabIndex:0},b(n),s),input:{isReadOnly:w,onFocus:function(t){u.runIfFn(l,t),e.openOnFocus&&!w&&B(),e.selectOnFocus&&t.target.select(),S&&Q(!0)},onBlur:function(e){var t;u.runIfFn(r,e);var n,o=e.relatedTarget===(null==z?void 0:z.current),l=null==(t=U.current)?void 0:t.contains(e.relatedTarget);o||l||(i&&q(),oe.includes(e.target.value)||m||ee(null!=(n=u.getLastItem(oe))?n:""))},onChange:function(e){var t=e.target.value;u.runIfFn(o,e),ee(e.target.value);var n=u.isEmpty(t);!u.runIfFn(L,t)||n&&!P?q():B(),Q(!1)},onKeyDown:function(e){u.runIfFn(a,e),K.current="keyboard";var t,n=e.key,r=ne[ce];return"Enter"===n?(!r||null!=r&&r.disabled?null==(t=H.current)||t.focus():me(null==r?void 0:r.value),void e.preventDefault()):"ArrowDown"===n?(ae(null==fe?void 0:fe.value),void e.preventDefault()):"ArrowUp"===n?(ae(null==de?void 0:de.value),void e.preventDefault()):"Tab"===n?(ae(null==fe?void 0:fe.value),void e.preventDefault()):"Home"===n?(ae(null==pe?void 0:pe.value),void e.preventDefault()):"End"===n?(ae(null==ve?void 0:ve.value),void e.preventDefault()):void("Escape"===n&&u.callAll(q,e.preventDefault))},value:Z,variant:"unstyled"}}},getItemProps:function(e,t){var n,r=e._fixed,o=e._focus,l=e.children,i=e.disabled,a=e.label,s=e.value,f=e.fixed,v=e.getValue,m=void 0===v?g:v,y=e.onClick,b=e.onMouseOver,C=e.sx,I=p(e,O),x=t?s:null==(n=m(s))?void 0:n.toString(),w=x===ie,S=ne.findIndex((function(e){return e.value===x}))>=0,A=l||a||x;return{item:d({},"string"==typeof A&&c?{dangerouslySetInnerHTML:{__html:h(A,Z)}}:{children:A},{"aria-selected":oe.includes(x),"aria-disabled":i,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:function(e){var t;u.runIfFn(y,e),i?null==(t=H.current)||t.focus():me(x)},onMouseOver:function(e){u.runIfFn(b,e),ae(x),K.current="mouse"},sx:d({},C,{mark:d({color:"inherit",bg:"transparent"},u.isObject(c)?c:{fontWeight:c?"extrabold":"inherit"})})},w&&(o||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),f&&r,I),root:{isValidSuggestion:S,value:x}}},getListProps:function(){return{width:null==ye?void 0:ye.marginBox.width}},inputRef:H,interactionRef:K,isOpen:V,itemList:W,listRef:z,onClose:q,onOpen:B,query:Z,removeItem:ge,resetItems:function(e){var t;ue([]),e&&(null==(t=H.current)||t.focus())},setQuery:ee,tags:he,values:oe}}var S=o.forwardRef((function(e,r){var u=w(e),l=u.children,i=u.isOpen,a=u.onClose,s=u.onOpen,f=u.resetItems,d=u.removeItem;return t.useImperativeHandle(r,(function(){return{resetItems:f,removeItem:d}})),n.createElement(c,{value:u},n.createElement(o.Popover,{isLazy:!0,isOpen:i,onClose:a,onOpen:s,autoFocus:!1,placement:"bottom",closeOnBlur:!0},n.createElement(o.chakra.div,{sx:{".chakra-popover__popper":{position:"unset !important"}},w:"full",ref:r},l)))}));S.displayName="AutoComplete";var A=["children","dangerouslySetInnerHTML"],E=o.forwardRef((function(e,r){var l=f(),i=l.focusedValue,a=l.getItemProps,s=l.interactionRef,c=t.useRef(),d=o.useMergeRefs(r,c),v=a(e),m=v.root,g=m.isValidSuggestion,h=m.value,y=i===h;t.useEffect((function(){var e;y&&"keyboard"===s.current&&(null==c||null==(e=c.current)||e.scrollIntoView({behavior:"smooth",block:"center"}))}),[y,s]),t.useEffect((function(){"string"!=typeof h&&console.warn("wow"),"string"!=typeof h&&u.isUndefined(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")}),[]);var b=v.item,C=b.children,I=b.dangerouslySetInnerHTML,x=p(b,A),O=u.omit(x,["groupId"]);return g?n.createElement(o.Flex,Object.assign({ref:d},F,O),C||n.createElement("span",{dangerouslySetInnerHTML:I})):null}));E.displayName="AutoCompleteItem";var F={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},R=["children"],j=["children"];function D(e){var t=e.children,r=p(e,R),l=f(),i=l.autoCompleteProps,a=l.getItemProps,s=l.query,c=l.filteredResults,v=n.createElement("mark",null,s),m=a(d({},e,{value:s,children:u.runIfFn(t,{value:v})}),!0).item,g=m.children,h=p(m,j),y=c.some((function(e){return e.value===s}));return!i.creatable||u.isEmpty(s)||y?null:n.createElement(o.Flex,Object.assign({},F,h,r),g||"Add "+s)}D.displayName="AutoCompleteCreatable";var k=["children","showDivider"],L=o.forwardRef((function(e,t){var r=e.children,l=p(e,k),i=u.omit(l,["groupSibling"]),a=(0,f().getGroupProps)(e).group,s=_(e);return n.createElement(o.Box,Object.assign({ref:t},a,i),n.createElement(o.Divider,Object.assign({},s.top)),r,n.createElement(o.Divider,Object.assign({},s.bottom)))})),P=o.forwardRef((function(e,t){return n.createElement(o.Flex,Object.assign({},N,e,{ref:t}))}));L.displayName="AutoCompleteGroup",P.displayName="AutoCompleteGroupTitle";var N={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},_=function(e){var t=f(),n=e.groupSibling,r=(0,t.getGroupProps)(e).divider,o=r.hasLastChild,u={my:2,borderColor:e.dividerColor};return{top:d({},u,{mb:4,display:!e.showDivider||r.hasFirstChild?"none":""}),bottom:d({},u,{display:!e.showDivider||o||n?"none":""})}},M=["children"],T=o.forwardRef((function(e,t){var r=f(),l=r.getInputProps,i=r.tags,a=o.useMergeRefs(t,r.inputRef),s=e.children,c=l(p(e,M),o.useMultiStyleConfig("Input",e)),d=u.runIfFn(s,{tags:i});return n.createElement(o.Wrap,Object.assign({},c.wrapper),d,n.createElement(o.WrapItem,Object.assign({as:o.Input},c.input,{ref:a})))}));T.displayName="Input",T.id="Input";var V=function(e){var t=(0,f().getEmptyStateProps)(n.createElement(i.Flex,Object.assign({},q),"No options found!"));return n.createElement(i.Box,Object.assign({},e),t)},q={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},B=["children"],G=o.forwardRef((function(e,t){var r=e.children,u=p(e,B),l=f(),i=l.getListProps,a=o.useMergeRefs(t,l.listRef),s=i();return n.createElement(o.PopoverContent,Object.assign({ref:a},W,s,u),function(e){return n.Children.map(e,(function(t,r){if("AutoCompleteGroup"===t.type.displayName){var o=n.Children.toArray(e)[r+1];return n.cloneElement(t,{groupSibling:!!o&&"AutoCompleteGroup"===o.type.displayName})}return t}))}(r),n.createElement(V,null))}));G.displayName="AutoCompleteList";var W={mt:"4",py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",pos:"absolute",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},H=["label","onRemove","disabled"],U=t.memo((function(e){var t=e.label,r=e.onRemove,o=e.disabled,l=p(e,H);return n.createElement(i.WrapItem,null,n.createElement(a.Tag,Object.assign({borderRadius:"md",fontWeight:"normal"},o&&z,l),n.createElement(a.TagLabel,null,t),n.createElement(a.TagCloseButton,Object.assign({onClick:function(){return!o&&u.runIfFn(r)},cursor:"pointer"},o&&z))))})),z={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=S,exports.AutoCompleteCreatable=D,exports.AutoCompleteGroup=L,exports.AutoCompleteGroupTitle=P,exports.AutoCompleteInput=T,exports.AutoCompleteItem=E,exports.AutoCompleteList=G,exports.AutoCompleteProvider=c,exports.AutoCompleteTag=U,exports.baseItemStyles=F,exports.useAutoComplete=w,exports.useAutoCompleteContext=f;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,r=require("@chakra-ui/react-utils"),o=require("@chakra-ui/react"),u=require("@chakra-ui/utils"),l=require("react-nanny"),i=require("@chakra-ui/layout"),a=require("@chakra-ui/tag"),s=r.createContext({name:"AutoCompleteContext",errorMessage:"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`"}),c=s[0],f=s[1];function d(){return(d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function p(e,t){if(null==e)return{};var n,r,o={},u=Object.keys(e);for(r=0;r<u.length;r++)t.indexOf(n=u[r])>=0||(o[n]=e[n]);return o}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n){function r(e,t){e=" ".repeat(t-1)+e.toLowerCase()+" ".repeat(t-1);for(var n=new Array(e.length-t+1),r=0;r<n.length;r++)n[r]=e.slice(r,r+t);return n}if(void 0===n&&(n=2),null==e||!e.length||null==t||!t.length)return 0;for(var o,u=e.length<t.length?t:e,l=r(e.length<t.length?e:t,n),i=r(u,n),a=new Set(l),s=i.length,c=0,f=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,void 0);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,void 0):void 0}}(e))){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(i);!(o=f()).done;)a.delete(o.value)&&c++;return c/s}var g=function(e){return("string"==typeof e?e:e[Object.keys(e)[0]]).toString()},h=function(e,t){return"string"!=typeof e||u.isEmpty(t)?e:e.toString().replace(new RegExp(t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"gi"),(function(e){return"<mark>"+e+"</mark>"}))},y=function(e,t,n){return(null==t?void 0:t.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||(null==n?void 0:n.toLowerCase().indexOf(null==e?void 0:e.toLowerCase()))>=0||m(e,t)>=.5||m(e,n)>=.5},b=function(e,t){return d({},t&&d({},e.field,{_focusWithin:e.field._focus,pos:"relative",minH:9,py:1.5,spacing:3}),{cursor:"text",h:"fit-content"})},C=function(e,t){return l.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},I=function(e,t){return l.getChildDeep(e,(function(e){var n;return"AutoCompleteItem"===(null==e||null==(n=e.type)?void 0:n.displayName)&&e.props.value===(null==t?void 0:t.value)}))},x=["onBlur","onChange","onFocus","onKeyDown","variant"],O=["_fixed","_focus","children","disabled","label","value","fixed","getValue","onClick","onMouseOver","sx"];function w(e){var n,r,i=e.closeOnBlur,a=void 0===i||i,s=e.closeOnSelect,c=e.creatable,f=e.emphasize,v=e.emptyState,m=void 0===v||v,w=e.freeSolo,S=e.isReadOnly,A=e.listAllValuesOnFocus,E=e.maxSuggestions,F=e.multiple,R=e.defaultValue,j=e.defaultValues,D=void 0===j?R?[R]:[""]:j,k=e.onReady,L=e.shouldRenderSuggestions,P=void 0===L?function(){return!0}:L,N=e.suggestWhenEmpty,_=e.value,M=e.values,T=void 0===M?_?[_]:void 0:M;s=s||!F,w=w||!!F||e.freeSolo;var V=o.useDisclosure({defaultIsOpen:e.defaultIsOpen}),q=V.isOpen,B=V.onClose,G=V.onOpen,W=u.runIfFn(e.children,{isOpen:q,onClose:B,onOpen:G}),H=function(e){return l.getChildrenDeep(e,(function(e){var t;return"AutoCompleteItem"===(null==e||null==(t=e.type)?void 0:t.displayName)})).map((function(e){var t=u.pick(e.props,["value","label","fixed","disabled"]),n=e.props.getValue,r=(void 0===n?g:n)(t.value),o=u.isDefined(t.label)?t:d({},t,{label:r});return d({},o,{value:r})}))}(W),U=t.useRef(null),z=t.useRef(null),K=t.useRef(null),$=t.useRef(null),Y=t.useState(!1),Q=Y[0],J=Y[1],X="";F?X="":u.isUndefined(D)?u.isUndefined(T)||(X=T[0]):X=D[0];var Z=t.useState(null!=(n=X)?n:""),ee=Z[0],te=Z[1],ne=H.filter((function(t){return t.fixed||u.runIfFn(e.filter||y,ee,t.value,t.label)||Q})).filter((function(e,t){return!E||t<E})),re=[].concat(ne,c?[{value:ee,noFilter:!0}]:[]),oe=o.useControllableState({defaultValue:D,value:T,onChange:function(t){var n=re.find((function(e){return e.value===t[0]})),r=t.map((function(e){return re.find((function(t){return t.value===e}))}));u.runIfFn(e.onChange,F?t:t[0],F?r:n)}}),ue=oe[0],le=oe[1],ie=t.useState(null==(r=H[0])?void 0:r.value),ae=ie[0],se=ie[1],ce=e.maxSelections||ue.length+1,fe=re.findIndex((function(e){return e.value===ae})),de=u.getNextItem(fe,re,!!e.rollNavigation),pe=u.getPrevItem(fe,re,!!e.rollNavigation),ve=u.getFirstItem(re),me=u.getLastItem(re);o.useUpdateEffect((function(){se(null==ve?void 0:ve.value)}),[ee]),t.useEffect((function(){var t=H.find((function(e){return e.value===ae}));u.runIfFn(e.onOptionFocus,{item:t,selectMethod:$.current,isNewInput:!1})}),[ae,e.onOptionFocus]);var ge=function(t){var n;!ue.includes(t)&&ue.length<ce&&le((function(e){return F?[].concat(e,[t]):[t]}));var r,o=re.find((function(e){return e.value===t}));F&&(null==(r=U.current)||r.focus()),e.focusInputOnSelect&&(null==(n=U.current)||n.focus()),u.runIfFn(e.onSelectOption,{item:o,selectMethod:$.current,isNewInput:!1}),s&&B()},he=function(t){le((function(n){var r=H.find((function(e){return e.value===t}));return u.runIfFn(e.onTagRemoved,t,r,n),n.filter((function(e){return e!==t}))})),ee===t&&te("")},ye=F?ue.map((function(e){var t;return{label:(null==(t=H.find((function(t){return t.value===e})))?void 0:t.label)||e,onRemove:function(){return he(e)}}})):[];t.useEffect((function(){u.runIfFn(k,{tags:ye});var e=re.find((function(e){return e.value===ue[0]})),t=(null==e?void 0:e.label)||(null==e?void 0:e.value);te((function(){return F?"":null!=t?t:""}))}),[ue]);var be=o.useDimensions(z,!0);return{autoCompleteProps:e,children:W,filteredList:re,filteredResults:ne,focusedValue:ae,getEmptyStateProps:function(e){if(re.every((function(e){return e.noFilter}))&&m&&!c)return"boolean"==typeof m?e:u.runIfFn(m,{query:ee})},getGroupProps:function(e){var t=function(e,t){return u.isDefined(l.getChildDeep(e,(function(e){return t.findIndex((function(t){var n;return t.value===(null==(n=e.props)?void 0:n.value)}))>=0})))}(e.children,re);return{divider:{hasFirstChild:C(e.children,ve),hasLastChild:I(e.children,u.getLastItem(re.filter((function(e){return u.isUndefined(null==e?void 0:e.noFilter)}))))},group:{display:t?"initial":"none"}}},getInputProps:function(t,n){var r=t.onBlur,o=t.onChange,l=t.onFocus,i=t.onKeyDown,s=p(t,x);return{wrapper:d({ref:z,onClick:function(){var e;null==U||null==(e=U.current)||e.focus()},tabIndex:0},b(n),s),input:{isReadOnly:S,onFocus:function(t){u.runIfFn(l,t),e.openOnFocus&&!S&&G(),e.selectOnFocus&&t.target.select(),A&&J(!0)},onBlur:function(e){var t;u.runIfFn(r,e);var n,o=e.relatedTarget===(null==K?void 0:K.current),l=null==(t=z.current)?void 0:t.contains(e.relatedTarget);o||l||(a&&B(),ue.includes(e.target.value)||w||te(null!=(n=u.getLastItem(ue))?n:""))},onChange:function(e){var t=e.target.value;u.runIfFn(o,e),te(e.target.value);var n=u.isEmpty(t);!u.runIfFn(P,t)||n&&!N?B():G(),J(!1)},onKeyDown:function(e){u.runIfFn(i,e),$.current="keyboard";var t,n=e.key,r=re[fe];return"Enter"===n?(!r||null!=r&&r.disabled?null==(t=U.current)||t.focus():ge(null==r?void 0:r.value),void e.preventDefault()):"ArrowDown"===n?(se(null==de?void 0:de.value),void e.preventDefault()):"ArrowUp"===n?(se(null==pe?void 0:pe.value),void e.preventDefault()):"Tab"===n?(se(null==de?void 0:de.value),void e.preventDefault()):"Home"===n?(se(null==ve?void 0:ve.value),void e.preventDefault()):"End"===n?(se(null==me?void 0:me.value),void e.preventDefault()):void("Escape"===n&&u.callAll(B,e.preventDefault))},value:ee,variant:"unstyled"}}},getItemProps:function(e,t){var n,r=e._fixed,o=e._focus,l=e.children,i=e.disabled,a=e.label,s=e.value,c=e.fixed,v=e.getValue,m=void 0===v?g:v,y=e.onClick,b=e.onMouseOver,C=e.sx,I=p(e,O),x=t?s:null==(n=m(s))?void 0:n.toString(),w=x===ae,S=re.findIndex((function(e){return e.value===x}))>=0,A=l||a||x;return{item:d({},"string"==typeof A&&f?{dangerouslySetInnerHTML:{__html:h(A,ee)}}:{children:A},{"aria-selected":ue.includes(x),"aria-disabled":i,_disabled:{opacity:.4,cursor:"not-allowed",userSelect:"none"},onClick:function(e){var t;u.runIfFn(y,e),i?null==(t=U.current)||t.focus():ge(x)},onMouseOver:function(e){u.runIfFn(b,e),se(x),$.current="mouse"},sx:d({},C,{mark:d({color:"inherit",bg:"transparent"},u.isObject(f)?f:{fontWeight:f?"extrabold":"inherit"})})},w&&(o||{bg:"whiteAlpha.100",_light:{bg:"gray.200"}}),c&&r,I),root:{isValidSuggestion:S,value:x}}},getListProps:function(){return{width:null==be?void 0:be.marginBox.width}},inputRef:U,interactionRef:$,isOpen:q,itemList:H,listRef:K,onClose:B,onOpen:G,query:ee,removeItem:he,resetItems:function(e){var t;le([]),e&&(null==(t=U.current)||t.focus())},setQuery:te,tags:ye,values:ue}}var S=o.forwardRef((function(e,r){var u=w(e),l=u.children,i=u.isOpen,a=u.onClose,s=u.onOpen,f=u.resetItems,d=u.removeItem;return t.useImperativeHandle(r,(function(){return{resetItems:f,removeItem:d}})),n.createElement(c,{value:u},n.createElement(o.Popover,{isLazy:!0,isOpen:i,onClose:a,onOpen:s,autoFocus:!1,placement:"bottom",closeOnBlur:!0},n.createElement(o.chakra.div,{sx:{".chakra-popover__popper":{position:"unset !important"}},w:"full",ref:r},l)))}));S.displayName="AutoComplete";var A=["children","dangerouslySetInnerHTML"],E=o.forwardRef((function(e,r){var l=f(),i=l.focusedValue,a=l.getItemProps,s=l.interactionRef,c=t.useRef(),d=o.useMergeRefs(r,c),v=a(e),m=v.root,g=m.isValidSuggestion,h=m.value,y=i===h;t.useEffect((function(){var e;y&&"keyboard"===s.current&&(null==c||null==(e=c.current)||e.scrollIntoView({behavior:"smooth",block:"center"}))}),[y,s]),t.useEffect((function(){"string"!=typeof h&&console.warn("wow"),"string"!=typeof h&&u.isUndefined(e.getValue)&&console.error("You must define the `getValue` prop, when an Item's value is not a string")}),[]);var b=v.item,C=b.children,I=b.dangerouslySetInnerHTML,x=p(b,A),O=u.omit(x,["groupId"]);return g?n.createElement(o.Flex,Object.assign({ref:d},F,O),C||n.createElement("span",{dangerouslySetInnerHTML:I})):null}));E.displayName="AutoCompleteItem";var F={mx:"2",px:"2",py:"2",rounded:"md",cursor:"pointer"},R=["children"],j=["children"];function D(e){var t=e.children,r=p(e,R),l=f(),i=l.autoCompleteProps,a=l.getItemProps,s=l.query,c=l.filteredResults,v=n.createElement("mark",null,s),m=a(d({},e,{value:s,children:u.runIfFn(t,{value:v})}),!0).item,g=m.children,h=p(m,j),y=c.some((function(e){return e.value===s}));return!i.creatable||u.isEmpty(s)||y?null:n.createElement(o.Flex,Object.assign({},F,h,r),g||"Add "+s)}D.displayName="AutoCompleteCreatable";var k=["children","showDivider"],L=o.forwardRef((function(e,t){var r=e.children,l=p(e,k),i=u.omit(l,["groupSibling"]),a=(0,f().getGroupProps)(e).group,s=_(e);return n.createElement(o.Box,Object.assign({ref:t},a,i),n.createElement(o.Divider,Object.assign({},s.top)),r,n.createElement(o.Divider,Object.assign({},s.bottom)))})),P=o.forwardRef((function(e,t){return n.createElement(o.Flex,Object.assign({},N,e,{ref:t}))}));L.displayName="AutoCompleteGroup",P.displayName="AutoCompleteGroupTitle";var N={ml:5,my:1,fontSize:"xs",letterSpacing:"wider",fontWeight:"extrabold",textTransform:"uppercase"},_=function(e){var t=f(),n=e.groupSibling,r=(0,t.getGroupProps)(e).divider,o=r.hasLastChild,u={my:2,borderColor:e.dividerColor};return{top:d({},u,{mb:4,display:!e.showDivider||r.hasFirstChild?"none":""}),bottom:d({},u,{display:!e.showDivider||o||n?"none":""})}},M=["children"],T=o.forwardRef((function(e,t){var r=f(),l=r.getInputProps,i=r.tags,a=o.useMergeRefs(t,r.inputRef),s=e.children,c=l(p(e,M),o.useMultiStyleConfig("Input",e)),d=u.runIfFn(s,{tags:i});return n.createElement(o.Wrap,Object.assign({},c.wrapper),d,n.createElement(o.WrapItem,Object.assign({as:o.Input},c.input,{ref:a})))}));T.displayName="Input",T.id="Input";var V=function(e){var t=(0,f().getEmptyStateProps)(n.createElement(i.Flex,Object.assign({},q),"No options found!"));return n.createElement(i.Box,Object.assign({},e),t)},q={fontSize:"sm",align:"center",justify:"center",fontWeight:"bold",fontStyle:"italic"},B=["children"],G=o.forwardRef((function(e,t){var r=e.children,u=p(e,B),l=f(),i=l.getListProps,a=o.useMergeRefs(t,l.listRef),s=i();return n.createElement(o.PopoverContent,Object.assign({ref:a},W,s,u),function(e){return n.Children.map(e,(function(t,r){if("AutoCompleteGroup"===t.type.displayName){var o=n.Children.toArray(e)[r+1];return n.cloneElement(t,{groupSibling:!!o&&"AutoCompleteGroup"===o.type.displayName})}return t}))}(r),n.createElement(V,null))}));G.displayName="AutoCompleteList";var W={mt:"4",py:"4",opacity:"0",bg:"#232934",rounded:"md",maxH:"350px",border:"none",shadow:"base",pos:"absolute",zIndex:"popover",overflowY:"auto",_light:{bg:"#ffffff"},_focus:{boxShadow:"none"}},H=["label","onRemove","disabled"],U=t.memo((function(e){var t=e.label,r=e.onRemove,o=e.disabled,l=p(e,H);return n.createElement(i.WrapItem,null,n.createElement(a.Tag,Object.assign({borderRadius:"md",fontWeight:"normal"},o&&z,l),n.createElement(a.TagLabel,null,t),n.createElement(a.TagCloseButton,Object.assign({onClick:function(){return!o&&u.runIfFn(r)},cursor:"pointer"},o&&z))))})),z={cursor:"text",userSelect:"none",opacity:.4,_focus:{boxShadow:"none"}};exports.AutoComplete=S,exports.AutoCompleteCreatable=D,exports.AutoCompleteGroup=L,exports.AutoCompleteGroupTitle=P,exports.AutoCompleteInput=T,exports.AutoCompleteItem=E,exports.AutoCompleteList=G,exports.AutoCompleteProvider=c,exports.AutoCompleteTag=U,exports.baseItemStyles=F,exports.useAutoComplete=w,exports.useAutoCompleteContext=f;
2
2
  //# sourceMappingURL=chakra-autocomplete.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chakra-autocomplete.cjs.production.min.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/autocomplete-list.tsx","../src/helpers/list.ts","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]]).toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode) => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : undefined,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n value,\n values: valuesProp = value ? [value] : defaultValues ? undefined : [],\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery);\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n\n const item = filteredList.find(opt => opt.value === values[0]);\n const optionLabel = item?.label || item?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n const listIsFocused = e.relatedTarget === listRef?.current;\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if (key === \"Enter\") {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: \"unstyled\",\n },\n };\n };\n\n const dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return React.Children.map(children, (child: any, i) => {\n if (child.type.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n });\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s2","pairs1","pairs2","set","Set","total","hits","getDefItemValue","item","Object","keys","toString","setEmphasis","children","query","isEmpty","replace","RegExp","match","defaultFilterMethod","itemValue","itemLabel","indexOf","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","getChildDeep","child","type","displayName","props","value","hasLastItem","lastItem","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","undefined","onReady","shouldRenderSuggestions","suggestWhenEmpty","values","valuesProp","useDisclosure","defaultIsOpen","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","itemObj","pick","getValue","finObj","isDefined","label","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","filteredList","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","_itemList$","focusedValue","setFocusedValue","maxSelections","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","selectMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","tags","tag","onRemove","optionLabel","dim","useDimensions","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","_child$props","hasChildren","divider","hasFirstChild","hasLastChild","group","display","getInputProps","onBlur","onFocus","onKeyDown","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","_inputWrapperRef$curr","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","variant","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","_getValue","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","bg","isObject","fontWeight","_light","root","getListProps","width","marginBox","resetItems","focusInput","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","AutoCompleteGroup","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","showDivider","AutoCompleteInput","inputProps","useMultiStyleConfig","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","AutoCompleteList","listProps","PopoverContent","Children","sibling","toArray","cloneElement","siblingInfo","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
1
+ {"version":3,"file":"chakra-autocomplete.cjs.production.min.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/autocomplete-list.tsx","../src/helpers/list.ts","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]]).toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode) => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [\"\"],\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n value,\n values: valuesProp = value ? [value] : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n\n const item = filteredList.find(opt => opt.value === values[0]);\n const optionLabel = item?.label || item?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n const listIsFocused = e.relatedTarget === listRef?.current;\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if (key === \"Enter\") {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: \"unstyled\",\n },\n };\n };\n\n const dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return React.Children.map(children, (child: any, i) => {\n if (child.type.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n });\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s2","pairs1","pairs2","set","Set","total","hits","getDefItemValue","item","Object","keys","toString","setEmphasis","children","query","isEmpty","replace","RegExp","match","defaultFilterMethod","itemValue","itemLabel","indexOf","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","getChildDeep","child","type","displayName","props","value","hasLastItem","lastItem","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","shouldRenderSuggestions","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","defaultIsOpen","isOpen","onClose","onOpen","runIfFn","itemList","getChildrenDeep","map","itemObj","pick","getValue","finObj","isDefined","label","getItemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","filteredList","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","_itemList$","focusedValue","setFocusedValue","maxSelections","focusedIndex","findIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","selectMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","tags","tag","onRemove","optionLabel","dim","useDimensions","getEmptyStateProps","defaultEmptyState","every","getGroupProps","hasItems","_child$props","hasChildren","divider","hasFirstChild","hasLastChild","group","display","getInputProps","onBlur","onFocus","onKeyDown","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","_inputWrapperRef$curr","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","variant","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","_getValue","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","bg","isObject","fontWeight","_light","root","getListProps","width","marginBox","resetItems","focusInput","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","AutoCompleteGroup","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","showDivider","AutoCompleteInput","inputProps","useMultiStyleConfig","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","AutoCompleteList","listProps","PopoverContent","Children","sibling","toArray","cloneElement","siblingInfo","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
@@ -227,7 +227,7 @@ var _excluded = ["onBlur", "onChange", "onFocus", "onKeyDown", "variant"],
227
227
  */
228
228
 
229
229
  function useAutoComplete(autoCompleteProps) {
230
- var _itemList$;
230
+ var _defaultQuery, _itemList$;
231
231
 
232
232
  var _autoCompleteProps$cl = autoCompleteProps.closeOnBlur,
233
233
  closeOnBlur = _autoCompleteProps$cl === void 0 ? true : _autoCompleteProps$cl,
@@ -243,7 +243,7 @@ function useAutoComplete(autoCompleteProps) {
243
243
  multiple = autoCompleteProps.multiple,
244
244
  defaultValue = autoCompleteProps.defaultValue,
245
245
  _autoCompleteProps$de = autoCompleteProps.defaultValues,
246
- defaultValues = _autoCompleteProps$de === void 0 ? defaultValue ? [defaultValue] : undefined : _autoCompleteProps$de,
246
+ defaultValues = _autoCompleteProps$de === void 0 ? defaultValue ? [defaultValue] : [""] : _autoCompleteProps$de,
247
247
  onReady = autoCompleteProps.onReady,
248
248
  defaultIsOpen = autoCompleteProps.defaultIsOpen,
249
249
  _autoCompleteProps$sh = autoCompleteProps.shouldRenderSuggestions,
@@ -253,7 +253,7 @@ function useAutoComplete(autoCompleteProps) {
253
253
  suggestWhenEmpty = autoCompleteProps.suggestWhenEmpty,
254
254
  value = autoCompleteProps.value,
255
255
  _autoCompleteProps$va = autoCompleteProps.values,
256
- valuesProp = _autoCompleteProps$va === void 0 ? value ? [value] : defaultValues ? undefined : [] : _autoCompleteProps$va;
256
+ valuesProp = _autoCompleteProps$va === void 0 ? value ? [value] : undefined : _autoCompleteProps$va;
257
257
  closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;
258
258
  freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;
259
259
 
@@ -282,7 +282,7 @@ function useAutoComplete(autoCompleteProps) {
282
282
  var defaultQuery = "";
283
283
  if (multiple) defaultQuery = "";else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];
284
284
 
285
- var _useState2 = useState(defaultQuery),
285
+ var _useState2 = useState((_defaultQuery = defaultQuery) != null ? _defaultQuery : ""),
286
286
  query = _useState2[0],
287
287
  setQuery = _useState2[1];
288
288
 
@@ -345,9 +345,12 @@ function useAutoComplete(autoCompleteProps) {
345
345
  var selectItem = function selectItem(optionValue) {
346
346
  var _inputRef$current2;
347
347
 
348
- if (!values.includes(optionValue) && values.length < maxSelections) setValues(function (v) {
349
- return multiple ? [].concat(v, [optionValue]) : [optionValue];
350
- });
348
+ if (!values.includes(optionValue) && values.length < maxSelections) {
349
+ setValues(function (v) {
350
+ return multiple ? [].concat(v, [optionValue]) : [optionValue];
351
+ });
352
+ }
353
+
351
354
  var option = filteredList.find(function (i) {
352
355
  return i.value === optionValue;
353
356
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chakra-autocomplete.esm.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/helpers/list.ts","../src/autocomplete-list.tsx","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]]).toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode) => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : undefined,\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n value,\n values: valuesProp = value ? [value] : defaultValues ? undefined : [],\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery);\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections)\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n\n const item = filteredList.find(opt => opt.value === values[0]);\n const optionLabel = item?.label || item?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n const listIsFocused = e.relatedTarget === listRef?.current;\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if (key === \"Enter\") {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: \"unstyled\",\n },\n };\n };\n\n const dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return React.Children.map(children, (child: any, i) => {\n if (child.type.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n });\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s1","s2","pairs1","pairs2","set","Set","total","hits","item","getDefItemValue","Object","keys","toString","setEmphasis","children","query","isEmpty","newChildren","replace","RegExp","escapeRegex","match","getItemList","itemChildren","getChildrenDeep","child","type","displayName","map","itemObj","pick","props","getValue","value","finObj","isDefined","label","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","hasLastItem","lastItem","hasChildren","filteredList","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","undefined","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","values","valuesProp","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","selectMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","optionLabel","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","getListProps","width","marginBox","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":";;;;;;;;kCAG8DA,aAAa,CAEzE;AACAC,EAAAA,IAAI,EAAE,qBADN;AAEAC,EAAAA,YAAY,EACV;AAHF,CAFyE,CAApE;AAAA,IAAOC,oBAAP;AAAA,IAA6BC,sBAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHP;;;;;AAKA,SAAgBC,WAAWC,MAAcC,MAAcC;MAAAA;AAAAA,IAAAA,WAAmB;;;AACxE,WAASC,SAAT,CAAmBC,CAAnB,EAA8BC,GAA9B;AACED,IAAAA,CAAC,GAAG,IAAIE,MAAJ,CAAWD,GAAG,GAAG,CAAjB,IAAsBD,CAAC,CAACG,WAAF,EAAtB,GAAwC,IAAID,MAAJ,CAAWD,GAAG,GAAG,CAAjB,CAA5C;AACA,QAAIG,CAAC,GAAG,IAAIC,KAAJ,CAAUL,CAAC,CAACM,MAAF,GAAWL,GAAX,GAAiB,CAA3B,CAAR;;AACA,SAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,CAAC,CAACE,MAAtB,EAA8BC,CAAC,EAA/B,EAAmC;AACjCH,MAAAA,CAAC,CAACG,CAAD,CAAD,GAAOP,CAAC,CAACQ,KAAF,CAAQD,CAAR,EAAWA,CAAC,GAAGN,GAAf,CAAP;AACD;;AACD,WAAOG,CAAP;AACD;;AAED,MAAI,EAACR,IAAD,YAACA,IAAI,CAAEU,MAAP,KAAiB,EAACT,IAAD,YAACA,IAAI,CAAES,MAAP,CAArB,EAAoC;AAClC,WAAO,GAAP;AACD;AAGD;;;AACA,MAAIG,EAAE,GAAGb,IAAI,CAACU,MAAL,GAAcT,IAAI,CAACS,MAAnB,GAA4BV,IAA5B,GAAmCC,IAA5C;AACA,MAAIa,EAAE,GAAGd,IAAI,CAACU,MAAL,GAAcT,IAAI,CAACS,MAAnB,GAA4BT,IAA5B,GAAmCD,IAA5C;AAEA,MAAIe,MAAM,GAAGZ,SAAS,CAACU,EAAD,EAAKX,QAAL,CAAtB;AACA,MAAIc,MAAM,GAAGb,SAAS,CAACW,EAAD,EAAKZ,QAAL,CAAtB;AACA,MAAIe,GAAG,GAAG,IAAIC,GAAJ,CAAgBH,MAAhB,CAAV;AAEA,MAAII,KAAK,GAAGH,MAAM,CAACN,MAAnB;AACA,MAAIU,IAAI,GAAG,CAAX;;AACA,uDAAiBJ,MAAjB,wCAAyB;AAAA,QAAhBK,IAAgB;;AACvB,QAAIJ,GAAG,UAAH,CAAWI,IAAX,CAAJ,EAAsB;AACpBD,MAAAA,IAAI;AACL;AACF;;AACD,SAAOA,IAAI,GAAGD,KAAd;AACD;;AC5BM,IAAMG,eAAe,GAAG,SAAlBA,eAAkB,CAACD,IAAD;AAAA,SAC7B,CAAC,OAAOA,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCA,IAAI,CAACE,MAAM,CAACC,IAAP,CAAYH,IAAZ,EAAkB,CAAlB,CAAD,CAAvC,EAA+DI,QAA/D,EAD6B;AAAA,CAAxB;AAGP,AAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAgBC,KAAhB;AACzB,MAAI,OAAOD,QAAP,KAAoB,QAApB,IAAgCE,OAAO,CAACD,KAAD,CAA3C,EAAoD;AAClD,WAAOD,QAAP;AACD;;AACD,MAAMG,WAAW,GAAGH,QAAQ,CACzBF,QADiB,GAEjBM,OAFiB,CAGhB,IAAIC,MAAJ,CAAWC,WAAW,CAACL,KAAD,CAAtB,EAA+B,IAA/B,CAHgB,EAIhB,UAACM,KAAD;AAAA,sBAAyBA,KAAzB;AAAA,GAJgB,CAApB;AAMA,SAAOJ,WAAP;AACD,CAXM;AAaP,AAAO,IAAMK,WAAW,GAAG,SAAdA,WAAc,CAACR,QAAD;AACzB,MAAMS,YAAY,GAAGC,eAAe,CAClCV,QADkC,EAElC,UAACW,KAAD;AAAA;;AAAA,WAAgB,CAAAA,KAAK,QAAL,2BAAAA,KAAK,CAAEC,IAAP,iCAAaC,WAAb,MAA6B,kBAA7C;AAAA,GAFkC,CAApC;AAKA,SAAOJ,YAAY,CAACK,GAAb,CAAiB,UAAApB,IAAI;AAC1B,QAAMqB,OAAO,GAAGC,IAAI,CAACtB,IAAI,CAACuB,KAAN,EAAa,CAAC,OAAD,EAAU,OAAV,EAAmB,OAAnB,EAA4B,UAA5B,CAAb,CAApB;AACA,+BAAuCvB,IAAI,CAACuB,KAA5C,CAAQC,QAAR;AAAA,QAAQA,QAAR,qCAAmBvB,eAAnB;AACA,QAAMwB,KAAK,GAAGD,QAAQ,CAACH,OAAO,CAACI,KAAT,CAAtB;AACA,QAAMC,MAAM,GAAGC,SAAS,CAACN,OAAO,CAACO,KAAT,CAAT,GACXP,OADW,gBAENA,OAFM;AAEGO,MAAAA,KAAK,EAAEH;AAFV,MAAf;AAGA,wBAAYC,MAAZ;AAAoBD,MAAAA,KAAK,EAALA;AAApB;AACD,GARM,CAAP;AASD,CAfM;AAiBP,AAAO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB;AAC9B,SAAO;AACLC,IAAAA,EAAE,EAAE,gBADC;AAELC,IAAAA,MAAM,EAAE;AACND,MAAAA,EAAE,EAAE;AADE;AAFH,GAAP;AAMD,CAPM;AASP,AAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CACjCzB,KADiC,EAEjC0B,SAFiC,EAGjCC,SAHiC;AAKjC,SACE,CAAAD,SAAS,QAAT,YAAAA,SAAS,CAAE/C,WAAX,GAAyBiD,OAAzB,CAAiC5B,KAAjC,oBAAiCA,KAAK,CAAErB,WAAP,EAAjC,MAA0D,CAA1D,IACA,CAAAgD,SAAS,QAAT,YAAAA,SAAS,CAAEhD,WAAX,GAAyBiD,OAAzB,CAAiC5B,KAAjC,oBAAiCA,KAAK,CAAErB,WAAP,EAAjC,MAA0D,CAD1D,IAEAR,UAAU,CAAC6B,KAAD,EAAQ0B,SAAR,CAAV,IAAgC,GAFhC,IAGAvD,UAAU,CAAC6B,KAAD,EAAQ2B,SAAR,CAAV,IAAgC,GAJlC;AAMD,CAXM;;AAaP,SAAStB,WAAT,CAAqBwB,MAArB;AACE,SAAOA,MAAM,CAAC1B,OAAP,CAAe,wBAAf,EAAyC,MAAzC,CAAP;AACD;;ACjEM,IAAM2B,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,UAAD,EAAkBC,QAAlB;AAAA,sBAC/BA,QAAQ,iBACPD,UAAU,CAACE,KADJ;AAEVC,IAAAA,YAAY,EAAEH,UAAU,CAACE,KAAX,CAAiBE,MAFrB;AAGVC,IAAAA,GAAG,EAAE,UAHK;AAIVC,IAAAA,IAAI,EAAE,CAJI;AAKV;AACAC,IAAAA,EAAE,EAAE,GANM;AAOVC,IAAAA,OAAO,EAAE;AAPC,IADuB;AAUnCC,IAAAA,MAAM,EAAE,MAV2B;AAWnCC,IAAAA,CAAC,EAAE;AAXgC;AAAA,CAA9B;;ACIA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAAC3C,QAAD,EAAsB4C,SAAtB;AAC1B,MAAMC,MAAM,GAAGC,YAAY,CACzB9C,QADyB,EAEzB,UAACW,KAAD;AAAA;;AAAA,WACE,CAAAA,KAAK,QAAL,2BAAAA,KAAK,CAAEC,IAAP,iCAAaC,WAAb,MAA6B,kBAA7B,IACAF,KAAK,CAACM,KAAN,CAAYE,KAAZ,MAAsByB,SAAtB,oBAAsBA,SAAS,CAAEzB,KAAjC,CAFF;AAAA,GAFyB,CAA3B;AAOA,SAAO0B,MAAP;AACD,CATM;AAUP,AAAO,IAAME,WAAW,GAAG,SAAdA,WAAc,CAAC/C,QAAD,EAAsBgD,QAAtB;AACzB,MAAMH,MAAM,GAAGC,YAAY,CACzB9C,QADyB,EAEzB,UAACW,KAAD;AAAA;;AAAA,WACE,CAAAA,KAAK,QAAL,4BAAAA,KAAK,CAAEC,IAAP,kCAAaC,WAAb,MAA6B,kBAA7B,IACAF,KAAK,CAACM,KAAN,CAAYE,KAAZ,MAAsB6B,QAAtB,oBAAsBA,QAAQ,CAAE7B,KAAhC,CAFF;AAAA,GAFyB,CAA3B;AAMA,SAAO0B,MAAP;AACD,CARM;AAUP,AAAO,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACjD,QAAD,EAAgBkD,YAAhB;AACzB,SAAO7B,SAAS,CACdyB,YAAY,CACV9C,QADU,EAEV,UAACW,KAAD;AAAA,WACEuC,YAAY,CAACC,SAAb,CAAuB,UAAAnE,CAAC;AAAA;;AAAA,aAAIA,CAAC,CAACmC,KAAF,sBAAYR,KAAK,CAACM,KAAlB,qBAAY,aAAaE,KAAzB,CAAJ;AAAA,KAAxB,KAA+D,CADjE;AAAA,GAFU,CADE,CAAhB;AAOD,CARM;;;;ACxBP,AA+BA;;;;;;AAMA,SAAgBiC,gBACdC;;;AAEA,8BAmBIA,iBAnBJ,CACEC,WADF;AAAA,MACEA,WADF,sCACgB,IADhB;AAAA,MAEEC,aAFF,GAmBIF,iBAnBJ,CAEEE,aAFF;AAAA,MAGEC,SAHF,GAmBIH,iBAnBJ,CAGEG,SAHF;AAAA,MAIEC,SAJF,GAmBIJ,iBAnBJ,CAIEI,SAJF;AAAA,8BAmBIJ,iBAnBJ,CAKEK,UALF;AAAA,MAKEA,UALF,sCAKe,IALf;AAAA,MAMEC,QANF,GAmBIN,iBAnBJ,CAMEM,QANF;AAAA,MAOEC,UAPF,GAmBIP,iBAnBJ,CAOEO,UAPF;AAAA,MAQEC,oBARF,GAmBIR,iBAnBJ,CAQEQ,oBARF;AAAA,MASEC,cATF,GAmBIT,iBAnBJ,CASES,cATF;AAAA,MAUE7B,QAVF,GAmBIoB,iBAnBJ,CAUEpB,QAVF;AAAA,MAWE8B,YAXF,GAmBIV,iBAnBJ,CAWEU,YAXF;AAAA,8BAmBIV,iBAnBJ,CAYEW,aAZF;AAAA,MAYEA,aAZF,sCAYkBD,YAAY,GAAG,CAACA,YAAD,CAAH,GAAoBE,SAZlD;AAAA,MAaEC,OAbF,GAmBIb,iBAnBJ,CAaEa,OAbF;AAAA,MAcEC,aAdF,GAmBId,iBAnBJ,CAcEc,aAdF;AAAA,8BAmBId,iBAnBJ,CAeEe,uBAfF;AAAA,MAeEA,uBAfF,sCAe4B;AAAA,WAAM,IAAN;AAAA,GAf5B;AAAA,MAgBEC,gBAhBF,GAmBIhB,iBAnBJ,CAgBEgB,gBAhBF;AAAA,MAiBElD,KAjBF,GAmBIkC,iBAnBJ,CAiBElC,KAjBF;AAAA,8BAmBIkC,iBAnBJ,CAkBEiB,MAlBF;AAAA,MAkBUC,UAlBV,sCAkBuBpD,KAAK,GAAG,CAACA,KAAD,CAAH,GAAa6C,aAAa,GAAGC,SAAH,GAAe,EAlBrE;AAoBAV,EAAAA,aAAa,GAAGA,aAAa,GAAGA,aAAH,GAAmBtB,QAAQ,GAAG,KAAH,GAAW,IAAnE;AAEA0B,EAAAA,QAAQ,GAAGA,QAAQ,GAAGA,QAAH,GAAc1B,QAAQ,GAAG,IAAH,GAAUoB,iBAAiB,CAACM,QAArE;;AAEA,uBAAoCa,aAAa,CAAC;AAAEL,IAAAA,aAAa,EAAbA;AAAF,GAAD,CAAjD;AAAA,MAAQM,MAAR,kBAAQA,MAAR;AAAA,MAAgBC,OAAhB,kBAAgBA,OAAhB;AAAA,MAAyBC,MAAzB,kBAAyBA,MAAzB;;AAEA,MAAM3E,QAAQ,GAAG4E,OAAO,CAACvB,iBAAiB,CAACrD,QAAnB,EAA6B;AACnDyE,IAAAA,MAAM,EAANA,MADmD;AAEnDC,IAAAA,OAAO,EAAPA,OAFmD;AAGnDC,IAAAA,MAAM,EAANA;AAHmD,GAA7B,CAAxB;AAKA,MAAME,QAAQ,GAAWrE,WAAW,CAACR,QAAD,CAApC;AAEA,MAAM8E,QAAQ,GAAGC,MAAM,CAAmB,IAAnB,CAAvB;AACA,MAAMC,eAAe,GAAGD,MAAM,CAAiB,IAAjB,CAA9B;AACA,MAAME,OAAO,GAAGF,MAAM,CAAiB,IAAjB,CAAtB;AACA,MAAMG,cAAc,GAAGH,MAAM,CAA8B,IAA9B,CAA7B;;AAEA,kBAA8BI,QAAQ,CAAC,KAAD,CAAtC;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AAEA,MAAIC,YAAY,GAAG,EAAnB;AACA,MAAIrD,QAAJ,EAAcqD,YAAY,GAAG,EAAf,CAAd,KACK,IAAI,CAACC,WAAW,CAACvB,aAAD,CAAhB,EAAiCsB,YAAY,GAAGtB,aAAa,CAAC,CAAD,CAA5B,CAAjC,KACA,IAAI,CAACuB,WAAW,CAAChB,UAAD,CAAhB,EAA8Be,YAAY,GAAGf,UAAU,CAAC,CAAD,CAAzB;;AAEnC,mBAA0BY,QAAQ,CAASG,YAAT,CAAlC;AAAA,MAAOrF,KAAP;AAAA,MAAcuF,QAAd;;AACA,MAAMC,eAAe,GAAGZ,QAAQ,CAC7Ba,MADqB,CAEpB,UAAA1G,CAAC;AAAA,WACCA,CAAC,CAAC2G,KAAF,IACAf,OAAO,CACLvB,iBAAiB,CAACqC,MAAlB,IAA4BhE,mBADvB,EAELzB,KAFK,EAGLjB,CAAC,CAACmC,KAHG,EAILnC,CAAC,CAACsC,KAJG,CADP,IAOA8D,OARD;AAAA,GAFmB,EAYrBM,MAZqB,CAYd,UAACE,CAAD,EAAIC,KAAJ;AAAA,WAAe/B,cAAc,GAAG+B,KAAK,GAAG/B,cAAX,GAA4B,IAAzD;AAAA,GAZc,CAAxB;;AAeA,MAAMgC,YAAY,GAAWtC,SAAS,GAClC,CAAC;AAAErC,IAAAA,KAAK,EAAElB,KAAT;AAAgB8F,IAAAA,QAAQ,EAAE;AAA1B,GAAD,CADkC,GAElC,EAFJ;AAIA,MAAM7C,YAAY,aAAOuC,eAAP,EAA2BK,YAA3B,CAAlB;;AACA,8BAA4BE,oBAAoB,CAAC;AAC/CjC,IAAAA,YAAY,EAAEC,aADiC;AAE/C7C,IAAAA,KAAK,EAAEoD,UAFwC;AAG/C0B,IAAAA,QAAQ,EAAE,kBAACC,SAAD;AACR,UAAMxG,IAAI,GAAGwD,YAAY,CAACiD,IAAb,CAAkB,UAAAC,GAAG;AAAA,eAAIA,GAAG,CAACjF,KAAJ,KAAc+E,SAAS,CAAC,CAAD,CAA3B;AAAA,OAArB,CAAb;AACA,UAAMG,KAAK,GAAGH,SAAS,CAACpF,GAAV,CAAc,UAAAwF,GAAG;AAAA,eAC7BpD,YAAY,CAACiD,IAAb,CAAkB,UAAAC,GAAG;AAAA,iBAAIA,GAAG,CAACjF,KAAJ,KAAcmF,GAAlB;AAAA,SAArB,CAD6B;AAAA,OAAjB,CAAd;AAGA1B,MAAAA,OAAO,CACLvB,iBAAiB,CAAC4C,QADb,EAELhE,QAAQ,GAAGiE,SAAH,GAAeA,SAAS,CAAC,CAAD,CAF3B,EAGLjE,QAAQ,GAAGoE,KAAH,GAAW3G,IAHd,CAAP;AAKD;AAb8C,GAAD,CAAhD;AAAA,MAAO4E,MAAP;AAAA,MAAeiC,SAAf;;AAgBA,mBAAwCpB,QAAQ,eAC9CN,QAAQ,CAAC,CAAD,CADsC,qBAC9C,WAAa1D,KADiC,CAAhD;AAAA,MAAOqF,YAAP;AAAA,MAAqBC,eAArB;;AAIA,MAAMC,aAAa,GAAGrD,iBAAiB,CAACqD,aAAlB,IAAmCpC,MAAM,CAACvF,MAAP,GAAgB,CAAzE;AAEA,MAAM4H,YAAY,GAAGzD,YAAY,CAACC,SAAb,CAAuB,UAAAnE,CAAC;AAAA,WAAIA,CAAC,CAACmC,KAAF,KAAYqF,YAAhB;AAAA,GAAxB,CAArB;AACA,MAAMI,QAAQ,GAAGC,WAAW,CAC1BF,YAD0B,EAE1BzD,YAF0B,EAG1B,CAAC,CAACG,iBAAiB,CAACyD,cAHM,CAA5B;AAKA,MAAMC,QAAQ,GAAGC,WAAW,CAC1BL,YAD0B,EAE1BzD,YAF0B,EAG1B,CAAC,CAACG,iBAAiB,CAACyD,cAHM,CAA5B;AAKA,MAAMlE,SAAS,GAAGqE,YAAY,CAAC/D,YAAD,CAA9B;AACA,MAAMF,QAAQ,GAAGkE,WAAW,CAAChE,YAAD,CAA5B;AAEAiE,EAAAA,eAAe,CAAC;AACdV,IAAAA,eAAe,CAAC7D,SAAD,oBAACA,SAAS,CAAEzB,KAAZ,CAAf;AACD,GAFc,EAEZ,CAAClB,KAAD,CAFY,CAAf;AAIAmH,EAAAA,SAAS,CAAC;AACR,QAAMC,WAAW,GAAGxC,QAAQ,CAACsB,IAAT,CAAc,UAAAnH,CAAC;AAAA,aAAIA,CAAC,CAACmC,KAAF,KAAYqF,YAAhB;AAAA,KAAf,CAApB;AACA5B,IAAAA,OAAO,CAACvB,iBAAiB,CAACiE,aAAnB,EAAkC;AACvC5H,MAAAA,IAAI,EAAE2H,WADiC;AAEvCE,MAAAA,YAAY,EAAErC,cAAc,CAACsC,OAFU;AAGvCC,MAAAA,UAAU,EAAE;AAH2B,KAAlC,CAAP;AAKD,GAPQ,EAON,CAACjB,YAAD,EAAenD,iBAAiB,CAACiE,aAAjC,CAPM,CAAT;;AASA,MAAMI,UAAU,GAAG,SAAbA,UAAa,CAACC,WAAD;;;AACjB,QAAI,CAACrD,MAAM,CAACsD,QAAP,CAAgBD,WAAhB,CAAD,IAAiCrD,MAAM,CAACvF,MAAP,GAAgB2H,aAArD,EACEH,SAAS,CAAC,UAAA1H,CAAC;AAAA,aAAKoD,QAAQ,aAAOpD,CAAP,GAAU8I,WAAV,KAAyB,CAACA,WAAD,CAAtC;AAAA,KAAF,CAAT;AAEF,QAAME,MAAM,GAAG3E,YAAY,CAACiD,IAAb,CAAkB,UAAAnH,CAAC;AAAA,aAAIA,CAAC,CAACmC,KAAF,KAAYwG,WAAhB;AAAA,KAAnB,CAAf;;AAEA,QAAI1F,QAAJ,EAAc;AAAA;;AACZ,2BAAA6C,QAAQ,CAAC0C,OAAT,uCAAkBM,KAAlB;AACD;;AACD,QAAIzE,iBAAiB,CAAC0E,kBAAtB,EAA0C,sBAAAjD,QAAQ,CAAC0C,OAAT,wCAAkBM,KAAlB;AAC1ClD,IAAAA,OAAO,CAACvB,iBAAiB,CAAC2E,cAAnB,EAAmC;AACxCtI,MAAAA,IAAI,EAAEmI,MADkC;AAExCN,MAAAA,YAAY,EAAErC,cAAc,CAACsC,OAFW;AAGxCC,MAAAA,UAAU,EAAE;AAH4B,KAAnC,CAAP;AAKA,QAAIlE,aAAJ,EAAmBmB,OAAO;AAC3B,GAhBD;;AAkBA,MAAMuD,UAAU,GAAG,SAAbA,UAAa,CAACtG,SAAD;AACjB4E,IAAAA,SAAS,CAAC,UAAA2B,UAAU;AAClB,UAAMxI,IAAI,GAAGmF,QAAQ,CAACsB,IAAT,CAAc,UAAAC,GAAG;AAAA,eAAIA,GAAG,CAACjF,KAAJ,KAAcQ,SAAlB;AAAA,OAAjB,CAAb;AACAiD,MAAAA,OAAO,CAACvB,iBAAiB,CAAC8E,YAAnB,EAAiCxG,SAAjC,EAA4CjC,IAA5C,EAAkDwI,UAAlD,CAAP;AACA,aAAOA,UAAU,CAACxC,MAAX,CAAkB,UAAA1G,CAAC;AAAA,eAAIA,CAAC,KAAK2C,SAAV;AAAA,OAAnB,CAAP;AACD,KAJQ,CAAT;AAKA,QAAI1B,KAAK,KAAK0B,SAAd,EAAyB6D,QAAQ,CAAC,EAAD,CAAR;AAC1B,GAPD;;AASA,MAAM4C,UAAU,GAAG,SAAbA,UAAa,CAACC,UAAD;;;AACjB9B,IAAAA,SAAS,CAAC,EAAD,CAAT;AACA,QAAI8B,UAAJ,EAAgB,sBAAAvD,QAAQ,CAAC0C,OAAT,wCAAkBM,KAAlB;AACjB,GAHD;;AAKA,MAAMQ,IAAI,GAAGrG,QAAQ,GACjBqC,MAAM,CAACxD,GAAP,CAAW,UAAAyH,GAAG;AAAA;;AAAA,WAAK;AACjBjH,MAAAA,KAAK,EAAE,mBAAAuD,QAAQ,CAACsB,IAAT,CAAc,UAAAzG,IAAI;AAAA,eAAIA,IAAI,CAACyB,KAAL,KAAeoH,GAAnB;AAAA,OAAlB,qCAA2CjH,KAA3C,KAAoDiH,GAD1C;AAEjBC,MAAAA,QAAQ,EAAE;AAAA,eAAMP,UAAU,CAACM,GAAD,CAAhB;AAAA;AAFO,KAAL;AAAA,GAAd,CADiB,GAKjB,EALJ;AAOAnB,EAAAA,SAAS,CAAC;AACRxC,IAAAA,OAAO,CAACV,OAAD,EAAU;AAAEoE,MAAAA,IAAI,EAAJA;AAAF,KAAV,CAAP;AAEA,QAAM5I,IAAI,GAAGwD,YAAY,CAACiD,IAAb,CAAkB,UAAAC,GAAG;AAAA,aAAIA,GAAG,CAACjF,KAAJ,KAAcmD,MAAM,CAAC,CAAD,CAAxB;AAAA,KAArB,CAAb;AACA,QAAMmE,WAAW,GAAG,CAAA/I,IAAI,QAAJ,YAAAA,IAAI,CAAE4B,KAAN,MAAe5B,IAAf,oBAAeA,IAAI,CAAEyB,KAArB,CAApB;AACAqE,IAAAA,QAAQ,CAAC;AAAA,aAAOvD,QAAQ,GAAG,EAAH,GAAQwG,WAAR,WAAQA,WAAR,GAAuB,EAAtC;AAAA,KAAD,CAAR;AACD,GANQ,EAMN,CAACnE,MAAD,CANM,CAAT;;AAQA,MAAMoE,aAAa,GAA2C,SAAxDA,aAAwD,CAC5DzH,KAD4D,EAE5De,UAF4D;AAI5D,QAAQ2G,OAAR,GAAmE1H,KAAnE,CAAQ0H,MAAR;AAAA,QAAgB1C,SAAhB,GAAmEhF,KAAnE,CAAgBgF,QAAhB;AAAA,QAA0B2C,QAA1B,GAAmE3H,KAAnE,CAA0B2H,OAA1B;AAAA,QAAmCC,UAAnC,GAAmE5H,KAAnE,CAAmC4H,SAAnC;AAAA,QAA8CC,AAAYC,IAA1D,iCAAmE9H,KAAnE;;AAEA,WAAO;AACL+H,MAAAA,OAAO;AACLC,QAAAA,GAAG,EAAEjE,eADA;AAELkE,QAAAA,OAAO,EAAE;;;AACPpE,UAAAA,QAAQ,QAAR,kCAAAA,QAAQ,CAAE0C,OAAV,wCAAmBM,KAAnB;AACD,SAJI;AAKLqB,QAAAA,QAAQ,EAAE;AALL,SAMFpH,qBAAqB,CAACC,UAAD,CANnB,EAOF+G,IAPE,CADF;AAULK,MAAAA,KAAK,EAAE;AACLxF,QAAAA,UAAU,EAAVA,UADK;AAELgF,QAAAA,OAAO,EAAE,iBAAAS,CAAC;AACRzE,UAAAA,OAAO,CAACgE,QAAD,EAAUS,CAAV,CAAP;AACA,cAAIhG,iBAAiB,CAACiG,WAAlB,IAAiC,CAAC1F,UAAtC,EAAkDe,MAAM;AACxD,cAAItB,iBAAiB,CAACkG,aAAtB,EAAqCF,CAAC,CAACG,MAAF,CAASC,MAAT;AACrC,cAAI5F,oBAAJ,EAA0BwB,UAAU,CAAC,IAAD,CAAV;AAC3B,SAPI;AAQLsD,QAAAA,MAAM,EAAE,gBAAAU,CAAC;;;AACPzE,UAAAA,OAAO,CAAC+D,OAAD,EAASU,CAAT,CAAP;AACA,cAAMK,aAAa,GAAGL,CAAC,CAACM,aAAF,MAAoB1E,OAApB,oBAAoBA,OAAO,CAAEuC,OAA7B,CAAtB;AACA,cAAMoC,qBAAqB,4BAAG5E,eAAe,CAACwC,OAAnB,qBAAG,sBAAyBqC,QAAzB,CAC5BR,CAAC,CAACM,aAD0B,CAA9B;;AAGA,cAAI,CAACD,aAAD,IAAkB,CAACE,qBAAvB,EAA8C;AAAA;;AAC5C,gBAAItG,WAAJ,EAAiBoB,OAAO;AACxB,gBAAI,CAACJ,MAAM,CAACsD,QAAP,CAAgByB,CAAC,CAACG,MAAF,CAASrI,KAAzB,CAAD,IAAoC,CAACwC,QAAzC,EACE6B,QAAQ,iBAAC0B,WAAW,CAAC5C,MAAD,CAAZ,2BAAwB,EAAxB,CAAR;AACH;AACF,SAnBI;AAoBL2B,QAAAA,QAAQ,EAAE,kBAAAoD,CAAC;AACT,cAAMS,QAAQ,GAAGT,CAAC,CAACG,MAAF,CAASrI,KAA1B;AACAyD,UAAAA,OAAO,CAACqB,SAAD,EAAWoD,CAAX,CAAP;AACA7D,UAAAA,QAAQ,CAAC6D,CAAC,CAACG,MAAF,CAASrI,KAAV,CAAR;AACA,cAAM4I,YAAY,GAAG7J,OAAO,CAAC4J,QAAD,CAA5B;AACA,cACElF,OAAO,CAACR,uBAAD,EAA0B0F,QAA1B,CAAP,KACC,CAACC,YAAD,IAAiB1F,gBADlB,CADF,EAIEM,MAAM,GAJR,KAKKD,OAAO;AACZW,UAAAA,UAAU,CAAC,KAAD,CAAV;AACD,SAhCI;AAiCLwD,QAAAA,SAAS,EAAE,mBAAAQ,CAAC;AACVzE,UAAAA,OAAO,CAACiE,UAAD,EAAYQ,CAAZ,CAAP;AACAnE,UAAAA,cAAc,CAACsC,OAAf,GAAyB,UAAzB;AAEA,cAAQwC,GAAR,GAAgBX,CAAhB,CAAQW,GAAR;AACA,cAAM3C,WAAW,GAAGnE,YAAY,CAACyD,YAAD,CAAhC;;AACA,cAAIqD,GAAG,KAAK,OAAZ,EAAqB;AAAA;;AACnB,gBAAI3C,WAAW,IAAI,EAACA,WAAD,YAACA,WAAW,CAAE4C,QAAd,CAAnB,EACEvC,UAAU,CAACL,WAAD,oBAACA,WAAW,CAAElG,KAAd,CAAV,CADF,KAEK,sBAAA2D,QAAQ,CAAC0C,OAAT,wCAAkBM,KAAlB;AACLuB,YAAAA,CAAC,CAACa,cAAF;AACA;AACD;;AAED,cAAIF,GAAG,KAAK,WAAZ,EAAyB;AACvBvD,YAAAA,eAAe,CAACG,QAAD,oBAACA,QAAQ,CAAEzF,KAAX,CAAf;AACAkI,YAAAA,CAAC,CAACa,cAAF;AACA;AACD;;AAED,cAAIF,GAAG,KAAK,SAAZ,EAAuB;AACrBvD,YAAAA,eAAe,CAACM,QAAD,oBAACA,QAAQ,CAAE5F,KAAX,CAAf;AAEAkI,YAAAA,CAAC,CAACa,cAAF;AACA;AACD;;AAED,cAAIF,GAAG,KAAK,KAAZ,EAAmB;AACjBvD,YAAAA,eAAe,CAACG,QAAD,oBAACA,QAAQ,CAAEzF,KAAX,CAAf;AACAkI,YAAAA,CAAC,CAACa,cAAF;AACA;AACD;;AAED,cAAIF,GAAG,KAAK,MAAZ,EAAoB;AAClBvD,YAAAA,eAAe,CAAC7D,SAAD,oBAACA,SAAS,CAAEzB,KAAZ,CAAf;AACAkI,YAAAA,CAAC,CAACa,cAAF;AACA;AACD;;AAED,cAAIF,GAAG,KAAK,KAAZ,EAAmB;AACjBvD,YAAAA,eAAe,CAACzD,QAAD,oBAACA,QAAQ,CAAE7B,KAAX,CAAf;AACAkI,YAAAA,CAAC,CAACa,cAAF;AACA;AACD;;AAED,cAAIF,GAAG,KAAK,QAAZ,EAAsB;AACpBG,YAAAA,OAAO,CAACzF,OAAD,EAAU2E,CAAC,CAACa,cAAZ,CAAP;AACD;AACF,SAjFI;AAkFL/I,QAAAA,KAAK,EAAElB,KAlFF;AAmFL6I,QAAAA,OAAO,EAAE;AAnFJ;AAVF,KAAP;AAgGD,GAtGD;;AAwGA,MAAMsB,GAAG,GAAGC,aAAa,CAACrF,eAAD,EAAkB,IAAlB,CAAzB;;AACA,MAAMsF,YAAY,GAA0C,SAAtDA,YAAsD;AAC1D,QAAMC,KAAK,GAAGH,GAAH,oBAAGA,GAAG,CAAEI,SAAL,CAAeD,KAA7B;AAEA,WAAO;AACLA,MAAAA,KAAK,EAALA;AADK,KAAP;AAGD,GAND;;AAQA,MAAME,YAAY,GAA0C,SAAtDA,YAAsD,CAC1DxJ,KAD0D,EAE1DuC,SAF0D;;;AAI1D,QACEkH,MADF,GAaIzJ,KAbJ,CACEyJ,MADF;AAAA,QAEEtI,MAFF,GAaInB,KAbJ,CAEEmB,MAFF;AAAA,QAGYuI,SAHZ,GAaI1J,KAbJ,CAGEjB,QAHF;AAAA,QAIEiK,QAJF,GAaIhJ,KAbJ,CAIEgJ,QAJF;AAAA,QAKE3I,KALF,GAaIL,KAbJ,CAKEK,KALF;AAAA,QAMSsJ,SANT,GAaI3J,KAbJ,CAMEE,KANF;AAAA,QAOEwE,KAPF,GAaI1E,KAbJ,CAOE0E,KAPF;AAAA,0BAaI1E,KAbJ,CAQEC,QARF;AAAA,QAQEA,QARF,gCAQavB,eARb;AAAA,QASEuJ,QATF,GAaIjI,KAbJ,CASEiI,OATF;AAAA,QAUE2B,YAVF,GAaI5J,KAbJ,CAUE4J,WAVF;AAAA,QAWEC,EAXF,GAaI7J,KAbJ,CAWE6J,EAXF;AAAA,QAYK/B,IAZL,iCAaI9H,KAbJ;;AAcA,QAAME,KAAK,GAAGqC,SAAS,GAAGoH,SAAH,gBAAe1J,QAAQ,CAAC0J,SAAD,CAAvB,qBAAe,UAAqB9K,QAArB,EAAtC;AACA,QAAMiL,SAAS,GAAG5J,KAAK,KAAKqF,YAA5B;AACA,QAAMwE,iBAAiB,GACrB9H,YAAY,CAACC,SAAb,CAAuB,UAAAnE,CAAC;AAAA,aAAIA,CAAC,CAACmC,KAAF,KAAYA,KAAhB;AAAA,KAAxB,KAAkD,CADpD;AAEA,QAAMS,SAAS,GAAG+I,SAAS,IAAIrJ,KAAb,IAAsBH,KAAxC;AACA,WAAO;AACLzB,MAAAA,IAAI,eACE,OAAOkC,SAAP,KAAqB,QAArB,IAAiC,CAAC6B,SAAlC,GACA;AAAEzD,QAAAA,QAAQ,EAAE4B;AAAZ,OADA,GAEA;AACEqJ,QAAAA,uBAAuB,EAAE;AACvBC,UAAAA,MAAM,EAAEnL,WAAW,CAAC6B,SAAD,EAAY3B,KAAZ;AADI;AAD3B,OAHF;AAQF,yBAAiBqE,MAAM,CAACsD,QAAP,CAAgBzG,KAAhB,CARf;AASF,yBAAiB8I,QATf;AAUFkB,QAAAA,SAAS,EAAE;AAAEC,UAAAA,OAAO,EAAE,GAAX;AAAgB3I,UAAAA,MAAM,EAAE,aAAxB;AAAuC4I,UAAAA,UAAU,EAAE;AAAnD,SAVT;AAWFnC,QAAAA,OAAO,EAAE,iBAAAG,CAAC;;;AACRzE,UAAAA,OAAO,CAACsE,QAAD,EAAUG,CAAV,CAAP;AACA,cAAI,CAACY,QAAL,EAAevC,UAAU,CAACvG,KAAD,CAAV,CAAf,KACK,sBAAA2D,QAAQ,CAAC0C,OAAT,wCAAkBM,KAAlB;AACN,SAfC;AAgBF+C,QAAAA,WAAW,EAAE,qBAAAxB,CAAC;AACZzE,UAAAA,OAAO,CAACiG,YAAD,EAAcxB,CAAd,CAAP;AACA5C,UAAAA,eAAe,CAACtF,KAAD,CAAf;AACA+D,UAAAA,cAAc,CAACsC,OAAf,GAAyB,OAAzB;AACD,SApBC;AAqBFsD,QAAAA,EAAE,eACGA,EADH;AAEAQ,UAAAA,IAAI;AACFC,YAAAA,KAAK,EAAE,SADL;AAEF/J,YAAAA,EAAE,EAAE;AAFF,aAGEgK,QAAQ,CAAC/H,SAAD,CAAR,GACAA,SADA,GAEA;AACEgI,YAAAA,UAAU,EAAEhI,SAAS,GAAG,WAAH,GAAiB;AADxC,WALF;AAFJ;AArBA,SAiCEsH,SAAS,KAAK3I,MAAM,IAAIb,gBAAgB,EAA/B,CAjCX,EAkCEoE,KAAK,IAAI+E,MAlCX,EAmCC3B,IAnCD,CADC;AAsCL2C,MAAAA,IAAI,EAAE;AACJV,QAAAA,iBAAiB,EAAjBA,iBADI;AAEJ7J,QAAAA,KAAK,EAALA;AAFI;AAtCD,KAAP;AA2CD,GAlED;;AAoEA,MAAMwK,aAAa,GAA2C,SAAxDA,aAAwD,CAAA1K,KAAK;AACjE,QAAM2K,QAAQ,GAAG3I,WAAW,CAAChC,KAAK,CAACjB,QAAP,EAAiBkD,YAAjB,CAA5B;AACA,WAAO;AACL2I,MAAAA,OAAO,EAAE;AACPC,QAAAA,aAAa,EAAEnJ,YAAY,CAAC1B,KAAK,CAACjB,QAAP,EAAiB4C,SAAjB,CADpB;AAEPmJ,QAAAA,YAAY,EAAEhJ,WAAW,CACvB9B,KAAK,CAACjB,QADiB,EAEvBkH,WAAW,CAAChE,YAAY,CAACwC,MAAb,CAAoB,UAAA1G,CAAC;AAAA,iBAAIuG,WAAW,CAACvG,CAAD,oBAACA,CAAC,CAAE+G,QAAJ,CAAf;AAAA,SAArB,CAAD,CAFY;AAFlB,OADJ;AAQLiG,MAAAA,KAAK,EAAE;AACLC,QAAAA,OAAO,EAAEL,QAAQ,GAAG,SAAH,GAAe;AAD3B;AARF,KAAP;AAYD,GAdD;;AAgBA,MAAMM,kBAAkB,GAAgD,SAAlEA,kBAAkE,CAAAC,iBAAiB;AACvF,QAAMC,aAAa,GAAGlJ,YAAY,CAACmJ,KAAb,CAAmB,UAAArN,CAAC;AAAA,aAAIA,CAAC,CAAC+G,QAAN;AAAA,KAApB,CAAtB;;AACA,QAAIqG,aAAa,IAAI1I,UAAjB,IAA+B,CAACF,SAApC,EAA+C;AAC7C,aAAO,OAAOE,UAAP,KAAsB,SAAtB,GACHyI,iBADG,GAEHvH,OAAO,CAAClB,UAAD,EAAa;AAAEzD,QAAAA,KAAK,EAALA;AAAF,OAAb,CAFX;AAGD;AACF,GAPD;;AASA,SAAO;AACLoD,IAAAA,iBAAiB,EAAjBA,iBADK;AAELrD,IAAAA,QAAQ,EAARA,QAFK;AAGLkD,IAAAA,YAAY,EAAZA,YAHK;AAILuC,IAAAA,eAAe,EAAfA,eAJK;AAKLe,IAAAA,YAAY,EAAZA,YALK;AAML0F,IAAAA,kBAAkB,EAAlBA,kBANK;AAOLP,IAAAA,aAAa,EAAbA,aAPK;AAQLjD,IAAAA,aAAa,EAAbA,aARK;AASL+B,IAAAA,YAAY,EAAZA,YATK;AAULH,IAAAA,YAAY,EAAZA,YAVK;AAWLxF,IAAAA,QAAQ,EAARA,QAXK;AAYLI,IAAAA,cAAc,EAAdA,cAZK;AAaLT,IAAAA,MAAM,EAANA,MAbK;AAcLI,IAAAA,QAAQ,EAARA,QAdK;AAeLI,IAAAA,OAAO,EAAPA,OAfK;AAgBLP,IAAAA,OAAO,EAAPA,OAhBK;AAiBLC,IAAAA,MAAM,EAANA,MAjBK;AAkBL1E,IAAAA,KAAK,EAALA,KAlBK;AAmBLgI,IAAAA,UAAU,EAAVA,UAnBK;AAoBLG,IAAAA,UAAU,EAAVA,UApBK;AAqBL5C,IAAAA,QAAQ,EAARA,QArBK;AAsBL8C,IAAAA,IAAI,EAAJA,IAtBK;AAuBLhE,IAAAA,MAAM,EAANA;AAvBK,GAAP;AAyBD;;IC/ZYgI,YAAY,gBAAGC,UAAU,CACpC,UAACtL,KAAD,EAAQgI,GAAR;AACE,MAAMuD,OAAO,GAAGpJ,eAAe,CAACnC,KAAD,CAA/B;AACA,MACEjB,QADF,GAOIwM,OAPJ,CACExM,QADF;AAAA,MAEEyE,MAFF,GAOI+H,OAPJ,CAEE/H,MAFF;AAAA,MAGEC,OAHF,GAOI8H,OAPJ,CAGE9H,OAHF;AAAA,MAIEC,MAJF,GAOI6H,OAPJ,CAIE7H,MAJF;AAAA,MAKEyD,UALF,GAOIoE,OAPJ,CAKEpE,UALF;AAAA,MAMEH,UANF,GAOIuE,OAPJ,CAMEvE,UANF;AASAwE,EAAAA,mBAAmB,CAACxD,GAAD,EAAM;AAAA,WAAO;AAC9Bb,MAAAA,UAAU,EAAVA,UAD8B;AAE9BH,MAAAA,UAAU,EAAVA;AAF8B,KAAP;AAAA,GAAN,CAAnB;AAKA,SACEyE,mBAAA,CAACxO,oBAAD;AAAsBiD,IAAAA,KAAK,EAAEqL;GAA7B,EACEE,mBAAA,CAACC,OAAD;AACEC,IAAAA,MAAM;AACNnI,IAAAA,MAAM,EAAEA;AACRC,IAAAA,OAAO,EAAEA;AACTC,IAAAA,MAAM,EAAEA;AACRkI,IAAAA,SAAS,EAAE;AACXC,IAAAA,SAAS,EAAC;AACVxJ,IAAAA,WAAW,EAAE;GAPf,EASEoJ,mBAAA,CAACK,MAAM,CAACC,GAAR;AACElC,IAAAA,EAAE,EAAE;AACF,iCAA2B;AACzBmC,QAAAA,QAAQ,EAAE;AADe;AADzB;AAKJC,IAAAA,CAAC,EAAC;AACFjE,IAAAA,GAAG,EAAEA;GAPP,EASGjJ,QATH,CATF,CADF,CADF;AAyBD,CA1CmC,CAA/B;AA6CPsM,YAAY,CAACzL,WAAb,GAA2B,cAA3B;;;AC/DA,IAsBasM,gBAAgB,gBAAGZ,UAAU,CACxC,UAACtL,KAAD,EAAQmM,YAAR;AACE,8BAIIjP,sBAAsB,EAJ1B;AAAA,MACEqI,YADF,yBACEA,YADF;AAAA,MAEEiE,YAFF,yBAEEA,YAFF;AAAA,MAGEvF,cAHF,yBAGEA,cAHF;;AAKA,MAAMmI,OAAO,GAAGtI,MAAM,EAAtB;AACA,MAAMkE,GAAG,GAAGqE,YAAY,CAACF,YAAD,EAAeC,OAAf,CAAxB;AAEA,MAAME,SAAS,GAAG9C,YAAY,CAACxJ,KAAD,CAA9B;AACA,wBAAqCsM,SAAS,CAAC7B,IAA/C;AAAA,MAAQV,iBAAR,mBAAQA,iBAAR;AAAA,MAA2B7J,KAA3B,mBAA2BA,KAA3B;AAEA,MAAM4J,SAAS,GAAGvE,YAAY,KAAKrF,KAAnC;AAEAiG,EAAAA,SAAS,CAAC;;;AACR,QAAI2D,SAAS,IAAI7F,cAAc,CAACsC,OAAf,KAA2B,UAA5C,EACE6F,OAAO,QAAP,gCAAAA,OAAO,CAAE7F,OAAT,sCAAkBgG,cAAlB,CAAiC;AAC/BC,MAAAA,QAAQ,EAAE,QADqB;AAE/BC,MAAAA,KAAK,EAAE;AAFwB,KAAjC;AAIH,GANQ,EAMN,CAAC3C,SAAD,EAAY7F,cAAZ,CANM,CAAT;AAQAkC,EAAAA,SAAS,CAAC;AACR,QAAI,OAAOjG,KAAP,KAAiB,QAArB,EAA+BwM,OAAO,CAACC,IAAR,CAAa,KAAb;AAC/B,QAAI,OAAOzM,KAAP,KAAiB,QAAjB,IAA6BoE,WAAW,CAACtE,KAAK,CAACC,QAAP,CAA5C,EACEyM,OAAO,CAACE,KAAR,CACE,2EADF;AAGH,GANQ,EAMN,EANM,CAAT;;AAQA,wBAA4DN,SAAS,CAAC7N,IAAtE;AAAA,MAAQM,QAAR,mBAAQA,QAAR;AAAA,MAAkBiL,uBAAlB,mBAAkBA,uBAAlB;AAAA,MAA8C6C,SAA9C;;AAEA,MAAM/E,IAAI,GAAGgF,IAAI,CAACD,SAAD,EAAY,CAAC,SAAD,CAAZ,CAAjB;AAEA,SAAO9C,iBAAiB,GACtB0B,mBAAA,CAACsB,IAAD;AAAM/E,IAAAA,GAAG,EAAEA;KAASgF,gBAAoBlF,KAAxC,EACG/I,QAAQ,GACPA,QADO,GAGP0M,mBAAA,OAAA;AAAMzB,IAAAA,uBAAuB,EAAEA;GAA/B,CAJJ,CADsB,GAQpB,IARJ;AASD,CA5CuC,CAAnC;AA+CPkC,gBAAgB,CAACtM,WAAjB,GAA+B,kBAA/B;AAEA,IAAaoN,cAAc,GAAc;AACvCC,EAAAA,EAAE,EAAE,GADmC;AAEvCC,EAAAA,EAAE,EAAE,GAFmC;AAGvC5L,EAAAA,EAAE,EAAE,GAHmC;AAIvC6L,EAAAA,OAAO,EAAE,IAJ8B;AAKvC3L,EAAAA,MAAM,EAAE;AAL+B,CAAlC;;;;ACvEP,SAagB4L,sBAAsBpN;AACpC,MAAkBqN,YAAlB,GAA4CrN,KAA5C,CAAQjB,QAAR;AAAA,MAAmC+I,IAAnC,iCAA4C9H,KAA5C;;AACA,8BAKI9C,sBAAsB,EAL1B;AAAA,MACEkF,iBADF,yBACEA,iBADF;AAAA,MAEEoH,YAFF,yBAEEA,YAFF;AAAA,MAGExK,KAHF,yBAGEA,KAHF;AAAA,MAIEwF,eAJF,yBAIEA,eAJF;;AAOA,MAAM8I,UAAU,GAAG7B,mBAAA,OAAA,MAAA,EAAOzM,KAAP,CAAnB;;AACA,2BAAmCwK,YAAY,cAExCxJ,KAFwC;AAG3CE,IAAAA,KAAK,EAAElB,KAHoC;AAI3CD,IAAAA,QAAQ,EAAE4E,OAAO,CAAC0J,YAAD,EAAe;AAC9BnN,MAAAA,KAAK,EAAEoN;AADuB,KAAf;AAJ0B,MAQ7C,IAR6C,CAAZ,CASjC7O,IATF;AAAA,MAAQM,QAAR,sBAAQA,QAAR;AAAA,MAAqBuN,SAArB;;AAWA,MAAMiB,iBAAiB,GAAG/I,eAAe,CAACgJ,IAAhB,CAAqB,UAAAzP,CAAC;AAAA,WAAIA,CAAC,CAACmC,KAAF,KAAYlB,KAAhB;AAAA,GAAtB,CAA1B;AACA,MAAMyO,aAAa,GACjBrL,iBAAiB,CAACG,SAAlB,IAA+B,CAACtD,OAAO,CAACD,KAAD,CAAvC,IAAkD,CAACuO,iBADrD;AAGA,SAAOE,aAAa,GAClBhC,mBAAA,CAACsB,IAAD,oBAAUC,gBAAoBV,WAAexE,KAA7C,EACG/I,QAAQ,aAAWC,KADtB,CADkB,GAIhB,IAJJ;AAKD;AAEDoO,qBAAqB,CAACxN,WAAtB,GAAoC,uBAApC;;;AC7CA,IAmBa8N,iBAAiB,gBAAGpC,UAAU,CACzC,UAACtL,KAAD,EAAQgI,GAAR;AACE,MAAQjJ,QAAR,GAAgDiB,KAAhD,CAAQjB,QAAR;AAAA,MAAkB4O,AAAgBd,SAAlC,iCAAgD7M,KAAhD;;AACA,MAAM8H,IAAI,GAAGgF,IAAI,CAACD,SAAD,EAAY,CAAC,cAAD,CAAZ,CAAjB;;AAEA,8BAA0B3P,sBAAsB,EAAhD;AAAA,MAAQwN,aAAR,yBAAQA,aAAR;;AAEA,uBAAkBA,aAAa,CAAC1K,KAAD,CAA/B;AAAA,MAAQ+K,KAAR,kBAAQA,KAAR;;AAEA,MAAM6C,aAAa,GAAGC,gBAAgB,CAAC7N,KAAD,CAAtC;AAEA,SACEyL,mBAAA,CAACqC,GAAD;AAAK9F,IAAAA,GAAG,EAAEA;KAAS+C,OAAWjD,KAA9B,EACE2D,mBAAA,CAACsC,OAAD,oBAAaH,aAAa,CAACI,IAA3B,CADF,EAEGjP,QAFH,EAGE0M,mBAAA,CAACsC,OAAD,oBAAaH,aAAa,CAACK,OAA3B,CAHF,CADF;AAOD,CAlBwC,CAApC;AAqBP,IAAaC,sBAAsB,gBAAG5C,UAAU,CAC9C,UAACtL,KAAD,EAAQgI,GAAR;AACE,SAAOyD,mBAAA,CAACsB,IAAD,oBAAUoB,iBAAqBnO;AAAOgI,IAAAA,GAAG,EAAEA;IAA3C,CAAP;AACD,CAH6C,CAAzC;AAMP0F,iBAAiB,CAAC9N,WAAlB,GAAgC,mBAAhC;AACAsO,sBAAsB,CAACtO,WAAvB,GAAqC,wBAArC;AAEA,IAAMuO,eAAe,GAAc;AACjCC,EAAAA,EAAE,EAAE,CAD6B;AAEjCC,EAAAA,EAAE,EAAE,CAF6B;AAGjCC,EAAAA,QAAQ,EAAE,IAHuB;AAIjCC,EAAAA,aAAa,EAAE,OAJkB;AAKjC/D,EAAAA,UAAU,EAAE,WALqB;AAMjCgE,EAAAA,aAAa,EAAE;AANkB,CAAnC;;AASA,IAAMX,gBAAgB,GAAG,SAAnBA,gBAAmB,CACvB7N,KADuB;AAGvB,+BAA0B9C,sBAAsB,EAAhD;AAAA,MAAQwN,aAAR,0BAAQA,aAAR;;AAEA,MAAM+D,eAAe,GAAYzO,KAAK,CAAC0O,YAAvC;;AAEA,wBAEIhE,aAAa,CAAC1K,KAAD,CAFjB;AAAA,8CACE4K,OADF;AAAA,MACaC,aADb,yBACaA,aADb;AAAA,MAC4BC,YAD5B,yBAC4BA,YAD5B;;AAIA,MAAM6D,UAAU,GAAiB;AAC/BN,IAAAA,EAAE,EAAE,CAD2B;AAE/BO,IAAAA,WAAW,EAAE5O,KAAK,CAAC6O;AAFY,GAAjC;;AAKA,MAAMb,GAAG,gBACJW,UADI;AAEPG,IAAAA,EAAE,EAAE,CAFG;AAGP9D,IAAAA,OAAO,EAAE,CAAChL,KAAK,CAAC2N,WAAP,IAAsB9C,aAAtB,GAAsC,MAAtC,GAA+C;AAHjD,IAAT;;AAKA,MAAMoD,MAAM,gBACPU,UADO;AAEV3D,IAAAA,OAAO,EACL,CAAChL,KAAK,CAAC2N,WAAP,IAAsB7C,YAAtB,IAAsC2D,eAAtC,GAAwD,MAAxD,GAAiE;AAHzD,IAAZ;;AAMA,SAAO;AAAET,IAAAA,GAAG,EAAHA,GAAF;AAAOC,IAAAA,MAAM,EAANA;AAAP,GAAP;AACD,CA5BD;;;AC1DA,IAsBac,iBAAiB,gBAAGzD,UAAU,CACzC,UAACtL,KAAD,EAAQmM,YAAR;AACE,8BAA0CjP,sBAAsB,EAAhE;AAAA,MAAQ2G,QAAR,yBAAQA,QAAR;AAAA,MAAkB4D,aAAlB,yBAAkBA,aAAlB;AAAA,MAAiCJ,IAAjC,yBAAiCA,IAAjC;;AAEA,MAAMW,GAAG,GAAGqE,YAAY,CAACF,YAAD,EAAetI,QAAf,CAAxB;;AAEA,MAAkBwJ,YAAlB,GAA4CrN,KAA5C,CAAQjB,QAAR;AAAA,MAAmC+I,IAAnC,iCAA4C9H,KAA5C;;AAEA,MAAMe,UAAU,GAAQiO,mBAAmB,CAAC,OAAD,EAAUhP,KAAV,CAA3C;AAEA,MAAMiP,UAAU,GAAGxH,aAAa,CAACK,IAAD,EAAO/G,UAAP,CAAhC;AAEA,MAAMhC,QAAQ,GAAG4E,OAAO,CAAC0J,YAAD,EAAe;AAAEhG,IAAAA,IAAI,EAAJA;AAAF,GAAf,CAAxB;AAEA,SACEoE,mBAAA,CAACyD,IAAD,oBAAUD,UAAU,CAAClH,QAArB,EACGhJ,QADH,EAEE0M,mBAAA,CAAC0D,QAAD;AAAUC,IAAAA,EAAE,EAAEC;KAAYJ,UAAU,CAAC9G;AAAeH,IAAAA,GAAG,EAAEA;IAAzD,CAFF,CADF;AAMD,CApBwC,CAApC;AAuBP+G,iBAAiB,CAACnP,WAAlB,GAAgC,OAAhC;AAEAmP,iBAAiB,CAACO,EAAlB,GAAuB,OAAvB;;AC3CO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACvP,KAAD;AACxB,8BAA+B9C,sBAAsB,EAArD;AAAA,MAAQ+N,kBAAR,yBAAQA,kBAAR;;AAEA,MAAMxI,UAAU,GAAGwI,kBAAkB,CACnCQ,mBAAA,CAACsB,MAAD,oBAAUyC,YAAV,qBAAA,CADmC,CAArC;AAIA,SAAO/D,mBAAA,CAACqC,KAAD,oBAAS9N,MAAT,EAAiByC,UAAjB,CAAP;AACD,CARM;AAUP,IAAM+M,WAAW,GAAc;AAC7BlB,EAAAA,QAAQ,EAAE,IADmB;AAE7BmB,EAAAA,KAAK,EAAE,QAFsB;AAG7BC,EAAAA,OAAO,EAAE,QAHoB;AAI7BlF,EAAAA,UAAU,EAAE,MAJiB;AAK7BmF,EAAAA,SAAS,EAAE;AALkB,CAA/B;;ACZO,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAC7Q,QAAD;AACzB,SAAO0M,KAAK,CAACoE,QAAN,CAAehQ,GAAf,CAAmBd,QAAnB,EAA6B,UAACW,KAAD,EAAa3B,CAAb;AAClC,QAAI2B,KAAK,CAACC,IAAN,CAAWC,WAAX,KAA2B,mBAA/B,EAAoD;AAClD,UAAMkQ,OAAO,GAAQrE,KAAK,CAACoE,QAAN,CAAeE,OAAf,CAAuBhR,QAAvB,EAAiChB,CAAC,GAAG,CAArC,CAArB;AACA,aAAO0N,KAAK,CAACuE,YAAN,CAAmBtQ,KAAnB,EAA0B;AAC/BgP,QAAAA,YAAY,EAAEoB,OAAO,GACjBA,OAAO,CAACnQ,IAAR,CAAaC,WAAb,KAA6B,mBADZ,GAEjB;AAH2B,OAA1B,CAAP;AAKD;;AACD,WAAOF,KAAP;AACD,GAVM,CAAP;AAWD,CAZM;;;ACFP,IAaauQ,gBAAgB,gBAAG3E,UAAU,CACxC,UAACtL,KAAD,EAAQmM,YAAR;AACE,MAAQpN,QAAR,GAA8BiB,KAA9B,CAAQjB,QAAR;AAAA,MAAqB+I,IAArB,iCAA8B9H,KAA9B;;AACA,8BAAkC9C,sBAAsB,EAAxD;AAAA,MAAQ8G,OAAR,yBAAQA,OAAR;AAAA,MAAiBqF,YAAjB,yBAAiBA,YAAjB;;AACA,MAAMrB,GAAG,GAAGqE,YAAY,CAACF,YAAD,EAAenI,OAAf,CAAxB;AACA,MAAMkM,SAAS,GAAG7G,YAAY,EAA9B;AAEA,SACEoC,mBAAA,CAAC0E,cAAD;AAAgBnI,IAAAA,GAAG,EAAEA;KAAS2G,YAAgBuB,WAAepI,KAA7D,EACG8H,WAAW,CAAC7Q,QAAD,CADd,EAEE0M,mBAAA,CAAC8D,UAAD,MAAA,CAFF,CADF;AAMD,CAbuC,CAAnC;AAgBPU,gBAAgB,CAACrQ,WAAjB,GAA+B,kBAA/B;AAEA,IAAM+O,UAAU,GAAwB;AACtCyB,EAAAA,EAAE,EAAE,GADkC;AAEtC9O,EAAAA,EAAE,EAAE,GAFkC;AAGtC6I,EAAAA,OAAO,EAAE,GAH6B;AAItC5J,EAAAA,EAAE,EAAE,SAJkC;AAKtC4M,EAAAA,OAAO,EAAE,IAL6B;AAMtCkD,EAAAA,IAAI,EAAE,OANgC;AAOtCC,EAAAA,MAAM,EAAE,MAP8B;AAQtCC,EAAAA,MAAM,EAAE,MAR8B;AAStCnP,EAAAA,GAAG,EAAE,UATiC;AAUtCoP,EAAAA,MAAM,EAAE,SAV8B;AAWtCC,EAAAA,SAAS,EAAE,MAX2B;AAatCjQ,EAAAA,MAAM,EAAE;AACND,IAAAA,EAAE,EAAE;AADE,GAb8B;AAiBtCY,EAAAA,MAAM,EAAE;AACNuP,IAAAA,SAAS,EAAE;AADL;AAjB8B,CAAxC;;;AC/BA,IAWaC,eAAe,gBAAGC,IAAI,CAAC,UAAC5Q,KAAD;AAClC,MAAQK,KAAR,GAA+CL,KAA/C,CAAQK,KAAR;AAAA,MAAekH,QAAf,GAA+CvH,KAA/C,CAAeuH,QAAf;AAAA,MAAyByB,QAAzB,GAA+ChJ,KAA/C,CAAyBgJ,QAAzB;AAAA,MAAsClB,IAAtC,iCAA+C9H,KAA/C;;AAEA,SACEyL,mBAAA,CAAC0D,UAAD,MAAA,EACE1D,mBAAA,CAACoF,GAAD;AACEC,IAAAA,YAAY,EAAC;AACbtG,IAAAA,UAAU,EAAC;KACNxB,QAAQ,IAAI+H,gBACbjJ,KAJN,EAME2D,mBAAA,CAACuF,QAAD,MAAA,EAAW3Q,KAAX,CANF,EAOEoL,mBAAA,CAACwF,cAAD;AACEhJ,IAAAA,OAAO,EAAE;AAAA,aAAM,CAACe,QAAD,IAAarF,OAAO,CAAC4D,QAAD,CAA1B;AAAA;AACT/F,IAAAA,MAAM,EAAC;KACFwH,QAAQ,IAAI+H,eAHnB,CAPF,CADF,CADF;AAiBD,CApBkC,CAA5B;AAsBP,IAAMA,cAAc,GAAa;AAC/BvP,EAAAA,MAAM,EAAE,MADuB;AAE/B4I,EAAAA,UAAU,EAAE,MAFmB;AAG/BD,EAAAA,OAAO,EAAE,GAHsB;AAI/BhJ,EAAAA,MAAM,EAAE;AAAEuP,IAAAA,SAAS,EAAE;AAAb;AAJuB,CAAjC;;;;"}
1
+ {"version":3,"file":"chakra-autocomplete.esm.js","sources":["../src/autocomplete-context.ts","../src/helpers/fuzzySearch.ts","../src/helpers/items.ts","../src/helpers/input.ts","../src/helpers/group.ts","../src/use-autocomplete.ts","../src/autocomplete.tsx","../src/autocomplete-item.tsx","../src/autocomplete-creatable.tsx","../src/autocomplete-group.tsx","../src/autocomplete-input.tsx","../src/components/empty-state.tsx","../src/helpers/list.ts","../src/autocomplete-list.tsx","../src/autocomplete-tag.tsx"],"sourcesContent":["import { createContext } from \"@chakra-ui/react-utils\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport const [AutoCompleteProvider, useAutoCompleteContext] = createContext<\n UseAutoCompleteReturn\n>({\n name: \"AutoCompleteContext\",\n errorMessage:\n \"useAutoCompleteContext: `context` is undefined. Seems you forgot to wrap all autoomplete components within `<AutoComplete />`\",\n});\n","/*\n * @param str1 The first string to compare.\n * @param str2 The second string to compare.\n * @param gramSize The size of the grams. Defaults to length 2.\n */\nexport function fuzzyScore(str1: string, str2: string, gramSize: number = 2) {\n function getNGrams(s: string, len: number) {\n s = \" \".repeat(len - 1) + s.toLowerCase() + \" \".repeat(len - 1);\n let v = new Array(s.length - len + 1);\n for (let i = 0; i < v.length; i++) {\n v[i] = s.slice(i, i + len);\n }\n return v;\n }\n\n if (!str1?.length || !str2?.length) {\n return 0.0;\n }\n\n //Order the strings by length so the order they're passed in doesn't matter\n //and so the smaller string's ngrams are always the ones in the set\n let s1 = str1.length < str2.length ? str1 : str2;\n let s2 = str1.length < str2.length ? str2 : str1;\n\n let pairs1 = getNGrams(s1, gramSize);\n let pairs2 = getNGrams(s2, gramSize);\n let set = new Set<string>(pairs1);\n\n let total = pairs2.length;\n let hits = 0;\n for (let item of pairs2) {\n if (set.delete(item)) {\n hits++;\n }\n }\n return hits / total;\n}\n","import { getChildrenDeep } from \"react-nanny\";\nimport { pick, isDefined, isEmpty } from \"@chakra-ui/utils\";\nimport { ReactNode } from \"react\";\nimport { FlexProps } from \"@chakra-ui/react\";\nimport { fuzzyScore } from \"./fuzzySearch\";\nimport { Item } from \"../types\";\nimport { AutoCompleteItemProps } from \"../autocomplete-item\";\n\nexport const getDefItemValue = (item: AutoCompleteItemProps[\"value\"]) =>\n (typeof item === \"string\" ? item : item[Object.keys(item)[0]]).toString();\n\nexport const setEmphasis = (children: any, query: string) => {\n if (typeof children !== \"string\" || isEmpty(query)) {\n return children;\n }\n const newChildren = children\n .toString()\n .replace(\n new RegExp(escapeRegex(query), \"gi\"),\n (match: any) => `<mark>${match}</mark>`\n );\n return newChildren;\n};\n\nexport const getItemList = (children: ReactNode) => {\n const itemChildren = getChildrenDeep(\n children,\n (child: any) => child?.type?.displayName === \"AutoCompleteItem\"\n );\n\n return itemChildren.map(item => {\n const itemObj = pick(item.props, [\"value\", \"label\", \"fixed\", \"disabled\"]);\n const { getValue = getDefItemValue } = item.props;\n const value = getValue(itemObj.value);\n const finObj = isDefined(itemObj.label)\n ? itemObj\n : { ...itemObj, label: value };\n return { ...finObj, value };\n });\n};\n\nexport const getFocusedStyles = (): FlexProps => {\n return {\n bg: \"whiteAlpha.100\",\n _light: {\n bg: \"gray.200\",\n },\n };\n};\n\nexport const defaultFilterMethod = (\n query: string,\n itemValue: Item[\"value\"],\n itemLabel: Item[\"label\"]\n) => {\n return (\n itemValue?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n itemLabel?.toLowerCase().indexOf(query?.toLowerCase()) >= 0 ||\n fuzzyScore(query, itemValue) >= 0.5 ||\n fuzzyScore(query, itemLabel) >= 0.5\n );\n};\n\nfunction escapeRegex(string: string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n}\n","export const getMultipleWrapStyles = (themeInput: any, multiple?: boolean) => ({\n ...(multiple && {\n ...themeInput.field,\n _focusWithin: themeInput.field._focus,\n pos: \"relative\",\n minH: 9,\n // px: 3,\n py: 1.5,\n spacing: 3,\n }),\n cursor: \"text\",\n h: \"fit-content\",\n // w: \"full\",\n});\n","import { isDefined } from \"@chakra-ui/utils\";\nimport { getChildDeep } from \"react-nanny\";\nimport { ReactNode } from \"react\";\n\nexport const hasFirstItem = (children: ReactNode, firstItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === firstItem?.value\n );\n\n return result;\n};\nexport const hasLastItem = (children: ReactNode, lastItem: any) => {\n const result = getChildDeep(\n children,\n (child: any) =>\n child?.type?.displayName === \"AutoCompleteItem\" &&\n child.props.value === lastItem?.value\n );\n return result;\n};\n\nexport const hasChildren = (children: any, filteredList: any[]) => {\n return isDefined(\n getChildDeep(\n children,\n (child: any) =>\n filteredList.findIndex(i => i.value === child.props?.value) >= 0\n )\n );\n};\n","import {\n useDimensions,\n useDisclosure,\n useUpdateEffect,\n useControllableState,\n} from \"@chakra-ui/react\";\nimport {\n callAll,\n getFirstItem,\n getLastItem,\n getNextItem,\n getPrevItem,\n isObject,\n isEmpty,\n isUndefined,\n runIfFn,\n} from \"@chakra-ui/utils\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { AutoCompleteProps } from \"./autocomplete\";\nimport {\n defaultFilterMethod,\n getDefItemValue,\n getFocusedStyles,\n getItemList,\n setEmphasis,\n} from \"./helpers/items\";\nimport { getMultipleWrapStyles } from \"./helpers/input\";\nimport { hasChildren, hasFirstItem, hasLastItem } from \"./helpers/group\";\nimport { Item, UseAutoCompleteReturn } from \"./types\";\n\n/**\n * useAutoComplete that provides all the state and focus management logic\n * for the autocomplete component. It is consumed by the `Autocomplete` component\n *\n */\n\nexport function useAutoComplete(\n autoCompleteProps: AutoCompleteProps\n): UseAutoCompleteReturn {\n let {\n closeOnBlur = true,\n closeOnSelect,\n creatable,\n emphasize,\n emptyState = true,\n freeSolo,\n isReadOnly,\n listAllValuesOnFocus,\n maxSuggestions,\n multiple,\n defaultValue,\n defaultValues = defaultValue ? [defaultValue] : [\"\"],\n onReady,\n defaultIsOpen,\n shouldRenderSuggestions = () => true,\n suggestWhenEmpty,\n value,\n values: valuesProp = value ? [value] : undefined,\n } = autoCompleteProps;\n closeOnSelect = closeOnSelect ? closeOnSelect : multiple ? false : true;\n\n freeSolo = freeSolo ? freeSolo : multiple ? true : autoCompleteProps.freeSolo;\n\n const { isOpen, onClose, onOpen } = useDisclosure({ defaultIsOpen });\n\n const children = runIfFn(autoCompleteProps.children, {\n isOpen,\n onClose,\n onOpen,\n });\n const itemList: Item[] = getItemList(children);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const interactionRef = useRef<\"mouse\" | \"keyboard\" | null>(null);\n\n const [listAll, setListAll] = useState(false);\n\n let defaultQuery = \"\";\n if (multiple) defaultQuery = \"\";\n else if (!isUndefined(defaultValues)) defaultQuery = defaultValues[0];\n else if (!isUndefined(valuesProp)) defaultQuery = valuesProp[0];\n\n const [query, setQuery] = useState<string>(defaultQuery ?? \"\");\n const filteredResults = itemList\n .filter(\n i =>\n i.fixed ||\n runIfFn(\n autoCompleteProps.filter || defaultFilterMethod,\n query,\n i.value,\n i.label\n ) ||\n listAll\n )\n .filter((_, index) => (maxSuggestions ? index < maxSuggestions : true));\n\n // Add Creatable to Filtered List\n const creatableArr: Item[] = creatable\n ? [{ value: query, noFilter: true }]\n : [];\n\n const filteredList = [...filteredResults, ...creatableArr];\n const [values, setValues] = useControllableState({\n defaultValue: defaultValues,\n value: valuesProp,\n onChange: (newValues: any[]) => {\n const item = filteredList.find(opt => opt.value === newValues[0]);\n const items = newValues.map(val =>\n filteredList.find(opt => opt.value === val)\n );\n runIfFn(\n autoCompleteProps.onChange,\n multiple ? newValues : newValues[0],\n multiple ? items : item\n );\n },\n });\n\n const [focusedValue, setFocusedValue] = useState<Item[\"value\"]>(\n itemList[0]?.value\n );\n\n const maxSelections = autoCompleteProps.maxSelections || values.length + 1;\n\n const focusedIndex = filteredList.findIndex(i => i.value === focusedValue);\n const nextItem = getNextItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const prevItem = getPrevItem(\n focusedIndex,\n filteredList,\n !!autoCompleteProps.rollNavigation\n );\n const firstItem = getFirstItem(filteredList);\n const lastItem = getLastItem(filteredList);\n\n useUpdateEffect(() => {\n setFocusedValue(firstItem?.value);\n }, [query]);\n\n useEffect(() => {\n const focusedItem = itemList.find(i => i.value === focusedValue);\n runIfFn(autoCompleteProps.onOptionFocus, {\n item: focusedItem!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n }, [focusedValue, autoCompleteProps.onOptionFocus]);\n\n const selectItem = (optionValue: Item[\"value\"]) => {\n if (!values.includes(optionValue) && values.length < maxSelections) {\n setValues(v => (multiple ? [...v, optionValue] : [optionValue]));\n }\n\n const option = filteredList.find(i => i.value === optionValue);\n\n if (multiple) {\n inputRef.current?.focus();\n }\n if (autoCompleteProps.focusInputOnSelect) inputRef.current?.focus();\n runIfFn(autoCompleteProps.onSelectOption, {\n item: option!,\n selectMethod: interactionRef.current,\n isNewInput: false,\n });\n if (closeOnSelect) onClose();\n };\n\n const removeItem = (itemValue: Item[\"value\"]) => {\n setValues(prevValues => {\n const item = itemList.find(opt => opt.value === itemValue);\n runIfFn(autoCompleteProps.onTagRemoved, itemValue, item, prevValues);\n return prevValues.filter(i => i !== itemValue);\n });\n if (query === itemValue) setQuery(\"\");\n };\n\n const resetItems = (focusInput?: boolean) => {\n setValues([]);\n if (focusInput) inputRef.current?.focus();\n };\n\n const tags = multiple\n ? values.map(tag => ({\n label: itemList.find(item => item.value === tag)?.label || tag,\n onRemove: () => removeItem(tag),\n }))\n : [];\n\n useEffect(() => {\n runIfFn(onReady, { tags });\n\n const item = filteredList.find(opt => opt.value === values[0]);\n const optionLabel = item?.label || item?.value;\n setQuery(() => (multiple ? \"\" : optionLabel ?? \"\"));\n }, [values]);\n\n const getInputProps: UseAutoCompleteReturn[\"getInputProps\"] = (\n props,\n themeInput\n ) => {\n const { onBlur, onChange, onFocus, onKeyDown, variant, ...rest } = props;\n\n return {\n wrapper: {\n ref: inputWrapperRef,\n onClick: () => {\n inputRef?.current?.focus();\n },\n tabIndex: 0,\n ...getMultipleWrapStyles(themeInput),\n ...rest,\n },\n input: {\n isReadOnly,\n onFocus: e => {\n runIfFn(onFocus, e);\n if (autoCompleteProps.openOnFocus && !isReadOnly) onOpen();\n if (autoCompleteProps.selectOnFocus) e.target.select();\n if (listAllValuesOnFocus) setListAll(true);\n },\n onBlur: e => {\n runIfFn(onBlur, e);\n const listIsFocused = e.relatedTarget === listRef?.current;\n const inputWrapperIsFocused = inputWrapperRef.current?.contains(\n e.relatedTarget as any\n );\n if (!listIsFocused && !inputWrapperIsFocused) {\n if (closeOnBlur) onClose();\n if (!values.includes(e.target.value) && !freeSolo)\n setQuery(getLastItem(values) ?? \"\");\n }\n },\n onChange: e => {\n const newValue = e.target.value;\n runIfFn(onChange, e);\n setQuery(e.target.value);\n const queryIsEmpty = isEmpty(newValue);\n if (\n runIfFn(shouldRenderSuggestions, newValue) &&\n (!queryIsEmpty || suggestWhenEmpty)\n )\n onOpen();\n else onClose();\n setListAll(false);\n },\n onKeyDown: e => {\n runIfFn(onKeyDown, e);\n interactionRef.current = \"keyboard\";\n\n const { key } = e;\n const focusedItem = filteredList[focusedIndex];\n if (key === \"Enter\") {\n if (focusedItem && !focusedItem?.disabled)\n selectItem(focusedItem?.value);\n else inputRef.current?.focus();\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowDown\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"ArrowUp\") {\n setFocusedValue(prevItem?.value);\n\n e.preventDefault();\n return;\n }\n\n if (key === \"Tab\") {\n setFocusedValue(nextItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Home\") {\n setFocusedValue(firstItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"End\") {\n setFocusedValue(lastItem?.value);\n e.preventDefault();\n return;\n }\n\n if (key === \"Escape\") {\n callAll(onClose, e.preventDefault);\n }\n },\n value: query,\n variant: \"unstyled\",\n },\n };\n };\n\n const dim = useDimensions(inputWrapperRef, true);\n const getListProps: UseAutoCompleteReturn[\"getListProps\"] = () => {\n const width = dim?.marginBox.width as number;\n\n return {\n width,\n };\n };\n\n const getItemProps: UseAutoCompleteReturn[\"getItemProps\"] = (\n props,\n creatable\n ) => {\n const {\n _fixed,\n _focus,\n children: itemChild,\n disabled,\n label,\n value: valueProp,\n fixed,\n getValue = getDefItemValue,\n onClick,\n onMouseOver,\n sx,\n ...rest\n } = props;\n const value = creatable ? valueProp : getValue(valueProp)?.toString();\n const isFocused = value === focusedValue;\n const isValidSuggestion =\n filteredList.findIndex(i => i.value === value) >= 0;\n const itemLabel = itemChild || label || value;\n return {\n item: {\n ...(typeof itemLabel !== \"string\" || !emphasize\n ? { children: itemLabel }\n : {\n dangerouslySetInnerHTML: {\n __html: setEmphasis(itemLabel, query),\n },\n }),\n \"aria-selected\": values.includes(value),\n \"aria-disabled\": disabled,\n _disabled: { opacity: 0.4, cursor: \"not-allowed\", userSelect: \"none\" },\n onClick: e => {\n runIfFn(onClick, e);\n if (!disabled) selectItem(value);\n else inputRef.current?.focus();\n },\n onMouseOver: e => {\n runIfFn(onMouseOver, e);\n setFocusedValue(value);\n interactionRef.current = \"mouse\";\n },\n sx: {\n ...sx,\n mark: {\n color: \"inherit\",\n bg: \"transparent\",\n ...(isObject(emphasize)\n ? emphasize\n : {\n fontWeight: emphasize ? \"extrabold\" : \"inherit\",\n }),\n },\n },\n ...(isFocused && (_focus || getFocusedStyles())),\n ...(fixed && _fixed),\n ...rest,\n },\n root: {\n isValidSuggestion,\n value,\n },\n };\n };\n\n const getGroupProps: UseAutoCompleteReturn[\"getGroupProps\"] = props => {\n const hasItems = hasChildren(props.children, filteredList);\n return {\n divider: {\n hasFirstChild: hasFirstItem(props.children, firstItem),\n hasLastChild: hasLastItem(\n props.children,\n getLastItem(filteredList.filter(i => isUndefined(i?.noFilter)))\n ),\n },\n group: {\n display: hasItems ? \"initial\" : \"none\",\n },\n };\n };\n\n const getEmptyStateProps: UseAutoCompleteReturn[\"getEmptyStateProps\"] = defaultEmptyState => {\n const noSuggestions = filteredList.every(i => i.noFilter);\n if (noSuggestions && emptyState && !creatable) {\n return typeof emptyState === \"boolean\"\n ? defaultEmptyState\n : runIfFn(emptyState, { query });\n }\n };\n\n return {\n autoCompleteProps,\n children,\n filteredList,\n filteredResults,\n focusedValue,\n getEmptyStateProps,\n getGroupProps,\n getInputProps,\n getItemProps,\n getListProps,\n inputRef,\n interactionRef,\n isOpen,\n itemList,\n listRef,\n onClose,\n onOpen,\n query,\n removeItem,\n resetItems,\n setQuery,\n tags,\n values,\n };\n}\n","import React, { useImperativeHandle } from \"react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\n\nimport { AutoCompleteProvider } from \"./autocomplete-context\";\nimport { useAutoComplete } from \"./use-autocomplete\";\nimport { chakra, forwardRef, Popover } from \"@chakra-ui/react\";\nimport { AutoCompleteRefMethods, UseAutoCompleteProps } from \"./types\";\n\nexport type AutoCompleteChildProps = {\n isOpen: boolean;\n onClose: () => void;\n onOpen: () => void;\n};\nexport interface AutoCompleteProps extends UseAutoCompleteProps {\n children: MaybeRenderProp<AutoCompleteChildProps>;\n ref?: React.RefObject<AutoCompleteRefMethods>;\n}\n\nexport const AutoComplete = forwardRef<AutoCompleteProps, \"div\">(\n (props, ref) => {\n const context = useAutoComplete(props);\n const {\n children,\n isOpen,\n onClose,\n onOpen,\n resetItems,\n removeItem,\n } = context;\n\n useImperativeHandle(ref, () => ({\n resetItems,\n removeItem,\n }));\n\n return (\n <AutoCompleteProvider value={context}>\n <Popover\n isLazy\n isOpen={isOpen}\n onClose={onClose}\n onOpen={onOpen}\n autoFocus={false}\n placement=\"bottom\"\n closeOnBlur={true}\n >\n <chakra.div\n sx={{\n \".chakra-popover__popper\": {\n position: \"unset !important\",\n },\n }}\n w=\"full\"\n ref={ref}\n >\n {children}\n </chakra.div>\n </Popover>\n </AutoCompleteProvider>\n );\n }\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import {\n CSSObject,\n Flex,\n FlexProps,\n forwardRef,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport { isUndefined, omit } from \"@chakra-ui/utils\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteItemProps extends FlexProps {\n value: any;\n label?: string;\n fixed?: boolean;\n _focus?: CSSObject | any;\n disabled?: boolean;\n _fixed?: CSSObject;\n getValue?: (item: AutoCompleteItemProps[\"value\"]) => any;\n}\n\nexport const AutoCompleteItem = forwardRef<AutoCompleteItemProps, \"div\">(\n (props, forwardedRef) => {\n const {\n focusedValue,\n getItemProps,\n interactionRef,\n } = useAutoCompleteContext();\n const itemRef = useRef<any>();\n const ref = useMergeRefs(forwardedRef, itemRef);\n\n const itemProps = getItemProps(props);\n const { isValidSuggestion, value } = itemProps.root;\n\n const isFocused = focusedValue === value;\n\n useEffect(() => {\n if (isFocused && interactionRef.current === \"keyboard\")\n itemRef?.current?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [isFocused, interactionRef]);\n\n useEffect(() => {\n if (typeof value !== \"string\") console.warn(\"wow\");\n if (typeof value !== \"string\" && isUndefined(props.getValue))\n console.error(\n \"You must define the `getValue` prop, when an Item's value is not a string\"\n );\n }, []);\n\n const { children, dangerouslySetInnerHTML, ...restProps } = itemProps.item;\n\n const rest = omit(restProps, [\"groupId\"] as any);\n\n return isValidSuggestion ? (\n <Flex ref={ref} {...baseItemStyles} {...rest}>\n {children ? (\n children\n ) : (\n <span dangerouslySetInnerHTML={dangerouslySetInnerHTML} />\n )}\n </Flex>\n ) : null;\n }\n);\n\nAutoCompleteItem.displayName = \"AutoCompleteItem\";\n\nexport const baseItemStyles: FlexProps = {\n mx: \"2\",\n px: \"2\",\n py: \"2\",\n rounded: \"md\",\n cursor: \"pointer\",\n};\n","import { Flex, FlexProps } from \"@chakra-ui/react\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport { isEmpty, runIfFn } from \"@chakra-ui/utils\";\n\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { baseItemStyles } from \"./autocomplete-item\";\n\ninterface AutoCompleteCreatableProps extends FlexProps {\n children?: MaybeRenderProp<{ value: any }>;\n}\n\nexport function AutoCompleteCreatable(props: AutoCompleteCreatableProps) {\n const { children: childrenProp, ...rest } = props;\n const {\n autoCompleteProps,\n getItemProps,\n query,\n filteredResults,\n } = useAutoCompleteContext();\n\n const queryValue = <mark>{query}</mark>;\n const { children, ...itemProps } = getItemProps(\n {\n ...props,\n value: query,\n children: runIfFn(childrenProp, {\n value: queryValue,\n }),\n },\n true\n ).item;\n\n const queryExistsInList = filteredResults.some(i => i.value === query);\n const showCreatable =\n autoCompleteProps.creatable && !isEmpty(query) && !queryExistsInList;\n\n return showCreatable ? (\n <Flex {...baseItemStyles} {...itemProps} {...rest}>\n {children || `Add ${query}`}\n </Flex>\n ) : null;\n}\n\nAutoCompleteCreatable.displayName = \"AutoCompleteCreatable\";\n","import {\n Box,\n BoxProps,\n Divider,\n DividerProps,\n Flex,\n FlexProps,\n forwardRef,\n} from \"@chakra-ui/react\";\nimport { omit } from \"@chakra-ui/utils\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\n\nexport interface AutoCompleteGroupProps extends BoxProps {\n children?: React.ReactNode;\n showDivider?: boolean;\n dividerColor?: string;\n}\n\nexport const AutoCompleteGroup = forwardRef<AutoCompleteGroupProps, \"div\">(\n (props, ref) => {\n const { children, showDivider, ...restProps } = props;\n const rest = omit(restProps, [\"groupSibling\"] as any);\n\n const { getGroupProps } = useAutoCompleteContext();\n\n const { group } = getGroupProps(props);\n\n const dividerStyles = useDividerStyles(props);\n\n return (\n <Box ref={ref} {...group} {...rest}>\n <Divider {...dividerStyles.top} />\n {children}\n <Divider {...dividerStyles.bottom} />\n </Box>\n );\n }\n);\n\nexport const AutoCompleteGroupTitle = forwardRef<FlexProps, \"div\">(\n (props, ref) => {\n return <Flex {...baseTitleStyles} {...props} ref={ref} />;\n }\n);\n\nAutoCompleteGroup.displayName = \"AutoCompleteGroup\";\nAutoCompleteGroupTitle.displayName = \"AutoCompleteGroupTitle\";\n\nconst baseTitleStyles: FlexProps = {\n ml: 5,\n my: 1,\n fontSize: \"xs\",\n letterSpacing: \"wider\",\n fontWeight: \"extrabold\",\n textTransform: \"uppercase\",\n};\n\nconst useDividerStyles = (\n props: AutoCompleteGroupProps & { groupSibling?: boolean }\n) => {\n const { getGroupProps } = useAutoCompleteContext();\n\n const hasGroupSibling: unknown = props.groupSibling;\n\n const {\n divider: { hasFirstChild, hasLastChild },\n } = getGroupProps(props as AutoCompleteGroupProps);\n\n const baseStyles: DividerProps = {\n my: 2,\n borderColor: props.dividerColor,\n };\n\n const top = {\n ...baseStyles,\n mb: 4,\n display: !props.showDivider || hasFirstChild ? \"none\" : \"\",\n };\n const bottom = {\n ...baseStyles,\n display:\n !props.showDivider || hasLastChild || hasGroupSibling ? \"none\" : \"\",\n };\n\n return { top, bottom };\n};\n","import {\n CSSObject,\n forwardRef,\n Input,\n InputProps,\n useMergeRefs,\n useMultiStyleConfig,\n Wrap,\n WrapItem,\n} from \"@chakra-ui/react\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport { MaybeRenderProp } from \"@chakra-ui/react-utils\";\nimport React from \"react\";\n\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { UseAutoCompleteReturn } from \"./types\";\n\nexport interface AutoCompleteInputProps extends InputProps {\n children?: MaybeRenderProp<{ tags: UseAutoCompleteReturn[\"tags\"] }>;\n wrapStyles?: CSSObject;\n}\n\nexport const AutoCompleteInput = forwardRef<AutoCompleteInputProps, \"input\">(\n (props, forwardedRef) => {\n const { inputRef, getInputProps, tags } = useAutoCompleteContext();\n\n const ref = useMergeRefs(forwardedRef, inputRef);\n\n const { children: childrenProp, ...rest } = props;\n\n const themeInput: any = useMultiStyleConfig(\"Input\", props);\n\n const inputProps = getInputProps(rest, themeInput);\n\n const children = runIfFn(childrenProp, { tags });\n\n return (\n <Wrap {...inputProps.wrapper}>\n {children}\n <WrapItem as={Input} {...(inputProps.input as any)} ref={ref} />\n </Wrap>\n );\n }\n);\n\nAutoCompleteInput.displayName = \"Input\";\n\nAutoCompleteInput.id = \"Input\";\n","import { Box, BoxProps, Flex, FlexProps } from \"@chakra-ui/layout\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"../autocomplete-context\";\n\nexport const EmptyState = (props: BoxProps) => {\n const { getEmptyStateProps } = useAutoCompleteContext();\n\n const emptyState = getEmptyStateProps(\n <Flex {...emptyStyles}>No options found!</Flex>\n );\n\n return <Box {...props}>{emptyState}</Box>;\n};\n\nconst emptyStyles: FlexProps = {\n fontSize: \"sm\",\n align: \"center\",\n justify: \"center\",\n fontWeight: \"bold\",\n fontStyle: \"italic\",\n};\n","import React from \"react\";\n\nexport const siblingInfo = (children: React.ReactNode) => {\n return React.Children.map(children, (child: any, i) => {\n if (child.type.displayName === \"AutoCompleteGroup\") {\n const sibling: any = React.Children.toArray(children)[i + 1];\n return React.cloneElement(child, {\n groupSibling: sibling\n ? sibling.type.displayName === \"AutoCompleteGroup\"\n : false,\n });\n }\n return child;\n });\n};\n","import {\n forwardRef,\n PopoverContent,\n PopoverContentProps,\n useMergeRefs,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\nimport { useAutoCompleteContext } from \"./autocomplete-context\";\nimport { EmptyState } from \"./components/empty-state\";\nimport { siblingInfo } from \"./helpers/list\";\n\nexport type AutoCompleteListProps = PopoverContentProps;\n\nexport const AutoCompleteList = forwardRef<AutoCompleteListProps, \"div\">(\n (props, forwardedRef) => {\n const { children, ...rest } = props;\n const { listRef, getListProps } = useAutoCompleteContext();\n const ref = useMergeRefs(forwardedRef, listRef);\n const listProps = getListProps();\n\n return (\n <PopoverContent ref={ref} {...baseStyles} {...listProps} {...rest}>\n {siblingInfo(children)}\n <EmptyState />\n </PopoverContent>\n );\n }\n);\n\nAutoCompleteList.displayName = \"AutoCompleteList\";\n\nconst baseStyles: PopoverContentProps = {\n mt: \"4\",\n py: \"4\",\n opacity: \"0\",\n bg: \"#232934\",\n rounded: \"md\",\n maxH: \"350px\",\n border: \"none\",\n shadow: \"base\",\n pos: \"absolute\",\n zIndex: \"popover\",\n overflowY: \"auto\",\n\n _light: {\n bg: \"#ffffff\",\n },\n\n _focus: {\n boxShadow: \"none\",\n },\n};\n","import { WrapItem } from \"@chakra-ui/layout\";\nimport { Tag, TagCloseButton, TagLabel, TagProps } from \"@chakra-ui/tag\";\nimport { runIfFn } from \"@chakra-ui/utils\";\nimport React, { memo } from \"react\";\n\ntype AutoCompleteTagProps = {\n disabled?: boolean;\n label: string;\n onRemove?: () => void;\n} & TagProps;\n\nexport const AutoCompleteTag = memo((props: AutoCompleteTagProps) => {\n const { label, onRemove, disabled, ...rest } = props;\n\n return (\n <WrapItem>\n <Tag\n borderRadius=\"md\"\n fontWeight=\"normal\"\n {...(disabled && disabledStyles)}\n {...rest}\n >\n <TagLabel>{label}</TagLabel>\n <TagCloseButton\n onClick={() => !disabled && runIfFn(onRemove)}\n cursor=\"pointer\"\n {...(disabled && disabledStyles)}\n />\n </Tag>\n </WrapItem>\n );\n});\n\nconst disabledStyles: TagProps = {\n cursor: \"text\",\n userSelect: \"none\",\n opacity: 0.4,\n _focus: { boxShadow: \"none\" },\n};\n"],"names":["createContext","name","errorMessage","AutoCompleteProvider","useAutoCompleteContext","fuzzyScore","str1","str2","gramSize","getNGrams","s","len","repeat","toLowerCase","v","Array","length","i","slice","s1","s2","pairs1","pairs2","set","Set","total","hits","item","getDefItemValue","Object","keys","toString","setEmphasis","children","query","isEmpty","newChildren","replace","RegExp","escapeRegex","match","getItemList","itemChildren","getChildrenDeep","child","type","displayName","map","itemObj","pick","props","getValue","value","finObj","isDefined","label","getFocusedStyles","bg","_light","defaultFilterMethod","itemValue","itemLabel","indexOf","string","getMultipleWrapStyles","themeInput","multiple","field","_focusWithin","_focus","pos","minH","py","spacing","cursor","h","hasFirstItem","firstItem","result","getChildDeep","hasLastItem","lastItem","hasChildren","filteredList","findIndex","useAutoComplete","autoCompleteProps","closeOnBlur","closeOnSelect","creatable","emphasize","emptyState","freeSolo","isReadOnly","listAllValuesOnFocus","maxSuggestions","defaultValue","defaultValues","onReady","defaultIsOpen","shouldRenderSuggestions","suggestWhenEmpty","values","valuesProp","undefined","useDisclosure","isOpen","onClose","onOpen","runIfFn","itemList","inputRef","useRef","inputWrapperRef","listRef","interactionRef","useState","listAll","setListAll","defaultQuery","isUndefined","setQuery","filteredResults","filter","fixed","_","index","creatableArr","noFilter","useControllableState","onChange","newValues","find","opt","items","val","setValues","focusedValue","setFocusedValue","maxSelections","focusedIndex","nextItem","getNextItem","rollNavigation","prevItem","getPrevItem","getFirstItem","getLastItem","useUpdateEffect","useEffect","focusedItem","onOptionFocus","selectMethod","current","isNewInput","selectItem","optionValue","includes","option","focus","focusInputOnSelect","onSelectOption","removeItem","prevValues","onTagRemoved","resetItems","focusInput","tags","tag","onRemove","optionLabel","getInputProps","onBlur","onFocus","onKeyDown","variant","rest","wrapper","ref","onClick","tabIndex","input","e","openOnFocus","selectOnFocus","target","select","listIsFocused","relatedTarget","inputWrapperIsFocused","contains","newValue","queryIsEmpty","key","disabled","preventDefault","callAll","dim","useDimensions","getListProps","width","marginBox","getItemProps","_fixed","itemChild","valueProp","onMouseOver","sx","isFocused","isValidSuggestion","dangerouslySetInnerHTML","__html","_disabled","opacity","userSelect","mark","color","isObject","fontWeight","root","getGroupProps","hasItems","divider","hasFirstChild","hasLastChild","group","display","getEmptyStateProps","defaultEmptyState","noSuggestions","every","AutoComplete","forwardRef","context","useImperativeHandle","React","Popover","isLazy","autoFocus","placement","chakra","div","position","w","AutoCompleteItem","forwardedRef","itemRef","useMergeRefs","itemProps","scrollIntoView","behavior","block","console","warn","error","restProps","omit","Flex","baseItemStyles","mx","px","rounded","AutoCompleteCreatable","childrenProp","queryValue","queryExistsInList","some","showCreatable","AutoCompleteGroup","showDivider","dividerStyles","useDividerStyles","Box","Divider","top","bottom","AutoCompleteGroupTitle","baseTitleStyles","ml","my","fontSize","letterSpacing","textTransform","hasGroupSibling","groupSibling","baseStyles","borderColor","dividerColor","mb","AutoCompleteInput","useMultiStyleConfig","inputProps","Wrap","WrapItem","as","Input","id","EmptyState","emptyStyles","align","justify","fontStyle","siblingInfo","Children","sibling","toArray","cloneElement","AutoCompleteList","listProps","PopoverContent","mt","maxH","border","shadow","zIndex","overflowY","boxShadow","AutoCompleteTag","memo","Tag","borderRadius","disabledStyles","TagLabel","TagCloseButton"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.11.1",
2
+ "version": "4.11.2",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",