@activecollab/components 1.0.243 → 1.0.245

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","Scrollbars","highlightText","handleKeyboardMovement","Option","OptionGroup","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteNoResult","StyledAutocompleteScrollShadow","isOptionGroup","item","options","undefined","Autocomplete","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","itemRef","listRef","selectedOptions","Array","isArray","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Input Element. */\n inputEl?: HTMLInputElement | null;\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}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n}) => {\n const itemRef = useRef<HTMLLIElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\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?.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 renderAddNew = useMemo(() => {\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 }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\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((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\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]\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 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) {\n inputEl.value = \"\";\n inputEl.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 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 />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={index}\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 ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLIElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\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 if (inputEl) {\n inputEl.onkeydown = handleOnKeyDown;\n inputEl.onkeyup = handleInputChange;\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 showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\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 {list.map((item: IOptionItemProps, index) =>\n handleRenderOption(item, index)\n )}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Autocomplete.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","Scrollbars","highlightText","handleKeyboardMovement","Option","OptionGroup","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteNoResult","StyledAutocompleteScrollShadow","isOptionGroup","item","options","undefined","Autocomplete","type","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","clearInputOnSelect","itemRef","listRef","selectedOptions","Array","isArray","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","by","hover","setHover","filter","setFilter","handleEmpty","e","button","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","offsetTop","handleOnKeyDown","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n MutableRefObject,\n} from \"react\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteNoResult,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** 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}\n\ninterface IHover {\n item: number | string | undefined | null;\n by: \"mouse\" | \"keyboard\" | undefined;\n}\n\nexport const Autocomplete: FC<IAutocompleteProps> = ({\n type,\n options = [],\n inputEl,\n selected = [],\n emptyValue,\n noResultText,\n renderOption = (option) => option?.name,\n defaultValue,\n sortDirection = \"asc\",\n handleChange,\n optionClassName,\n handleEmptyAction,\n disabledInternalSort,\n AutocompleteClassName,\n handleDefaultOptionChange,\n preselectDefaultValue,\n keepSameOptionsOrder = false,\n autoHeightMax = 340,\n clearInputOnSelect,\n}) => {\n const itemRef = useRef<HTMLLIElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(() => {\n if (Array.isArray(selected)) {\n return selected;\n }\n return [selected];\n }, [selected]);\n\n const handleSort = useCallback((opts) => {\n if (keepSameOptionsOrder) {\n return opts;\n }\n return opts.sort((a: IOptionItemProps, b: IOptionItemProps) => {\n if (selectedOptions.includes(b.id) && !selectedOptions.includes(a.id)) {\n return 1;\n }\n if (selectedOptions.includes(a.id) && !selectedOptions.includes(b.id)) {\n return -1;\n }\n return 0;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n return handleSort(\n [...options].sort((a: IOptionItemProps, b: IOptionItemProps) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n )\n );\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = useMemo(() => sortList(options), [options, sortList]);\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 renderAddNew = useMemo(() => {\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 }, [emptyValue, handleEmpty, hover, onAddNewMouseEnter]);\n\n const filterOptions = useCallback(\n (options, filter) => {\n const trimmedFilter = filter.trim();\n const isGrouped = options[0] && isOptionGroup(options[0]);\n if (isGrouped) {\n let hovered = false;\n return options.reduce((acc, groupedOption) => {\n const filteredOptions = groupedOption.options.filter((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\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((v) =>\n v.name.toLowerCase().includes(trimmedFilter.toLowerCase())\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]\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 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 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 />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={index}\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 ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n const handleScroll = useCallback((list: Scrollbars, itemOffset: number) => {\n if (list.getClientHeight() + list.getScrollTop() < itemOffset + 40) {\n return list.scrollTop(itemOffset - list.getClientHeight() + 30);\n }\n if (list.getScrollTop() > itemOffset) {\n return list.scrollTop(itemOffset);\n }\n }, []);\n\n useEffect(() => {\n if (hover.by === \"keyboard\" && hover.item !== undefined) {\n const item: HTMLLIElement | null = itemRef.current;\n const list = listRef.current;\n if (itemRef && item && list) {\n handleScroll(list, item.offsetTop);\n }\n }\n }, [handleScroll, hover]);\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 if (inputEl?.current) {\n inputEl.current.onkeydown = handleOnKeyDown;\n inputEl.current.onkeyup = handleInputChange;\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 showNoResult = useMemo(\n () => noResultText && !showAddNew && list.length < 1,\n [list.length, noResultText, showAddNew]\n );\n\n const renderNoResult = useMemo(\n () => (\n <StyledAutocompleteNoResult>{noResultText}</StyledAutocompleteNoResult>\n ),\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <Scrollbars\n ref={listRef}\n key=\"scrollBar\"\n autoHeight\n autoHeightMax={autoHeightMax}\n onScroll={onScroll}\n >\n {defaultValue && !filter && (\n <Option\n name={defaultValue}\n ref={itemRef}\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 {list.map((item: IOptionItemProps, index) =>\n handleRenderOption(item, index)\n )}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"mappings":"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"}
@@ -83,17 +83,15 @@ export var ComboBox = function ComboBox(_ref) {
83
83
  var handleOnChange = useCallback(function (e) {
84
84
  return setValue(e.target.value);
85
85
  }, []);
86
- var _useState2 = useState(),
87
- childNode = _useState2[0],
88
- setChildNode = _useState2[1];
86
+ var childNode = useRef();
89
87
  var elementRef = useRef(null);
90
- var handleRef = useForkRef(setChildNode, elementRef);
88
+ var handleRef = useForkRef(childNode, elementRef);
91
89
  var wrapperRef = useRef(null);
92
90
  var chipWrapper = useRef(null);
93
91
  var comboBoxRef = useRef(null);
94
- var _useState3 = useState(false),
95
- open = _useState3[0],
96
- setOpen = _useState3[1];
92
+ var _useState2 = useState(false),
93
+ open = _useState2[0],
94
+ setOpen = _useState2[1];
97
95
  useOnClickOutside(wrapperRef, function (e) {
98
96
  var _comboBoxRef$current;
99
97
  if (e.target && (_comboBoxRef$current = comboBoxRef.current) != null && _comboBoxRef$current.contains(e.target)) {
@@ -112,8 +110,9 @@ export var ComboBox = function ComboBox(_ref) {
112
110
  }
113
111
  }, [open, selectedName, type]);
114
112
  useEffect(function () {
115
- open && (childNode == null ? void 0 : childNode.focus());
116
- !open && (childNode == null ? void 0 : childNode.blur());
113
+ var _childNode$current, _childNode$current2;
114
+ open && (childNode == null ? void 0 : (_childNode$current = childNode.current) == null ? void 0 : _childNode$current.focus());
115
+ !open && (childNode == null ? void 0 : (_childNode$current2 = childNode.current) == null ? void 0 : _childNode$current2.blur());
117
116
  }, [childNode, open]);
118
117
  useEffect(function () {
119
118
  setValue(selectedName);
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,mBAAmB,GAAG,oBAAoB,CACxE;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,gCAAgC;IAChC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAoOnC,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,mBAAmB,GAAG,oBAAoB,CACxE;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,gCAAgC;IAChC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAqOnC,CAAC"}
@@ -43,16 +43,14 @@ export var Select = function Select(_ref) {
43
43
  _ref$preselectDefault = _ref.preselectDefaultValue,
44
44
  preselectDefaultValue = _ref$preselectDefault === void 0 ? type === "single" : _ref$preselectDefault,
45
45
  prop = _objectWithoutPropertiesLoose(_ref, _excluded);
46
- var _useState = useState(),
47
- childNode = _useState[0],
48
- setChildNode = _useState[1];
46
+ var childNode = useRef();
49
47
  var elementRef = useRef(null);
50
- var handleRef = useForkRef(setChildNode, elementRef);
48
+ var handleRef = useForkRef(childNode, elementRef);
51
49
  var Tag = !target ? "div" : Menu;
52
50
  var formRef = useRef(null);
53
- var _useState2 = useState(false),
54
- open = _useState2[0],
55
- setOpen = _useState2[1];
51
+ var _useState = useState(false),
52
+ open = _useState[0],
53
+ setOpen = _useState[1];
56
54
  var selectedOptions = useMemo(function () {
57
55
  return selected instanceof Array ? selected : [selected];
58
56
  }, [selected]);
@@ -79,16 +77,18 @@ export var Select = function Select(_ref) {
79
77
  });
80
78
  }, [allOptionValues, selectedOptions]);
81
79
  useEffect(function () {
82
- open && (childNode == null ? void 0 : childNode.focus());
80
+ var _childNode$current;
81
+ open && (childNode == null ? void 0 : (_childNode$current = childNode.current) == null ? void 0 : _childNode$current.focus());
83
82
  }, [childNode, open]);
84
83
  var handleChange = useCallback(function (selectedValue) {
85
84
  if (forceCloseMenu) {
85
+ if (typeof onSelectClose === "function") onSelectClose();
86
86
  setOpen(false);
87
87
  }
88
88
  if (selectedValue !== selected) {
89
89
  onChange(selectedValue);
90
90
  }
91
- }, [forceCloseMenu, selected, onChange]);
91
+ }, [forceCloseMenu, selected, onSelectClose, onChange]);
92
92
  var onClose = useCallback(function () {
93
93
  setOpen(false);
94
94
  if (onSelectClose) {
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","isOptionGroup","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChangeCallback","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"handleEmptyAction\" | \"clearInputOnSelect\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n if (selectedValue !== selected) {\n onChange(selectedValue);\n }\n },\n [forceCloseMenu, selected, onChange]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","isOptionGroup","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","prop","childNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","current","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","reset","handleDefaultOptionChangeCallback","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"handleEmptyAction\" | \"clearInputOnSelect\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n ...prop\n}) => {\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (selectedValue !== selected) {\n onChange(selectedValue);\n }\n },\n [forceCloseMenu, selected, onSelectClose, onChange]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../../src/components/Window/Window.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID,eAAO,MAAM,MAAM,usJAkFlB,CAAC"}
1
+ {"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../../src/components/Window/Window.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAS9E,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID,eAAO,MAAM,MAAM,usJA0ElB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "disableCloseOnEsc", "onClick"];
4
- import React, { useCallback, useRef, useEffect, forwardRef } from "react";
4
+ import React, { useCallback, useRef, forwardRef } from "react";
5
5
  import classnames from "classnames";
6
6
  import FocusLock from "react-focus-lock";
7
7
  import { Portal, useLayerContext } from "../../helpers";
@@ -42,13 +42,6 @@ export var Window = /*#__PURE__*/forwardRef(function (_ref, ref) {
42
42
  onKeyDown(event);
43
43
  }
44
44
  }, [disableCloseOnEsc, onClose, onKeyDown]);
45
- useEffect(function () {
46
- return function () {
47
- typeof onClose === "function" && onClose();
48
- };
49
- // Dependency is empty because we only want to call onClose when component is unmounted
50
- // eslint-disable-next-line react-hooks/exhaustive-deps
51
- }, []);
52
45
  var handleClick = useCallback(function (event) {
53
46
  event == null ? void 0 : event.stopPropagation();
54
47
  typeof onClick === "function" && onClick(event);
@@ -1 +1 @@
1
- {"version":3,"file":"Window.js","names":["React","useCallback","useRef","useEffect","forwardRef","classnames","FocusLock","Portal","useLayerContext","useForkRef","RemoveScroll","StyledWindow","layers","returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","disableCloseOnEsc","onClick","rest","innerRef","handleRef","zIndex","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"sources":["../../../../src/components/Window/Window.tsx"],"sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n disableCloseOnEsc?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n disableCloseOnEsc = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\") &&\n !disableCloseOnEsc\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [disableCloseOnEsc, onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IACVC,WAAW,EACXC,MAAM,EACNC,SAAS,EACTC,UAAU,QAEL,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,kBAAkB;AACxC,SAASC,MAAM,EAAEC,eAAe,QAAQ,eAAe;AACvD,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,YAAY,QAAQ,SAAS;AACtC,SAASC,MAAM,QAAQ,aAAa;AASpC,IAAMC,WAAW,GAAG;EAAEC,aAAa,EAAE;AAAK,CAAC;AAE3C,OAAO,IAAMC,MAAM,gBAAGX,UAAU,CAI9B,gBAaEY,GAAG,EACA;EAAA,IAZDC,QAAQ,QAARA,QAAQ;IACRC,OAAO,QAAPA,OAAO;IACPC,SAAS,QAATA,SAAS;IACTC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IAAA,6BACTC,gBAAgB;IAAhBA,gBAAgB,sCAAG,KAAK;IAAA,6BACxBC,iBAAiB;IAAjBA,iBAAiB,sCAAG,KAAK;IAAA,6BACzBC,iBAAiB;IAAjBA,iBAAiB,sCAAG,KAAK;IACzBC,OAAO,QAAPA,OAAO;IACJC,IAAI;EAIT,IAAMC,QAAQ,GAAGzB,MAAM,CAAiB,IAAI,CAAC;EAC7C,IAAM0B,SAAS,GAAGnB,UAAU,CAACkB,QAAQ,EAAEX,GAAG,CAAC;EAC3C,uBAAuCR,eAAe,EAAE;IAAA,yCAAhDqB,MAAM;IAANA,MAAM,sCAAGjB,MAAM,CAACkB,UAAU;EAElC,IAAMC,aAAa,GAAG9B,WAAW,CAC/B,UAAC+B,KAAoC,EAAK;IACxC,IACE,CAACA,KAAK,CAACC,gBAAgB,KACtBD,KAAK,CAACE,GAAG,KAAK,KAAK,IAAIF,KAAK,CAACE,GAAG,KAAK,QAAQ,CAAC,IAC/C,CAACV,iBAAiB,EAClB;MACAQ,KAAK,CAACG,cAAc,EAAE;MACtB,IAAIjB,OAAO,EAAE;QACXA,OAAO,EAAE;MACX;IACF;IACA,IAAI,OAAOG,SAAS,KAAK,UAAU,EAAE;MACnCA,SAAS,CAACW,KAAK,CAAC;IAClB;EACF,CAAC,EACD,CAACR,iBAAiB,EAAEN,OAAO,EAAEG,SAAS,CAAC,CACxC;EAEDlB,SAAS,CAAC,YAAM;IACd,OAAO,YAAY;MACjB,OAAOe,OAAO,KAAK,UAAU,IAAIA,OAAO,EAAE;IAC5C,CAAC;IACD;IACA;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMkB,WAAW,GAAGnC,WAAW,CAC7B,UAAC+B,KAAK,EAAK;IACTA,KAAK,oBAALA,KAAK,CAAEK,eAAe,EAAE;IACxB,OAAOZ,OAAO,KAAK,UAAU,IAAIA,OAAO,CAACO,KAAK,CAAC;EACjD,CAAC,EACD,CAACP,OAAO,CAAC,CACV;EAED,oBACE,oBAAC,MAAM,qBACL,oBAAC,SAAS;IAAC,WAAW,EAAEZ,WAAY;IAAC,QAAQ,EAAES;EAAiB,gBAC9D,oBAAC,YAAY;IACX,YAAY;IACZ,GAAG,EAAEM,SAAU;IACf,OAAO,EAAE,CAACL,iBAAkB;IAC5B,WAAW;EAAA,gBAEX,oBAAC,YAAY,eACPG,IAAI;IACR,KAAK;MAAIG,MAAM,EAANA;IAAM,GAAKT,KAAK,CAAG;IAC5B,SAAS,EAAEW,aAAc;IACzB,QAAQ,EAAE,CAAE;IACZ,SAAS,EAAE1B,UAAU,CAAC,UAAU,EAAEc,SAAS,CAAE;IAC7C,OAAO,EAAEiB;EAAY,IAEpBnB,QAAQ,CACI,CACF,CACL,CACL;AAEb,CAAC,CACF;AAEDF,MAAM,CAACuB,WAAW,GAAG,QAAQ"}
1
+ {"version":3,"file":"Window.js","names":["React","useCallback","useRef","forwardRef","classnames","FocusLock","Portal","useLayerContext","useForkRef","RemoveScroll","StyledWindow","layers","returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","disableCloseOnEsc","onClick","rest","innerRef","handleRef","zIndex","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"sources":["../../../../src/components/Window/Window.tsx"],"sourcesContent":["import React, { useCallback, useRef, forwardRef, KeyboardEvent } from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n disableCloseOnEsc?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n disableCloseOnEsc = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\") &&\n !disableCloseOnEsc\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [disableCloseOnEsc, onClose, onKeyDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,MAAM,EAAEC,UAAU,QAAuB,OAAO;AAC7E,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,kBAAkB;AACxC,SAASC,MAAM,EAAEC,eAAe,QAAQ,eAAe;AACvD,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,YAAY,QAAQ,SAAS;AACtC,SAASC,MAAM,QAAQ,aAAa;AASpC,IAAMC,WAAW,GAAG;EAAEC,aAAa,EAAE;AAAK,CAAC;AAE3C,OAAO,IAAMC,MAAM,gBAAGX,UAAU,CAI9B,gBAaEY,GAAG,EACA;EAAA,IAZDC,QAAQ,QAARA,QAAQ;IACRC,OAAO,QAAPA,OAAO;IACPC,SAAS,QAATA,SAAS;IACTC,KAAK,QAALA,KAAK;IACLC,SAAS,QAATA,SAAS;IAAA,6BACTC,gBAAgB;IAAhBA,gBAAgB,sCAAG,KAAK;IAAA,6BACxBC,iBAAiB;IAAjBA,iBAAiB,sCAAG,KAAK;IAAA,6BACzBC,iBAAiB;IAAjBA,iBAAiB,sCAAG,KAAK;IACzBC,OAAO,QAAPA,OAAO;IACJC,IAAI;EAIT,IAAMC,QAAQ,GAAGxB,MAAM,CAAiB,IAAI,CAAC;EAC7C,IAAMyB,SAAS,GAAGnB,UAAU,CAACkB,QAAQ,EAAEX,GAAG,CAAC;EAC3C,uBAAuCR,eAAe,EAAE;IAAA,yCAAhDqB,MAAM;IAANA,MAAM,sCAAGjB,MAAM,CAACkB,UAAU;EAElC,IAAMC,aAAa,GAAG7B,WAAW,CAC/B,UAAC8B,KAAoC,EAAK;IACxC,IACE,CAACA,KAAK,CAACC,gBAAgB,KACtBD,KAAK,CAACE,GAAG,KAAK,KAAK,IAAIF,KAAK,CAACE,GAAG,KAAK,QAAQ,CAAC,IAC/C,CAACV,iBAAiB,EAClB;MACAQ,KAAK,CAACG,cAAc,EAAE;MACtB,IAAIjB,OAAO,EAAE;QACXA,OAAO,EAAE;MACX;IACF;IACA,IAAI,OAAOG,SAAS,KAAK,UAAU,EAAE;MACnCA,SAAS,CAACW,KAAK,CAAC;IAClB;EACF,CAAC,EACD,CAACR,iBAAiB,EAAEN,OAAO,EAAEG,SAAS,CAAC,CACxC;EAED,IAAMe,WAAW,GAAGlC,WAAW,CAC7B,UAAC8B,KAAK,EAAK;IACTA,KAAK,oBAALA,KAAK,CAAEK,eAAe,EAAE;IACxB,OAAOZ,OAAO,KAAK,UAAU,IAAIA,OAAO,CAACO,KAAK,CAAC;EACjD,CAAC,EACD,CAACP,OAAO,CAAC,CACV;EAED,oBACE,oBAAC,MAAM,qBACL,oBAAC,SAAS;IAAC,WAAW,EAAEZ,WAAY;IAAC,QAAQ,EAAES;EAAiB,gBAC9D,oBAAC,YAAY;IACX,YAAY;IACZ,GAAG,EAAEM,SAAU;IACf,OAAO,EAAE,CAACL,iBAAkB;IAC5B,WAAW;EAAA,gBAEX,oBAAC,YAAY,eACPG,IAAI;IACR,KAAK;MAAIG,MAAM,EAANA;IAAM,GAAKT,KAAK,CAAG;IAC5B,SAAS,EAAEW,aAAc;IACzB,QAAQ,EAAE,CAAE;IACZ,SAAS,EAAE1B,UAAU,CAAC,UAAU,EAAEc,SAAS,CAAE;IAC7C,OAAO,EAAEiB;EAAY,IAEpBnB,QAAQ,CACI,CACF,CACL,CACL;AAEb,CAAC,CACF;AAEDF,MAAM,CAACuB,WAAW,GAAG,QAAQ"}