@activecollab/components 2.0.349 → 2.0.351

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.
Files changed (60) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +2 -0
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/Select/Option/Option.js.map +1 -1
  4. package/dist/cjs/components/Select/OptionContent/OptionContent.js +6 -2
  5. package/dist/cjs/components/Select/OptionContent/OptionContent.js.map +1 -1
  6. package/dist/cjs/components/Select/OptionContent/Styles.js +8 -3
  7. package/dist/cjs/components/Select/OptionContent/Styles.js.map +1 -1
  8. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +6 -2
  9. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  10. package/dist/cjs/components/Select/OptionGroup/Styles.js +13 -3
  11. package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
  12. package/dist/cjs/components/Select/Select.js +4 -0
  13. package/dist/cjs/components/Select/Select.js.map +1 -1
  14. package/dist/cjs/presentation/shared/WebhookLogsDialog.js +124 -14
  15. package/dist/cjs/presentation/shared/WebhookLogsDialog.js.map +1 -1
  16. package/dist/cjs/presentation/shared/headers.js +73 -37
  17. package/dist/cjs/presentation/shared/headers.js.map +1 -1
  18. package/dist/cjs/presentation/shared/index.js +7 -0
  19. package/dist/cjs/presentation/shared/index.js.map +1 -1
  20. package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  21. package/dist/esm/components/Autocomplete/Autocomplete.js +2 -0
  22. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  23. package/dist/esm/components/Select/Option/Option.d.ts +2 -0
  24. package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
  25. package/dist/esm/components/Select/Option/Option.js.map +1 -1
  26. package/dist/esm/components/Select/OptionContent/OptionContent.d.ts +3 -1
  27. package/dist/esm/components/Select/OptionContent/OptionContent.d.ts.map +1 -1
  28. package/dist/esm/components/Select/OptionContent/OptionContent.js +7 -3
  29. package/dist/esm/components/Select/OptionContent/OptionContent.js.map +1 -1
  30. package/dist/esm/components/Select/OptionContent/Styles.d.ts +1 -0
  31. package/dist/esm/components/Select/OptionContent/Styles.d.ts.map +1 -1
  32. package/dist/esm/components/Select/OptionContent/Styles.js +7 -2
  33. package/dist/esm/components/Select/OptionContent/Styles.js.map +1 -1
  34. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
  35. package/dist/esm/components/Select/OptionGroup/OptionGroup.js +7 -3
  36. package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  37. package/dist/esm/components/Select/OptionGroup/Styles.d.ts +2 -0
  38. package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
  39. package/dist/esm/components/Select/OptionGroup/Styles.js +12 -2
  40. package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
  41. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  42. package/dist/esm/components/Select/Select.js +4 -0
  43. package/dist/esm/components/Select/Select.js.map +1 -1
  44. package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts +22 -1
  45. package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts.map +1 -1
  46. package/dist/esm/presentation/shared/WebhookLogsDialog.js +133 -35
  47. package/dist/esm/presentation/shared/WebhookLogsDialog.js.map +1 -1
  48. package/dist/esm/presentation/shared/headers.d.ts +8 -1
  49. package/dist/esm/presentation/shared/headers.d.ts.map +1 -1
  50. package/dist/esm/presentation/shared/headers.js +64 -35
  51. package/dist/esm/presentation/shared/headers.js.map +1 -1
  52. package/dist/esm/presentation/shared/index.d.ts +2 -2
  53. package/dist/esm/presentation/shared/index.d.ts.map +1 -1
  54. package/dist/esm/presentation/shared/index.js +1 -1
  55. package/dist/esm/presentation/shared/index.js.map +1 -1
  56. package/dist/index.js +37 -8
  57. package/dist/index.js.map +1 -1
  58. package/dist/index.min.js +1 -1
  59. package/dist/index.min.js.map +1 -1
  60. 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","collectLeafIds","opts","reduce","acc","opt","map","o","id","insertAmongSameState","list","isChecked","checked","index","findIndex","name","localeCompare","i","length","slice","reconcileFlat","prev","next","frozen","nextById","Map","base","filter","has","get","baseIds","Set","toPlace","reconcileOrder","every","prevGroupById","group","_prevGroupById$get$op","_prevGroupById$get","_extends","Autocomplete","_ref","type","_ref$options","optionsProp","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","itemRef","Boolean","selectedOptions","Array","isArray","frozenRef","handleSort","_opts$","isGrouped","sortOptions","a","b","aSelected","includes","bSelected","aMixed","bMixed","sort","sortList","_options$","alphaSort","sortedOptions","_useState","sortedList","setSortedList","isInitialSortRef","selectedKey","join","current","nextFrozen","forEach","add","_useState2","by","hover","setHover","_useState3","setFilter","handleEmpty","e","button","_inputEl$current","focus","onAddNewMouseEnter","showAddNew","trim","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","groupedOption","filteredOptions","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","push","shouldUseVirtualization","rowVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","tooltip","renderOptions","onChange","ref","onMouseEnter","onClick","className","handleOnMouseLeave","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\nconst collectLeafIds = (\n opts: (IOptionGroupProps | IOptionItemProps)[]\n): (string | number)[] =>\n opts.reduce<(string | number)[]>(\n (acc, opt) =>\n isOptionGroup(opt)\n ? [...acc, ...opt.options.map((o) => o.id)]\n : [...acc, opt.id],\n []\n );\n\n// Inserts an option at its alphabetical position among the options that share\n// its checked state (checked items live at the top, so a checked option lands\n// among the checked ones, sorted).\nconst insertAmongSameState = (\n list: IOptionItemProps[],\n item: IOptionItemProps,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const checked = isChecked(item.id);\n let index = list.findIndex(\n (o) => isChecked(o.id) === checked && o.name.localeCompare(item.name) > 0\n );\n if (index === -1) {\n index = checked\n ? list.reduce((acc, o, i) => (isChecked(o.id) ? i + 1 : acc), 0)\n : list.length;\n }\n return [...list.slice(0, index), item, ...list.slice(index)];\n};\n\n// Frozen options that are still present keep their order (checking/unchecking\n// never moves them). Everything else — newly added options, or frozen options\n// that moved here (e.g. when the list is regrouped) — is slotted in among the\n// checked items, alphabetically.\nconst reconcileFlat = (\n prev: IOptionItemProps[],\n next: IOptionItemProps[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const nextById = new Map(next.map((o) => [o.id, o]));\n const base = prev\n .filter((o) => frozen.has(o.id) && nextById.has(o.id))\n .map((o) => nextById.get(o.id) as IOptionItemProps);\n const baseIds = new Set(base.map((o) => o.id));\n const toPlace = next.filter((o) => !baseIds.has(o.id));\n\n return toPlace.reduce(\n (acc, item) => insertAmongSameState(acc, item, isChecked),\n base\n );\n};\n\nconst reconcileOrder = (\n prev: (IOptionGroupProps | IOptionItemProps)[],\n next: (IOptionGroupProps | IOptionItemProps)[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): (IOptionGroupProps | IOptionItemProps)[] => {\n if (!next.every(isOptionGroup) || !prev.every(isOptionGroup)) {\n return reconcileFlat(\n prev as IOptionItemProps[],\n next as IOptionItemProps[],\n frozen,\n isChecked\n );\n }\n\n const prevGroupById = new Map(prev.map((group) => [group.id, group]));\n\n return next.map((group) => ({\n ...group,\n options: reconcileFlat(\n prevGroupById.get(group.id)?.options ?? [],\n group.options,\n frozen,\n isChecked\n ),\n }));\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: optionsProp = [],\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 // Tolerate sparse/holey option arrays (some callers build them via index\n // assignment): drop holes and nullish entries so sorting never hits undefined.\n const options = useMemo(() => optionsProp.filter(Boolean), [optionsProp]);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n // Ids whose position is fixed. Starts with everything present on open; a\n // freshly added option joins this set once it becomes checked, so unchecking\n // it later won't move it. Everything frozen keeps its order on every re-sort.\n const frozenRef = useRef(new Set(collectLeafIds(options)));\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 ...group,\n options: [...group.options].sort(sortOptions),\n }));\n } else {\n return [...opts].sort(sortOptions);\n }\n },\n [keepSameOptionsOrder, selectedOptions, mixedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort(options);\n }\n\n const alphaSort = (a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name);\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => ({\n ...group,\n options: handleSort([...group.options].sort(alphaSort)),\n }));\n\n return handleSort(sortedOptions);\n } else {\n return handleSort([...options].sort(alphaSort));\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n // The order is established on open. Options present then keep their place for\n // the whole session — checking/unchecking never reorders them. Options added\n // afterwards are slotted in among the checked items, alphabetically. The\n // selection key is a primitive so a fresh `selected = []` default can't loop.\n const isInitialSortRef = useRef(true);\n const selectedKey = selectedOptions.join(\",\");\n\n useEffect(() => {\n if (isInitialSortRef.current) {\n isInitialSortRef.current = false;\n return;\n }\n\n if (keepSameOptionsOrder) {\n setSortedList(sortList(options));\n return;\n }\n\n if (sortedList.length === 0) {\n frozenRef.current = new Set(collectLeafIds(options));\n setSortedList(sortList(options));\n return;\n }\n\n const isChecked = (id: string | number) => selectedOptions.includes(id);\n const frozen = frozenRef.current;\n\n const nextFrozen = new Set(frozen);\n collectLeafIds(options).forEach((id) => {\n if (!frozen.has(id) && isChecked(id)) {\n nextFrozen.add(id);\n }\n });\n frozenRef.current = nextFrozen;\n\n setSortedList(reconcileOrder(sortedList, options, frozen, isChecked));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options, selectedKey]);\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":[]}
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","collectLeafIds","opts","reduce","acc","opt","map","o","id","insertAmongSameState","list","isChecked","checked","index","findIndex","name","localeCompare","i","length","slice","reconcileFlat","prev","next","frozen","nextById","Map","base","filter","has","get","baseIds","Set","toPlace","reconcileOrder","every","prevGroupById","group","_prevGroupById$get$op","_prevGroupById$get","_extends","Autocomplete","_ref","type","_ref$options","optionsProp","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","filterCriteria","disableVirtualization","listContainerRef","itemRef","Boolean","selectedOptions","Array","isArray","frozenRef","handleSort","_opts$","isGrouped","sortOptions","a","b","aSelected","includes","bSelected","aMixed","bMixed","sort","sortList","_options$","alphaSort","sortedOptions","_useState","sortedList","setSortedList","isInitialSortRef","selectedKey","join","current","nextFrozen","forEach","add","_useState2","by","hover","setHover","_useState3","setFilter","handleEmpty","e","button","_inputEl$current","focus","onAddNewMouseEnter","showAddNew","trim","v","toLowerCase","filterOptions","trimmedFilter","matchesFilter","hidden","nameMatch","hovered","groupedOption","filteredOptions","showDefaultOption","flatOptions","showNoResultCondition","virtualItems","items","push","shouldUseVirtualization","rowVirtualizer","count","getScrollElement","estimateSize","overscan","gap","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","createElement","icon","tooltip","renderOptions","onChange","ref","onMouseEnter","onClick","className","handleOnMouseLeave","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\nconst collectLeafIds = (\n opts: (IOptionGroupProps | IOptionItemProps)[]\n): (string | number)[] =>\n opts.reduce<(string | number)[]>(\n (acc, opt) =>\n isOptionGroup(opt)\n ? [...acc, ...opt.options.map((o) => o.id)]\n : [...acc, opt.id],\n []\n );\n\n// Inserts an option at its alphabetical position among the options that share\n// its checked state (checked items live at the top, so a checked option lands\n// among the checked ones, sorted).\nconst insertAmongSameState = (\n list: IOptionItemProps[],\n item: IOptionItemProps,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const checked = isChecked(item.id);\n let index = list.findIndex(\n (o) => isChecked(o.id) === checked && o.name.localeCompare(item.name) > 0\n );\n if (index === -1) {\n index = checked\n ? list.reduce((acc, o, i) => (isChecked(o.id) ? i + 1 : acc), 0)\n : list.length;\n }\n return [...list.slice(0, index), item, ...list.slice(index)];\n};\n\n// Frozen options that are still present keep their order (checking/unchecking\n// never moves them). Everything else — newly added options, or frozen options\n// that moved here (e.g. when the list is regrouped) — is slotted in among the\n// checked items, alphabetically.\nconst reconcileFlat = (\n prev: IOptionItemProps[],\n next: IOptionItemProps[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): IOptionItemProps[] => {\n const nextById = new Map(next.map((o) => [o.id, o]));\n const base = prev\n .filter((o) => frozen.has(o.id) && nextById.has(o.id))\n .map((o) => nextById.get(o.id) as IOptionItemProps);\n const baseIds = new Set(base.map((o) => o.id));\n const toPlace = next.filter((o) => !baseIds.has(o.id));\n\n return toPlace.reduce(\n (acc, item) => insertAmongSameState(acc, item, isChecked),\n base\n );\n};\n\nconst reconcileOrder = (\n prev: (IOptionGroupProps | IOptionItemProps)[],\n next: (IOptionGroupProps | IOptionItemProps)[],\n frozen: Set<string | number>,\n isChecked: (id: string | number) => boolean\n): (IOptionGroupProps | IOptionItemProps)[] => {\n if (!next.every(isOptionGroup) || !prev.every(isOptionGroup)) {\n return reconcileFlat(\n prev as IOptionItemProps[],\n next as IOptionItemProps[],\n frozen,\n isChecked\n );\n }\n\n const prevGroupById = new Map(prev.map((group) => [group.id, group]));\n\n return next.map((group) => ({\n ...group,\n options: reconcileFlat(\n prevGroupById.get(group.id)?.options ?? [],\n group.options,\n frozen,\n isChecked\n ),\n }));\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: optionsProp = [],\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 // Tolerate sparse/holey option arrays (some callers build them via index\n // assignment): drop holes and nullish entries so sorting never hits undefined.\n const options = useMemo(() => optionsProp.filter(Boolean), [optionsProp]);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n // Ids whose position is fixed. Starts with everything present on open; a\n // freshly added option joins this set once it becomes checked, so unchecking\n // it later won't move it. Everything frozen keeps its order on every re-sort.\n const frozenRef = useRef(new Set(collectLeafIds(options)));\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 ...group,\n options: [...group.options].sort(sortOptions),\n }));\n } else {\n return [...opts].sort(sortOptions);\n }\n },\n [keepSameOptionsOrder, selectedOptions, mixedOptions]\n );\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort(options);\n }\n\n const alphaSort = (a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name);\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => ({\n ...group,\n options: handleSort([...group.options].sort(alphaSort)),\n }));\n\n return handleSort(sortedOptions);\n } else {\n return handleSort([...options].sort(alphaSort));\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const [sortedList, setSortedList] = useState(() => sortList(options));\n\n // The order is established on open. Options present then keep their place for\n // the whole session — checking/unchecking never reorders them. Options added\n // afterwards are slotted in among the checked items, alphabetically. The\n // selection key is a primitive so a fresh `selected = []` default can't loop.\n const isInitialSortRef = useRef(true);\n const selectedKey = selectedOptions.join(\",\");\n\n useEffect(() => {\n if (isInitialSortRef.current) {\n isInitialSortRef.current = false;\n return;\n }\n\n if (keepSameOptionsOrder) {\n setSortedList(sortList(options));\n return;\n }\n\n if (sortedList.length === 0) {\n frozenRef.current = new Set(collectLeafIds(options));\n setSortedList(sortList(options));\n return;\n }\n\n const isChecked = (id: string | number) => selectedOptions.includes(id);\n const frozen = frozenRef.current;\n\n const nextFrozen = new Set(frozen);\n collectLeafIds(options).forEach((id) => {\n if (!frozen.has(id) && isChecked(id)) {\n nextFrozen.add(id);\n }\n });\n frozenRef.current = nextFrozen;\n\n setSortedList(reconcileOrder(sortedList, options, frozen, isChecked));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [options, selectedKey]);\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 icon={item.icon}\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 icon={virtualItem.item.icon}\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":[]}
@@ -10,6 +10,8 @@ export interface IOptionItemProps {
10
10
  additionalInfo?: string;
11
11
  /** image url for Avatar or MultiAvatar */
12
12
  image?: string | string[];
13
+ /** Decorative leading SVG icon. Mutually exclusive with `image` (icon wins). */
14
+ icon?: ReactNode;
13
15
  /** Hex color for label */
14
16
  color?: string;
15
17
  /** Color for chip label */
@@ -1 +1 @@
1
- {"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/Option/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,0BAA0B;IAClC,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,qBAAqB;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,MAAM,kGAoClB,CAAC"}
1
+ {"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/Option/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EACjB,SAAS,EAGV,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,gFAAgF;IAChF,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,0BAA0B;IAClC,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACxD,qBAAqB;IACrB,OAAO,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,MAAM,kGAoClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["React","forwardRef","useCallback","classnames","StyledOption","StyledOptionContent","Option","_ref","ref","id","name","_ref$tooltip","tooltip","hover","className","renderOption","onMouseEnter","_ref$onClick","onClick","handleOnMouseEnter","createElement","title","onTouchStart","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledOption, StyledOptionContent } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n /** Color for chip label */\n chipColor?: string;\n /** Value of mixed */\n mixed?: boolean;\n /** Hide option */\n hidden?: boolean;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n tooltip = \"\",\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={tooltip ? tooltip : name}\n onMouseEnter={handleOnMouseEnter}\n onTouchStart={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n <StyledOptionContent>\n {renderOption ? renderOption : name}\n </StyledOptionContent>\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,UAAU,EAIVC,WAAW,QACN,OAAO;AAEd,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,UAAU;AA0C5D,OAAO,MAAMC,MAAM,gBAAGL,UAAU,CAC9B,CAAAM,IAAA,EAWEC,GAAuB,KACpB;EAAA,IAVDC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IACFC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAAC,YAAA,GAAAJ,IAAA,CACJK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,EAAE,GAAAA,YAAA;IACZE,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IACZC,YAAY,GAAAT,IAAA,CAAZS,YAAY;IAAAC,YAAA,GAAAV,IAAA,CACZW,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,MAAM,IAAI,GAAAA,YAAA;EAItB,MAAME,kBAAkB,GAAGjB,WAAW,CAAC,MAAM;IAC3C,IAAIc,YAAY,EAAE;MAChBA,YAAY,CAACP,EAAE,CAAC;IAClB;EACF,CAAC,EAAE,CAACO,YAAY,EAAEP,EAAE,CAAC,CAAC;EAEtB,oBACET,KAAA,CAAAoB,aAAA,CAAChB,YAAY;IACXI,GAAG,EAAEK,KAAK,GAAGL,GAAG,GAAG,IAAK;IACxBa,KAAK,EAAET,OAAO,GAAGA,OAAO,GAAGF,IAAK;IAChCM,YAAY,EAAEG,kBAAmB;IACjCG,YAAY,EAAEH,kBAAmB;IACjCL,SAAS,EAAEX,UAAU,CAAC,UAAU,EAAEW,SAAS,CAAE;IAC7CD,KAAK,EAAEA,KAAM;IACbK,OAAO,EAAEA;EAAQ,gBAEjBlB,KAAA,CAAAoB,aAAA,CAACf,mBAAmB,QACjBU,YAAY,GAAGA,YAAY,GAAGL,IACZ,CACT,CAAC;AAEnB,CACF,CAAC;AAEDJ,MAAM,CAACiB,WAAW,GAAG,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Option.js","names":["React","forwardRef","useCallback","classnames","StyledOption","StyledOptionContent","Option","_ref","ref","id","name","_ref$tooltip","tooltip","hover","className","renderOption","onMouseEnter","_ref$onClick","onClick","handleOnMouseEnter","createElement","title","onTouchStart","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledOption, StyledOptionContent } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Decorative leading SVG icon. Mutually exclusive with `image` (icon wins). */\n icon?: ReactNode;\n /** Hex color for label */\n color?: string;\n /** Color for chip label */\n chipColor?: string;\n /** Value of mixed */\n mixed?: boolean;\n /** Hide option */\n hidden?: boolean;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n tooltip = \"\",\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={tooltip ? tooltip : name}\n onMouseEnter={handleOnMouseEnter}\n onTouchStart={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n <StyledOptionContent>\n {renderOption ? renderOption : name}\n </StyledOptionContent>\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":"AAAA,OAAOA,KAAK,IACVC,UAAU,EAIVC,WAAW,QACN,OAAO;AAEd,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,YAAY,EAAEC,mBAAmB,QAAQ,UAAU;AA4C5D,OAAO,MAAMC,MAAM,gBAAGL,UAAU,CAC9B,CAAAM,IAAA,EAWEC,GAAuB,KACpB;EAAA,IAVDC,EAAE,GAAAF,IAAA,CAAFE,EAAE;IACFC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAAC,YAAA,GAAAJ,IAAA,CACJK,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,EAAE,GAAAA,YAAA;IACZE,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,SAAS,GAAAP,IAAA,CAATO,SAAS;IACTC,YAAY,GAAAR,IAAA,CAAZQ,YAAY;IACZC,YAAY,GAAAT,IAAA,CAAZS,YAAY;IAAAC,YAAA,GAAAV,IAAA,CACZW,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,MAAM,IAAI,GAAAA,YAAA;EAItB,MAAME,kBAAkB,GAAGjB,WAAW,CAAC,MAAM;IAC3C,IAAIc,YAAY,EAAE;MAChBA,YAAY,CAACP,EAAE,CAAC;IAClB;EACF,CAAC,EAAE,CAACO,YAAY,EAAEP,EAAE,CAAC,CAAC;EAEtB,oBACET,KAAA,CAAAoB,aAAA,CAAChB,YAAY;IACXI,GAAG,EAAEK,KAAK,GAAGL,GAAG,GAAG,IAAK;IACxBa,KAAK,EAAET,OAAO,GAAGA,OAAO,GAAGF,IAAK;IAChCM,YAAY,EAAEG,kBAAmB;IACjCG,YAAY,EAAEH,kBAAmB;IACjCL,SAAS,EAAEX,UAAU,CAAC,UAAU,EAAEW,SAAS,CAAE;IAC7CD,KAAK,EAAEA,KAAM;IACbK,OAAO,EAAEA;EAAQ,gBAEjBlB,KAAA,CAAAoB,aAAA,CAACf,mBAAmB,QACjBU,YAAY,GAAGA,YAAY,GAAGL,IACZ,CACT,CAAC;AAEnB,CACF,CAAC;AAEDJ,MAAM,CAACiB,WAAW,GAAG,QAAQ","ignoreList":[]}
@@ -1,10 +1,12 @@
1
- import { FC } from "react";
1
+ import { FC, ReactNode } from "react";
2
2
  interface OptionContentProps {
3
3
  imageUrl?: string | string[];
4
4
  color?: string;
5
5
  textColor?: string;
6
6
  name: string;
7
7
  additionalInfo?: string;
8
+ /** Decorative leading SVG icon. Takes precedence over `imageUrl`/`color`. */
9
+ icon?: ReactNode;
8
10
  }
9
11
  export declare const OptionContent: FC<OptionContentProps>;
10
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"OptionContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAWlC,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAoChD,CAAC"}
1
+ {"version":3,"file":"OptionContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAY7C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAyChD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { StyledOptionIndicator, StyledOptionText, StyledAdditionalInfo, StyledOptionContentWrapper } from "./Styles";
2
+ import { StyledOptionIcon, StyledOptionIndicator, StyledOptionText, StyledAdditionalInfo, StyledOptionContentWrapper } from "./Styles";
3
3
  import { Avatar } from "../../Avatar/Avatar";
4
4
  import { MultiAvatar } from "../../MultiAvatar";
5
5
  export const OptionContent = _ref => {
@@ -7,8 +7,12 @@ export const OptionContent = _ref => {
7
7
  color = _ref.color,
8
8
  textColor = _ref.textColor,
9
9
  name = _ref.name,
10
- additionalInfo = _ref.additionalInfo;
11
- return /*#__PURE__*/React.createElement(StyledOptionContentWrapper, null, imageUrl || color ? /*#__PURE__*/React.createElement(StyledOptionIndicator, {
10
+ additionalInfo = _ref.additionalInfo,
11
+ icon = _ref.icon;
12
+ return /*#__PURE__*/React.createElement(StyledOptionContentWrapper, null, icon ? /*#__PURE__*/React.createElement(StyledOptionIcon, {
13
+ className: "c-option--icon",
14
+ "aria-hidden": "true"
15
+ }, icon) : imageUrl || color ? /*#__PURE__*/React.createElement(StyledOptionIndicator, {
12
16
  className: "c-option--label",
13
17
  backgroundColor: color
14
18
  }, imageUrl ? /*#__PURE__*/React.createElement(React.Fragment, null, Array.isArray(imageUrl) ? /*#__PURE__*/React.createElement(MultiAvatar, {
@@ -1 +1 @@
1
- {"version":3,"file":"OptionContent.js","names":["React","StyledOptionIndicator","StyledOptionText","StyledAdditionalInfo","StyledOptionContentWrapper","Avatar","MultiAvatar","OptionContent","_ref","imageUrl","color","textColor","name","additionalInfo","createElement","className","backgroundColor","Fragment","Array","isArray","url","displayName"],"sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"sourcesContent":["import React, { FC } from \"react\";\n\nimport {\n StyledOptionIndicator,\n StyledOptionText,\n StyledAdditionalInfo,\n StyledOptionContentWrapper,\n} from \"./Styles\";\nimport { Avatar } from \"../../Avatar/Avatar\";\nimport { MultiAvatar } from \"../../MultiAvatar\";\n\ninterface OptionContentProps {\n imageUrl?: string | string[];\n color?: string;\n textColor?: string;\n name: string;\n additionalInfo?: string;\n}\n\nexport const OptionContent: FC<OptionContentProps> = ({\n imageUrl,\n color,\n textColor,\n name,\n additionalInfo,\n}) => {\n return (\n <StyledOptionContentWrapper>\n {imageUrl || color ? (\n <StyledOptionIndicator\n className=\"c-option--label\"\n backgroundColor={color}\n >\n {imageUrl ? (\n <>\n {Array.isArray(imageUrl) ? (\n <MultiAvatar\n className=\"c-option--multi-avatar\"\n url={imageUrl}\n />\n ) : (\n <Avatar className=\"c-option--avatar\" url={imageUrl} />\n )}\n </>\n ) : null}\n </StyledOptionIndicator>\n ) : null}\n <StyledOptionText className=\"c-option--text\" textColor={textColor}>\n {name}\n </StyledOptionText>\n {additionalInfo ? (\n <StyledAdditionalInfo>{additionalInfo}</StyledAdditionalInfo>\n ) : null}\n </StyledOptionContentWrapper>\n );\n};\n\nOptionContent.displayName = \"OptionContent\";\n"],"mappings":"AAAA,OAAOA,KAAK,MAAc,OAAO;AAEjC,SACEC,qBAAqB,EACrBC,gBAAgB,EAChBC,oBAAoB,EACpBC,0BAA0B,QACrB,UAAU;AACjB,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,WAAW,QAAQ,mBAAmB;AAU/C,OAAO,MAAMC,aAAqC,GAAGC,IAAA,IAM/C;EAAA,IALJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,cAAc,GAAAL,IAAA,CAAdK,cAAc;EAEd,oBACEb,KAAA,CAAAc,aAAA,CAACV,0BAA0B,QACxBK,QAAQ,IAAIC,KAAK,gBAChBV,KAAA,CAAAc,aAAA,CAACb,qBAAqB;IACpBc,SAAS,EAAC,iBAAiB;IAC3BC,eAAe,EAAEN;EAAM,GAEtBD,QAAQ,gBACPT,KAAA,CAAAc,aAAA,CAAAd,KAAA,CAAAiB,QAAA,QACGC,KAAK,CAACC,OAAO,CAACV,QAAQ,CAAC,gBACtBT,KAAA,CAAAc,aAAA,CAACR,WAAW;IACVS,SAAS,EAAC,wBAAwB;IAClCK,GAAG,EAAEX;EAAS,CACf,CAAC,gBAEFT,KAAA,CAAAc,aAAA,CAACT,MAAM;IAACU,SAAS,EAAC,kBAAkB;IAACK,GAAG,EAAEX;EAAS,CAAE,CAEvD,CAAC,GACD,IACiB,CAAC,GACtB,IAAI,eACRT,KAAA,CAAAc,aAAA,CAACZ,gBAAgB;IAACa,SAAS,EAAC,gBAAgB;IAACJ,SAAS,EAAEA;EAAU,GAC/DC,IACe,CAAC,EAClBC,cAAc,gBACbb,KAAA,CAAAc,aAAA,CAACX,oBAAoB,QAAEU,cAAqC,CAAC,GAC3D,IACsB,CAAC;AAEjC,CAAC;AAEDN,aAAa,CAACc,WAAW,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"OptionContent.js","names":["React","StyledOptionIcon","StyledOptionIndicator","StyledOptionText","StyledAdditionalInfo","StyledOptionContentWrapper","Avatar","MultiAvatar","OptionContent","_ref","imageUrl","color","textColor","name","additionalInfo","icon","createElement","className","backgroundColor","Fragment","Array","isArray","url","displayName"],"sources":["../../../../../src/components/Select/OptionContent/OptionContent.tsx"],"sourcesContent":["import React, { FC, ReactNode } from \"react\";\n\nimport {\n StyledOptionIcon,\n StyledOptionIndicator,\n StyledOptionText,\n StyledAdditionalInfo,\n StyledOptionContentWrapper,\n} from \"./Styles\";\nimport { Avatar } from \"../../Avatar/Avatar\";\nimport { MultiAvatar } from \"../../MultiAvatar\";\n\ninterface OptionContentProps {\n imageUrl?: string | string[];\n color?: string;\n textColor?: string;\n name: string;\n additionalInfo?: string;\n /** Decorative leading SVG icon. Takes precedence over `imageUrl`/`color`. */\n icon?: ReactNode;\n}\n\nexport const OptionContent: FC<OptionContentProps> = ({\n imageUrl,\n color,\n textColor,\n name,\n additionalInfo,\n icon,\n}) => {\n return (\n <StyledOptionContentWrapper>\n {icon ? (\n <StyledOptionIcon className=\"c-option--icon\" aria-hidden=\"true\">\n {icon}\n </StyledOptionIcon>\n ) : imageUrl || color ? (\n <StyledOptionIndicator\n className=\"c-option--label\"\n backgroundColor={color}\n >\n {imageUrl ? (\n <>\n {Array.isArray(imageUrl) ? (\n <MultiAvatar\n className=\"c-option--multi-avatar\"\n url={imageUrl}\n />\n ) : (\n <Avatar className=\"c-option--avatar\" url={imageUrl} />\n )}\n </>\n ) : null}\n </StyledOptionIndicator>\n ) : null}\n <StyledOptionText className=\"c-option--text\" textColor={textColor}>\n {name}\n </StyledOptionText>\n {additionalInfo ? (\n <StyledAdditionalInfo>{additionalInfo}</StyledAdditionalInfo>\n ) : null}\n </StyledOptionContentWrapper>\n );\n};\n\nOptionContent.displayName = \"OptionContent\";\n"],"mappings":"AAAA,OAAOA,KAAK,MAAyB,OAAO;AAE5C,SACEC,gBAAgB,EAChBC,qBAAqB,EACrBC,gBAAgB,EAChBC,oBAAoB,EACpBC,0BAA0B,QACrB,UAAU;AACjB,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,WAAW,QAAQ,mBAAmB;AAY/C,OAAO,MAAMC,aAAqC,GAAGC,IAAA,IAO/C;EAAA,IANJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJC,cAAc,GAAAL,IAAA,CAAdK,cAAc;IACdC,IAAI,GAAAN,IAAA,CAAJM,IAAI;EAEJ,oBACEf,KAAA,CAAAgB,aAAA,CAACX,0BAA0B,QACxBU,IAAI,gBACHf,KAAA,CAAAgB,aAAA,CAACf,gBAAgB;IAACgB,SAAS,EAAC,gBAAgB;IAAC,eAAY;EAAM,GAC5DF,IACe,CAAC,GACjBL,QAAQ,IAAIC,KAAK,gBACnBX,KAAA,CAAAgB,aAAA,CAACd,qBAAqB;IACpBe,SAAS,EAAC,iBAAiB;IAC3BC,eAAe,EAAEP;EAAM,GAEtBD,QAAQ,gBACPV,KAAA,CAAAgB,aAAA,CAAAhB,KAAA,CAAAmB,QAAA,QACGC,KAAK,CAACC,OAAO,CAACX,QAAQ,CAAC,gBACtBV,KAAA,CAAAgB,aAAA,CAACT,WAAW;IACVU,SAAS,EAAC,wBAAwB;IAClCK,GAAG,EAAEZ;EAAS,CACf,CAAC,gBAEFV,KAAA,CAAAgB,aAAA,CAACV,MAAM;IAACW,SAAS,EAAC,kBAAkB;IAACK,GAAG,EAAEZ;EAAS,CAAE,CAEvD,CAAC,GACD,IACiB,CAAC,GACtB,IAAI,eACRV,KAAA,CAAAgB,aAAA,CAACb,gBAAgB;IAACc,SAAS,EAAC,gBAAgB;IAACL,SAAS,EAAEA;EAAU,GAC/DC,IACe,CAAC,EAClBC,cAAc,gBACbd,KAAA,CAAAgB,aAAA,CAACZ,oBAAoB,QAAEU,cAAqC,CAAC,GAC3D,IACsB,CAAC;AAEjC,CAAC;AAEDN,aAAa,CAACe,WAAW,GAAG,eAAe","ignoreList":[]}
@@ -2,6 +2,7 @@ export declare const StyledOptionContentWrapper: import("styled-components").Sty
2
2
  export declare const StyledOptionIndicator: import("styled-components").StyledComponent<"div", any, {
3
3
  backgroundColor?: string;
4
4
  }, never>;
5
+ export declare const StyledOptionIcon: import("styled-components").StyledComponent<"span", any, {}, never>;
5
6
  export declare const StyledOptionText: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../..").IBodyProps & Omit<import("../../Typography/Typography").ITypographyProps, "variant" | "weight"> & import("react").RefAttributes<HTMLDivElement>>, any, {
6
7
  textColor?: string;
7
8
  }, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,oEAQtC,CAAC;AAIF,eAAO,MAAM,qBAAqB;sBAAkC,MAAM;SAYzE,CAAC;AAIF,eAAO,MAAM,gBAAgB;gBAA+B,MAAM;SAUjE,CAAC;AAIF,eAAO,MAAM,oBAAoB,qEAIhC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,oEAQtC,CAAC;AAIF,eAAO,MAAM,qBAAqB;sBAAkC,MAAM;SAYzE,CAAC;AAIF,eAAO,MAAM,gBAAgB,qEAc5B,CAAC;AAIF,eAAO,MAAM,gBAAgB;gBAA+B,MAAM;SAUjE,CAAC;AAIF,eAAO,MAAM,oBAAoB,qEAIhC,CAAC"}
@@ -10,9 +10,14 @@ export const StyledOptionIndicator = styled.div.withConfig({
10
10
  componentId: "sc-6fiqyy-1"
11
11
  })(["height:24px;width:24px;border-radius:100%;margin-right:8px;flex-shrink:0;", ""], props => props.backgroundColor && !props.children && css(["background-color:", ";"], props.backgroundColor));
12
12
  StyledOptionIndicator.displayName = "StyledOptionIndicator";
13
+ export const StyledOptionIcon = styled.span.withConfig({
14
+ displayName: "Styles__StyledOptionIcon",
15
+ componentId: "sc-6fiqyy-2"
16
+ })(["display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0;color:currentColor;svg{width:16px;height:16px;}"]);
17
+ StyledOptionIcon.displayName = "StyledOptionIcon";
13
18
  export const StyledOptionText = styled(Body2).withConfig({
14
19
  displayName: "Styles__StyledOptionText",
15
- componentId: "sc-6fiqyy-2"
20
+ componentId: "sc-6fiqyy-3"
16
21
  })(["", " flex-grow:1;line-height:28px;padding-right:10px;", ""], {
17
22
  "overflow": "hidden",
18
23
  "textOverflow": "ellipsis",
@@ -21,7 +26,7 @@ export const StyledOptionText = styled(Body2).withConfig({
21
26
  StyledOptionText.displayName = "StyledOptionText";
22
27
  export const StyledAdditionalInfo = styled.span.withConfig({
23
28
  displayName: "Styles__StyledAdditionalInfo",
24
- componentId: "sc-6fiqyy-3"
29
+ componentId: "sc-6fiqyy-4"
25
30
  })(["margin:0 0 0 5px;line-height:18px;flex-shrink:0;"]);
26
31
  StyledAdditionalInfo.displayName = "StyledAdditionalInfo";
27
32
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","Body2","StyledOptionContentWrapper","div","withConfig","displayName","componentId","StyledOptionIndicator","props","backgroundColor","children","StyledOptionText","textColor","StyledAdditionalInfo","span"],"sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionContentWrapper = styled.div`\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n align-items: center;\n height: 100%;\n flex-grow: 1;\n`;\n\nStyledOptionContentWrapper.displayName = \"StyledOptionContentWrapper\";\n\nexport const StyledOptionIndicator = styled.div<{ backgroundColor?: string }>`\n height: 24px;\n width: 24px;\n border-radius: 100%;\n margin-right: 8px;\n flex-shrink: 0;\n ${(props) =>\n props.backgroundColor &&\n !props.children &&\n css`\n background-color: ${props.backgroundColor};\n `}\n`;\n\nStyledOptionIndicator.displayName = \"StyledOptionIndicator\";\n\nexport const StyledOptionText = styled(Body2)<{ textColor?: string }>`\n ${tw`tw-truncate`}\n flex-grow: 1;\n line-height: 28px;\n padding-right: 10px;\n ${(props) =>\n props.textColor &&\n css`\n color: ${props.textColor};\n `}\n`;\n\nStyledOptionText.displayName = \"StyledOptionText\";\n\nexport const StyledAdditionalInfo = styled.span`\n margin: 0 0 0 5px;\n line-height: 18px;\n flex-shrink: 0;\n`;\n\nStyledAdditionalInfo.displayName = \"StyledAdditionalInfo\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,0BAA0B,GAAGH,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0HAQnD;AAEDJ,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AAErE,OAAO,MAAME,qBAAqB,GAAGR,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sFAM1CE,KAAK,IACNA,KAAK,CAACC,eAAe,IACrB,CAACD,KAAK,CAACE,QAAQ,IACfV,GAAG,6BACmBQ,KAAK,CAACC,eAAe,CAC1C,CACJ;AAEDF,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMM,gBAAgB,GAAGZ,MAAM,CAACE,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEACvC;EAAA;EAAA;EAAA;AAAY,CAAC,EAIdE,KAAK,IACNA,KAAK,CAACI,SAAS,IACfZ,GAAG,kBACQQ,KAAK,CAACI,SAAS,CACzB,CACJ;AAEDD,gBAAgB,CAACN,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMQ,oBAAoB,GAAGd,MAAM,CAACe,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wDAI9C;AAEDO,oBAAoB,CAACR,WAAW,GAAG,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","Body2","StyledOptionContentWrapper","div","withConfig","displayName","componentId","StyledOptionIndicator","props","backgroundColor","children","StyledOptionIcon","span","StyledOptionText","textColor","StyledAdditionalInfo"],"sources":["../../../../../src/components/Select/OptionContent/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionContentWrapper = styled.div`\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n align-items: center;\n height: 100%;\n flex-grow: 1;\n`;\n\nStyledOptionContentWrapper.displayName = \"StyledOptionContentWrapper\";\n\nexport const StyledOptionIndicator = styled.div<{ backgroundColor?: string }>`\n height: 24px;\n width: 24px;\n border-radius: 100%;\n margin-right: 8px;\n flex-shrink: 0;\n ${(props) =>\n props.backgroundColor &&\n !props.children &&\n css`\n background-color: ${props.backgroundColor};\n `}\n`;\n\nStyledOptionIndicator.displayName = \"StyledOptionIndicator\";\n\nexport const StyledOptionIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-right: 8px;\n flex-shrink: 0;\n color: currentColor;\n\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nStyledOptionIcon.displayName = \"StyledOptionIcon\";\n\nexport const StyledOptionText = styled(Body2)<{ textColor?: string }>`\n ${tw`tw-truncate`}\n flex-grow: 1;\n line-height: 28px;\n padding-right: 10px;\n ${(props) =>\n props.textColor &&\n css`\n color: ${props.textColor};\n `}\n`;\n\nStyledOptionText.displayName = \"StyledOptionText\";\n\nexport const StyledAdditionalInfo = styled.span`\n margin: 0 0 0 5px;\n line-height: 18px;\n flex-shrink: 0;\n`;\n\nStyledAdditionalInfo.displayName = \"StyledAdditionalInfo\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,0BAA0B,GAAGH,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0HAQnD;AAEDJ,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AAErE,OAAO,MAAME,qBAAqB,GAAGR,MAAM,CAACI,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sFAM1CE,KAAK,IACNA,KAAK,CAACC,eAAe,IACrB,CAACD,KAAK,CAACE,QAAQ,IACfV,GAAG,6BACmBQ,KAAK,CAACC,eAAe,CAC1C,CACJ;AAEDF,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMM,gBAAgB,GAAGZ,MAAM,CAACa,IAAI,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2KAc1C;AAEDK,gBAAgB,CAACN,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMQ,gBAAgB,GAAGd,MAAM,CAACE,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEACvC;EAAA;EAAA;EAAA;AAAY,CAAC,EAIdE,KAAK,IACNA,KAAK,CAACM,SAAS,IACfd,GAAG,kBACQQ,KAAK,CAACM,SAAS,CACzB,CACJ;AAEDD,gBAAgB,CAACR,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMU,oBAAoB,GAAGhB,MAAM,CAACa,IAAI,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wDAI9C;AAEDS,oBAAoB,CAACV,WAAW,GAAG,sBAAsB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAY9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,sBAAsB;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CA8FhD,CAAC"}
1
+ {"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAc9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,sBAAsB;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CAyGhD,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import React, { useCallback, useEffect, useMemo } from "react";
2
2
  import classNames from "classnames";
3
- import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupOption, StyledOptionGroupLi, StyledOptionGroupHeaderName } from "./Styles";
3
+ import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupHeaderLabel, StyledOptionGroupIcon, StyledOptionGroupOption, StyledOptionGroupLi, StyledOptionGroupHeaderName } from "./Styles";
4
4
  import { Checkbox } from "../../Checkbox/Checkbox";
5
5
  export const OptionGroup = _ref => {
6
6
  let id = _ref.id,
7
7
  name = _ref.name,
8
+ icon = _ref.icon,
8
9
  options = _ref.options,
9
10
  type = _ref.type,
10
11
  hover = _ref.hover,
@@ -55,9 +56,12 @@ export const OptionGroup = _ref => {
55
56
  }, /*#__PURE__*/React.createElement(StyledOptionGroupOption, {
56
57
  onMouseEnter: handleHover,
57
58
  hover: hover === id && type === "multiple"
58
- }, /*#__PURE__*/React.createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React.createElement(StyledOptionGroupHeaderName, {
59
+ }, /*#__PURE__*/React.createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React.createElement(StyledOptionGroupHeaderLabel, null, icon ? /*#__PURE__*/React.createElement(StyledOptionGroupIcon, {
60
+ className: "c-option-group--icon",
61
+ "aria-hidden": "true"
62
+ }, icon) : null, /*#__PURE__*/React.createElement(StyledOptionGroupHeaderName, {
59
63
  weight: "bold"
60
- }, name), type === "multiple" && /*#__PURE__*/React.createElement(Checkbox, {
64
+ }, name)), type === "multiple" && /*#__PURE__*/React.createElement(Checkbox, {
61
65
  id: "" + id,
62
66
  checked: isAllOptionsChecked,
63
67
  mixed: isMixed,
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","Checkbox","OptionGroup","_ref","id","name","options","type","hover","checked","onChange","setHover","optionGroupClassName","_ref$mixedOptions","mixedOptions","_document$getElementB","document","getElementById","focus","isAllOptionsChecked","every","option","includes","handleHover","undefined","allOptionValues","map","isMixed","some","item","handleClick","e","stopPropagation","preventDefault","filter","i","values","unique","pos","indexOf","createElement","key","className","onClick","onMouseEnter","weight","mixed","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC, ReactNode } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport { IOptionItemProps } from \"../Option/Option\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** Mixed options values */\n mixedOptions: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => ReactNode;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n checked,\n onChange,\n setHover,\n optionGroupClassName,\n mixedOptions = [],\n}) => {\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const isMixed: boolean = useMemo(() => {\n return (\n (options.some((option) => checked.includes(option.id)) ||\n mixedOptions.some((item) => allOptionValues.includes(item))) &&\n !isAllOptionsChecked\n );\n }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n e.preventDefault();\n if (onChange && type !== \"single\") {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange, type]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n type={type}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n onClick={handleClick}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <StyledOptionGroupHeaderName weight=\"bold\">\n {name}\n </StyledOptionGroupHeaderName>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n mixed={isMixed}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupHeaderLabel","StyledOptionGroupIcon","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","Checkbox","OptionGroup","_ref","id","name","icon","options","type","hover","checked","onChange","setHover","optionGroupClassName","_ref$mixedOptions","mixedOptions","_document$getElementB","document","getElementById","focus","isAllOptionsChecked","every","option","includes","handleHover","undefined","allOptionValues","map","isMixed","some","item","handleClick","e","stopPropagation","preventDefault","filter","i","values","unique","pos","indexOf","createElement","key","className","onClick","onMouseEnter","weight","mixed","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC, ReactNode } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupHeaderLabel,\n StyledOptionGroupIcon,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport { IOptionItemProps } from \"../Option/Option\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** Mixed options values */\n mixedOptions: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => ReactNode;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n icon,\n options,\n type,\n hover,\n checked,\n onChange,\n setHover,\n optionGroupClassName,\n mixedOptions = [],\n}) => {\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const isMixed: boolean = useMemo(() => {\n return (\n (options.some((option) => checked.includes(option.id)) ||\n mixedOptions.some((item) => allOptionValues.includes(item))) &&\n !isAllOptionsChecked\n );\n }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n e.preventDefault();\n if (onChange && type !== \"single\") {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange, type]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n type={type}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n onClick={handleClick}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <StyledOptionGroupHeaderLabel>\n {icon ? (\n <StyledOptionGroupIcon\n className=\"c-option-group--icon\"\n aria-hidden=\"true\"\n >\n {icon}\n </StyledOptionGroupIcon>\n ) : null}\n <StyledOptionGroupHeaderName weight=\"bold\">\n {name}\n </StyledOptionGroupHeaderName>\n </StyledOptionGroupHeaderLabel>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n mixed={isMixed}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,8 @@ export declare const StyledOptionGroupLi: import("styled-components").StyledComp
3
3
  }, never>;
4
4
  export declare const StyledOptionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
5
5
  export declare const StyledOptionGroupHeader: import("styled-components").StyledComponent<"div", any, {}, never>;
6
+ export declare const StyledOptionGroupHeaderLabel: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const StyledOptionGroupIcon: import("styled-components").StyledComponent<"span", any, {}, never>;
6
8
  export declare const StyledOptionGroupHeaderName: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../..").IBodyProps & Omit<import("../../Typography/Typography").ITypographyProps, "variant" | "weight"> & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
7
9
  export declare const StyledOptionGroupOption: import("styled-components").StyledComponent<"div", any, {
8
10
  hover?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB;WAAsB,QAAQ,GAAG,UAAU;SAG1E,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,2BAA2B,yQAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;YAAwB,OAAO;SAMlE,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB;WAAsB,QAAQ,GAAG,UAAU;SAG1E,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,4BAA4B,oEAKxC,CAAC;AAIF,eAAO,MAAM,qBAAqB,qEAcjC,CAAC;AAIF,eAAO,MAAM,2BAA2B,yQAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;YAAwB,OAAO;SAMlE,CAAC"}
@@ -18,14 +18,24 @@ export const StyledOptionGroupHeader = styled.div.withConfig({
18
18
  componentId: "sc-16v5afu-2"
19
19
  })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;margin:6px 0;*{margin:auto 0;}"]);
20
20
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
21
+ export const StyledOptionGroupHeaderLabel = styled.div.withConfig({
22
+ displayName: "Styles__StyledOptionGroupHeaderLabel",
23
+ componentId: "sc-16v5afu-3"
24
+ })(["display:flex;align-items:center;min-width:0;flex-grow:1;"]);
25
+ StyledOptionGroupHeaderLabel.displayName = "StyledOptionGroupHeaderLabel";
26
+ export const StyledOptionGroupIcon = styled.span.withConfig({
27
+ displayName: "Styles__StyledOptionGroupIcon",
28
+ componentId: "sc-16v5afu-4"
29
+ })(["display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:8px;flex-shrink:0;color:currentColor;svg{width:16px;height:16px;}"]);
30
+ StyledOptionGroupIcon.displayName = "StyledOptionGroupIcon";
21
31
  export const StyledOptionGroupHeaderName = styled(Body2).withConfig({
22
32
  displayName: "Styles__StyledOptionGroupHeaderName",
23
- componentId: "sc-16v5afu-3"
33
+ componentId: "sc-16v5afu-5"
24
34
  })(["padding-right:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"]);
25
35
  StyledOptionGroupHeaderName.displayName = "StyledOptionGroupHeaderName";
26
36
  export const StyledOptionGroupOption = styled.div.withConfig({
27
37
  displayName: "Styles__StyledOptionGroupOption",
28
- componentId: "sc-16v5afu-4"
38
+ componentId: "sc-16v5afu-6"
29
39
  })(["", ""], props => props.hover && css(["background-color:var(--color-theme-200);"]));
30
40
  StyledOptionGroupOption.displayName = "StyledOptionGroupOption";
31
41
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","withConfig","displayName","componentId","props","type","StyledOptionGroup","div","StyledOptionGroupHeader","StyledOptionGroupHeaderName","StyledOptionGroupOption","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li<{ type?: \"single\" | \"multiple\" }>`\n flex-direction: column;\n cursor: ${(props) => (props.type === \"single\" ? \"default\" : \"pointer\")};\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.div`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupHeaderName = styled(Body2)`\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nStyledOptionGroupHeaderName.displayName = \"StyledOptionGroupHeaderName\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2CAE/BC,KAAK,IAAMA,KAAK,CAACC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAU,CACvE;AACD,OAAO,MAAMC,iBAAiB,GAAGZ,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBN,SAAS,EACTD,cAAc,CACjB;AAEDU,iBAAiB,CAACJ,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMM,uBAAuB,GAAGd,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+HAUhD;AAEDK,uBAAuB,CAACN,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMO,2BAA2B,GAAGf,MAAM,CAACI,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qFAKvD;AAEDM,2BAA2B,CAACP,WAAW,GAAG,6BAA6B;AAEvE,OAAO,MAAMQ,uBAAuB,GAAGhB,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5CC,KAAK,IACNA,KAAK,CAACO,KAAK,IACXhB,GAAG,8CAEF,CACJ;AAEDe,uBAAuB,CAACR,WAAW,GAAG,yBAAyB","ignoreList":[]}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","withConfig","displayName","componentId","props","type","StyledOptionGroup","div","StyledOptionGroupHeader","StyledOptionGroupHeaderLabel","StyledOptionGroupIcon","span","StyledOptionGroupHeaderName","StyledOptionGroupOption","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li<{ type?: \"single\" | \"multiple\" }>`\n flex-direction: column;\n cursor: ${(props) => (props.type === \"single\" ? \"default\" : \"pointer\")};\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.div`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupHeaderLabel = styled.div`\n display: flex;\n align-items: center;\n min-width: 0;\n flex-grow: 1;\n`;\n\nStyledOptionGroupHeaderLabel.displayName = \"StyledOptionGroupHeaderLabel\";\n\nexport const StyledOptionGroupIcon = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-right: 8px;\n flex-shrink: 0;\n color: currentColor;\n\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n\nStyledOptionGroupIcon.displayName = \"StyledOptionGroupIcon\";\n\nexport const StyledOptionGroupHeaderName = styled(Body2)`\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nStyledOptionGroupHeaderName.displayName = \"StyledOptionGroupHeaderName\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2CAE/BC,KAAK,IAAMA,KAAK,CAACC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAU,CACvE;AACD,OAAO,MAAMC,iBAAiB,GAAGZ,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBN,SAAS,EACTD,cAAc,CACjB;AAEDU,iBAAiB,CAACJ,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMM,uBAAuB,GAAGd,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+HAUhD;AAEDK,uBAAuB,CAACN,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMO,4BAA4B,GAAGf,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gEAKrD;AAEDM,4BAA4B,CAACP,WAAW,GAAG,8BAA8B;AAEzE,OAAO,MAAMQ,qBAAqB,GAAGhB,MAAM,CAACiB,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,2KAc/C;AAEDO,qBAAqB,CAACR,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMU,2BAA2B,GAAGlB,MAAM,CAACI,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qFAKvD;AAEDS,2BAA2B,CAACV,WAAW,GAAG,6BAA6B;AAEvE,OAAO,MAAMW,uBAAuB,GAAGnB,MAAM,CAACa,GAAG,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5CC,KAAK,IACNA,KAAK,CAACU,KAAK,IACXnB,GAAG,8CAEF,CACJ;AAEDkB,uBAAuB,CAACX,WAAW,GAAG,yBAAyB","ignoreList":[]}