@activecollab/components 2.0.266 → 2.0.267
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Autocomplete/Autocomplete.js +2 -2
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +1 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +2 -2
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/Select/Select.js +1 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","useVirtualizer","handleKeyboardMovement","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteScrollShadow","highlightText","Option","StyledOption","OptionGroup","isOptionGroup","item","options","undefined","Autocomplete","_ref","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","itemRef","selectedOptions","Array","isArray","handleSort","opts","_opts$","isGrouped","sortOptions","a","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","_extends","sortList","_options$","sortedOptions","localeCompare","sortedList","setSortedList","hover","setHover","by","filter","setFilter","handleEmpty","e","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","push","forEach","index","shouldUseVirtualization","rowVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","checked","tooltip","renderOptions","onChange","ref","onMouseEnter","onClick","className","handleOnMouseLeave","findIndex","scrollToIndex","align","handleOnKeyDown","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","String","_StyledStyledOption","onMouseDown","$isHidden","_ref2","onScroll","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styled","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [mixedOptions, selectedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n useEffect(() => {\n setSortedList(sortList(options));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n if (option.hidden) {\n return false;\n }\n\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","useVirtualizer","handleKeyboardMovement","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteScrollShadow","highlightText","Option","StyledOption","OptionGroup","isOptionGroup","item","options","undefined","Autocomplete","_ref","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","itemRef","selectedOptions","Array","isArray","handleSort","opts","_opts$","isGrouped","sortOptions","a","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","_extends","sortList","_options$","sortedOptions","localeCompare","sortedList","setSortedList","hover","setHover","by","filter","setFilter","handleEmpty","e","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","push","forEach","index","shouldUseVirtualization","rowVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","checked","tooltip","renderOptions","onChange","ref","onMouseEnter","onClick","className","handleOnMouseLeave","findIndex","scrollToIndex","align","handleOnKeyDown","listenerTarget","addEventListener","removeEventListener","isDefaultOptionSelected","renderVirtualItem","virtualItem","String","_StyledStyledOption","onMouseDown","$isHidden","_ref2","onScroll","onMouseLeave","style","height","Math","min","getTotalSize","overflow","width","position","getVirtualItems","virtualRow","top","left","transform","start","Fragment","displayName","_styled","withConfig","componentId"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n type FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n type ReactNode,\n type ReactElement,\n type MutableRefObject,\n} from \"react\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { type IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { type IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n /** Custom filter function for additional filtering criteria */\n filterCriteria?: (option: IOptionItemProps, filter: string) => boolean;\n disableVirtualization?: boolean;\n}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\ninterface VirtualItem {\n type: \"default\" | \"option\" | \"group\" | \"addNew\" | \"noResult\";\n id: string | number;\n item?: IOptionItemProps | IOptionGroupProps;\n index?: number;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n mixedOptions = [],\n filterCriteria,\n disableVirtualization,\n}) => {\n const listContainerRef = useRef<HTMLDivElement>(null);\n const itemRef = useRef<HTMLLIElement>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback(\n (opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [mixedOptions, selectedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n useEffect(() => {\n setSortedList(sortList(options));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options]);\n\n const [hover, setHover] = useState<IHover>({\n item: undefined,\n by: undefined,\n });\n const [filter, setFilter] = useState(\"\");\n\n const handleEmpty = useCallback(\n (e) => {\n if (e && e.button !== 0) {\n return;\n }\n if (handleEmptyAction) {\n inputEl?.current?.focus();\n setFilter(\"\");\n handleEmptyAction(filter);\n }\n },\n [filter, handleEmptyAction, inputEl]\n );\n\n const onAddNewMouseEnter = useCallback(\n () => setHover({ item: \"addNew\", by: \"mouse\" }),\n []\n );\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isOptionGroup(option)) {\n return option.options.every(\n (v) => v.name.toLowerCase() !== filter.trim().toLowerCase()\n );\n }\n return option.name.toLowerCase() !== filter.trim().toLowerCase();\n })\n );\n }, [emptyValue, filter, options]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n\n const matchesFilter = (option: IOptionItemProps) => {\n if (option.hidden) {\n return false;\n }\n\n const nameMatch = option.name\n .toLowerCase()\n .includes(trimmedFilter.toLowerCase());\n\n if (filterCriteria && trimmedFilter) {\n return nameMatch || filterCriteria(option, trimmedFilter);\n }\n\n return nameMatch;\n };\n\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter(matchesFilter);\n\n if (filteredOptions.length > 0) {\n if (!hovered && filter) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n hovered = true;\n return [...acc, { ...groupedOption, options: filteredOptions }];\n }\n return [...acc];\n }, []);\n } else {\n const filteredOptions = options.filter(matchesFilter);\n\n if (filter && filteredOptions.length > 0) {\n setHover({ item: filteredOptions[0].id, by: \"keyboard\" });\n }\n if (filteredOptions.length === 0 && emptyValue) {\n setHover({ item: \"addNew\", by: \"keyboard\" });\n }\n return filteredOptions;\n }\n },\n [emptyValue, filterCriteria]\n );\n\n const list = useMemo(\n () => filterOptions(sortedList, filter),\n [filter, filterOptions, sortedList]\n );\n\n const showDefaultOption = useMemo(\n () => !!defaultValue && !filter,\n [defaultValue, filter]\n );\n\n const flatOptions = useMemo(() => {\n const options = list.reduce(\n (\n acc: (IOptionItemProps | IOptionGroupProps | [])[],\n option: IOptionItemProps | IOptionGroupProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option];\n }\n return [...acc, ...option.options];\n },\n []\n );\n return filterOptions(options, filter);\n }, [filter, filterOptions, list]);\n\n const showNoResultCondition = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const virtualItems = useMemo(() => {\n const items: VirtualItem[] = [];\n\n if (showDefaultOption) {\n items.push({\n type: \"default\",\n id: \"default\",\n });\n }\n\n list.forEach((item, index) => {\n if (isOptionGroup(item)) {\n items.push({\n type: \"group\",\n id: item.id,\n item,\n });\n\n item.options.forEach((option) => {\n items.push({\n type: \"option\",\n id: option.id,\n item: option,\n index,\n });\n });\n } else {\n items.push({\n type: \"option\",\n id: item.id,\n item,\n index,\n });\n }\n });\n\n if (showNoResultCondition) {\n items.push({\n type: \"noResult\",\n id: \"noResult\",\n });\n }\n\n if (showAddNew) {\n items.push({\n type: \"addNew\",\n id: \"addNew\",\n });\n }\n\n return items;\n }, [list, showDefaultOption, showNoResultCondition, showAddNew]);\n\n const shouldUseVirtualization =\n !disableVirtualization && virtualItems.length > 40;\n\n const rowVirtualizer = useVirtualizer({\n count: virtualItems.length,\n getScrollElement: () => listContainerRef.current,\n estimateSize: () => 28,\n overscan: 5,\n gap: 4,\n });\n\n const handleInputChange = useCallback((e) => {\n if (\n e.target &&\n !(e.key === \"ArrowDown\") &&\n !(e.key === \"ArrowUp\") &&\n !(e.key === \"Enter\")\n ) {\n setFilter(e.target.value);\n }\n }, []);\n\n const handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const toggleSelected = useCallback(\n (id) => {\n let result;\n\n if (id !== null) {\n if (type === \"multiple\") {\n if (selectedOptions.includes(id)) {\n result = selectedOptions.filter((_id) => _id !== id);\n } else {\n result = [...selectedOptions, id];\n }\n } else {\n result = id;\n }\n if (clearInputOnSelect && inputEl?.current) {\n inputEl.current.value = \"\";\n inputEl.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setFilter(\"\");\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n return;\n }\n }\n\n if (typeof handleChange === \"function\") {\n handleChange(result);\n }\n },\n [\n clearInputOnSelect,\n handleChange,\n handleDefaultOptionChange,\n inputEl,\n selectedOptions,\n type,\n ]\n );\n\n const handleMouseEnter = useCallback((e) => {\n if (e === undefined || e === null) {\n return setHover({ item: null, by: \"mouse\" });\n }\n setHover({ item: e, by: \"mouse\" });\n }, []);\n\n const handleClick = useCallback(\n (e) => {\n e.preventDefault();\n toggleSelected(hover.item);\n },\n [toggleSelected, hover]\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps, index) => {\n if (isOptionGroup(item)) {\n return (\n <OptionGroup\n checked={selectedOptions}\n name={item.name}\n tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={hover.item === item.id ? itemRef : null}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const index = virtualItems.findIndex((item) => item.id === hover.item);\n if (index !== -1) {\n rowVirtualizer.scrollToIndex(index, { align: \"center\" });\n }\n }\n }, [hover, rowVirtualizer, virtualItems]);\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n\n if (hover.item === undefined && filter === \"\") {\n return;\n }\n if (hover.item === \"addNew\") {\n handleEmpty(null);\n return;\n }\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n return;\n }\n\n if (typeof hover.item !== \"undefined\" || hover.item !== null) {\n toggleSelected(hover.item);\n setFilter(\"\");\n }\n return;\n }\n setHover({\n item: handleKeyboardMovement(\n e,\n hover.item,\n flatOptions,\n showAddNew,\n showDefaultOption\n ),\n by: \"keyboard\",\n });\n },\n [\n filter,\n flatOptions,\n toggleSelected,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n useEffect(() => {\n const listenerTarget = inputEl?.current;\n if (!listenerTarget) return;\n\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const renderVirtualItem = useCallback(\n (virtualItem: VirtualItem, index: number) => {\n switch (virtualItem.type) {\n case \"default\":\n return (\n <Option\n name={String(defaultValue)}\n ref={hover.item === null ? itemRef : null}\n hover={hover.item === null}\n onMouseEnter={handleMouseEnter}\n onClick={(e) => {\n e.preventDefault();\n toggleSelected(null);\n }}\n renderOption={renderOption(\n { name: defaultValue, id: null },\n {\n checked: isDefaultOptionSelected(),\n hover: hover.item === null,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"group\":\n if (!virtualItem.item || !isOptionGroup(virtualItem.item))\n return null;\n return (\n <OptionGroup\n checked={selectedOptions}\n name={virtualItem.item.name}\n tooltip={virtualItem.item.tooltip}\n key={virtualItem.item.id}\n setHover={handleHoverCallback}\n id={virtualItem.item.id}\n hover={hover.item}\n options={virtualItem.item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n\n case \"option\":\n if (!virtualItem.item || isOptionGroup(virtualItem.item)) return null;\n return (\n <Option\n name={(virtualItem.item as IOptionItemProps).name}\n ref={hover.item === virtualItem.id ? itemRef : null}\n key={index}\n tooltip={(virtualItem.item as IOptionItemProps).tooltip}\n onMouseEnter={() => handleMouseEnter(virtualItem.id)}\n onClick={handleClick}\n id={virtualItem.id}\n hover={virtualItem.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n {\n ...(virtualItem.item as IOptionItemProps),\n name: highlightText(\n (virtualItem.item as IOptionItemProps).name,\n filter\n ),\n },\n {\n id: `option_${virtualItem.id}`,\n checked:\n selectedOptions && selectedOptions.includes(virtualItem.id),\n hover: hover.item === virtualItem.id,\n onChange: () => null,\n }\n )}\n />\n );\n\n case \"noResult\":\n return <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>;\n\n case \"addNew\":\n return (\n <StyledAutocompleteNewItem\n ref={hover.item === \"addNew\" ? itemRef : null}\n key=\"emptyValue\"\n hover={hover.item === \"addNew\"}\n onMouseDown={handleEmpty}\n onMouseEnter={onAddNewMouseEnter}\n >\n {emptyValue}\n </StyledAutocompleteNewItem>\n );\n\n default:\n return null;\n }\n },\n [\n defaultValue,\n hover.item,\n handleMouseEnter,\n renderOption,\n isDefaultOptionSelected,\n selectedOptions,\n handleHoverCallback,\n handleRenderOption,\n type,\n handleChange,\n filter,\n mixedOptions,\n handleClick,\n optionClassName,\n noResultText,\n handleEmpty,\n onAddNewMouseEnter,\n emptyValue,\n toggleSelected,\n ]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <div\n ref={listContainerRef}\n style={{\n height: `${Math.min(\n rowVirtualizer.getTotalSize() + 12,\n autoHeightMax\n )}px`,\n overflow: \"auto\",\n }}\n onScroll={(e) => {\n if (onScroll) onScroll(e);\n }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n position: \"relative\",\n }}\n >\n {shouldUseVirtualization\n ? rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const item = virtualItems[virtualRow.index];\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n {renderVirtualItem(item, virtualRow.index)}\n </div>\n );\n })\n : virtualItems.map((item, index) => (\n <React.Fragment key={index}>\n {renderVirtualItem(item, index)}\n </React.Fragment>\n ))}\n </div>\n </div>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -174,7 +174,7 @@ export const Select = _ref => {
|
|
|
174
174
|
placeholder: placeholder
|
|
175
175
|
}), endAdornment ? /*#__PURE__*/React.createElement(StyledEndAdornment, null, endAdornment) : null) : null, /*#__PURE__*/React.createElement(Autocomplete, _extends({}, prop, {
|
|
176
176
|
clearInputOnSelect: true,
|
|
177
|
-
inputEl: childNode,
|
|
177
|
+
inputEl: disableSearch ? undefined : childNode,
|
|
178
178
|
handleEmptyAction: handleEmptyAction,
|
|
179
179
|
selected: selected,
|
|
180
180
|
handleChange: handleChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","type","mode","target","options","selected","mixed","position","onChange","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","startAdornment","endAdornment","focusInput","disableVirtualization","prop","_objectWithoutPropertiesLoose","_excluded","console","warn","childNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","props","menuClassName","onPopperOpen","_elementRef$current","className","handleEmptyAction","value","_formRef$current","reset","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","imageUrl","image","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen: () => elementRef?.current?.focus(),\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","type","mode","target","options","selected","mixed","position","onChange","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","startAdornment","endAdornment","focusInput","disableVirtualization","prop","_objectWithoutPropertiesLoose","_excluded","console","warn","childNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","props","menuClassName","onPopperOpen","_elementRef$current","className","handleEmptyAction","value","_formRef$current","reset","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","imageUrl","image","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen: () => elementRef?.current?.focus(),\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={disableSearch ? undefined : childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -17785,8 +17785,8 @@
|
|
|
17785
17785
|
});
|
|
17786
17786
|
}, [filter, flatOptions, toggleSelected, handleDefaultOptionChange, handleEmpty, hover, showAddNew, showDefaultOption]);
|
|
17787
17787
|
React.useEffect(function () {
|
|
17788
|
-
var
|
|
17789
|
-
|
|
17788
|
+
var listenerTarget = inputEl === null || inputEl === void 0 ? void 0 : inputEl.current;
|
|
17789
|
+
if (!listenerTarget) return;
|
|
17790
17790
|
listenerTarget.addEventListener("input", handleInputChange);
|
|
17791
17791
|
listenerTarget.addEventListener("keydown", handleOnKeyDown);
|
|
17792
17792
|
return function () {
|
|
@@ -18125,7 +18125,7 @@
|
|
|
18125
18125
|
placeholder: placeholder
|
|
18126
18126
|
}), endAdornment ? /*#__PURE__*/React__default["default"].createElement(StyledEndAdornment, null, endAdornment) : null) : null, /*#__PURE__*/React__default["default"].createElement(Autocomplete, _extends({}, prop, {
|
|
18127
18127
|
clearInputOnSelect: true,
|
|
18128
|
-
inputEl: childNode,
|
|
18128
|
+
inputEl: disableSearch ? undefined : childNode,
|
|
18129
18129
|
handleEmptyAction: handleEmptyAction,
|
|
18130
18130
|
selected: selected,
|
|
18131
18131
|
handleChange: handleChange,
|