@activecollab/components 1.0.8 → 1.0.12

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.
@@ -9,12 +9,8 @@ exports.Autocomplete = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
12
  var _reactCustomScrollbars = require("react-custom-scrollbars");
15
13
 
16
- var _ScrollShadow = require("../ScrollShadow/ScrollShadow");
17
-
18
14
  var _useHighlightText = _interopRequireDefault(require("../../hooks/useHighlightText"));
19
15
 
20
16
  var _HandleKeyboard = require("./HandleKeyboard");
@@ -389,10 +385,9 @@ var Autocomplete = function Autocomplete(_ref) {
389
385
  var renderNoResult = (0, _react.useMemo)(function () {
390
386
  return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteNoResult, null, noResultText);
391
387
  }, [noResultText]);
392
- return /*#__PURE__*/_react.default.createElement(_ScrollShadow.ScrollShadow, {
393
- className: (0, _classnames.default)("c-select--list", {
394
- "tw-hidden": !defaultValue && !emptyValue && !noResultText && list.length < 1
395
- }, AutocompleteClassName)
388
+ return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteScrollShadow, {
389
+ className: AutocompleteClassName,
390
+ $isHidden: !defaultValue && !emptyValue && !noResultText && list.length < 1
396
391
  }, function (_ref2) {
397
392
  var onScroll = _ref2.onScroll;
398
393
  return /*#__PURE__*/_react.default.createElement(_Styles.StyledAutocompleteBody, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","setTimeout","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport { ScrollShadow } from \"../ScrollShadow/ScrollShadow\";\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} from \"./Styles\";\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}\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}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\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 function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(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] && isGroup(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 (!isGroup(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 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 handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(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={item.id}\n onMouseEnter={handleMouseEnter}\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 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: HTMLLabelElement | 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 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 if (handleChange) {\n handleChange(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 handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setTimeout(() => inputEl?.focus(), 0);\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover, inputEl]);\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 <ScrollShadow\n className={classNames(\n \"c-select--list\",\n {\n \"tw-hidden\":\n !defaultValue && !emptyValue && !noResultText && list.length < 1,\n },\n AutocompleteClassName\n )}\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\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 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) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </ScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
1
+ {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","setTimeout","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","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 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}\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}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\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 function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(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] && isGroup(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 (!isGroup(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 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 handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(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={item.id}\n onMouseEnter={handleMouseEnter}\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 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: HTMLLabelElement | 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 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 if (handleChange) {\n handleChange(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 handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setTimeout(() => inputEl?.focus(), 0);\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover, inputEl]);\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\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\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 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) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
@@ -5,17 +5,30 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.StyledAutocompleteNoResult = exports.StyledAutocompleteNewItem = exports.StyledAutocompleteBody = void 0;
8
+ exports.StyledAutocompleteScrollShadow = exports.StyledAutocompleteNoResult = exports.StyledAutocompleteNewItem = exports.StyledAutocompleteBody = void 0;
9
9
 
10
10
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
11
11
 
12
+ var _ScrollShadow = require("../ScrollShadow");
13
+
12
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
15
 
14
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
17
 
18
+ var StyledAutocompleteScrollShadow = (0, _styledComponents.default)(_ScrollShadow.ScrollShadow).withConfig({
19
+ displayName: "Styles__StyledAutocompleteScrollShadow",
20
+ componentId: "sc-1bc1vz9-0"
21
+ })(["margin-top:4px;", ""], function (props) {
22
+ return props.$isHidden && (0, _styledComponents.css)(["", ";"], {
23
+ "display": "none"
24
+ });
25
+ });
26
+ exports.StyledAutocompleteScrollShadow = StyledAutocompleteScrollShadow;
27
+ StyledAutocompleteScrollShadow.displayName = "StyledAutocompleteScrollShadow";
28
+
16
29
  var StyledAutocompleteBody = _styledComponents.default.div.withConfig({
17
30
  displayName: "Styles__StyledAutocompleteBody",
18
- componentId: "sc-1bc1vz9-0"
31
+ componentId: "sc-1bc1vz9-1"
19
32
  })(["max-height:340px;overflow:auto;margin-bottom:6px;"]);
20
33
 
21
34
  exports.StyledAutocompleteBody = StyledAutocompleteBody;
@@ -23,7 +36,7 @@ StyledAutocompleteBody.displayName = "StyledAutocompleteBody";
23
36
 
24
37
  var StyledAutocompleteNoResult = _styledComponents.default.div.withConfig({
25
38
  displayName: "Styles__StyledAutocompleteNoResult",
26
- componentId: "sc-1bc1vz9-1"
39
+ componentId: "sc-1bc1vz9-2"
27
40
  })(["", ";padding:6px 16px;margin:4px 0;&:hover{background-color:var(--color-theme-200);}color:var(--color-theme-600);"], {
28
41
  "cursor": "pointer",
29
42
  "userSelect": "none"
@@ -34,7 +47,7 @@ StyledAutocompleteNoResult.displayName = "StyledAutocompleteNoResult";
34
47
 
35
48
  var StyledAutocompleteNewItem = _styledComponents.default.label.withConfig({
36
49
  displayName: "Styles__StyledAutocompleteNewItem",
37
- componentId: "sc-1bc1vz9-2"
50
+ componentId: "sc-1bc1vz9-3"
38
51
  })(["", ";padding:6px 16px;margin:4px 0;font-weight:normal;color:var(--color-primary);&:before{content:\"+ \";}", ""], {
39
52
  "cursor": "pointer",
40
53
  "userSelect": "none"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Autocomplete/Styles.ts"],"names":["StyledAutocompleteBody","styled","div","displayName","StyledAutocompleteNoResult","StyledAutocompleteNewItem","label","props","hover","css"],"mappings":";;;;;;;;;AAAA;;;;;;AAGO,IAAMA,sBAAsB,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,yDAA5B;;;AAMPF,sBAAsB,CAACG,WAAvB,GAAqC,wBAArC;;AAEO,IAAMC,0BAA0B,GAAGH,0BAAOC,GAAV;AAAA;AAAA;AAAA,0HACjC;AAAA;AAAA;AAAA,CADiC,CAAhC;;;AAaPE,0BAA0B,CAACD,WAA3B,GAAyC,4BAAzC;;AAEO,IAAME,yBAAyB,GAAGJ,0BAAOK,KAAV;AAAA;AAAA;AAAA,uHAChC;AAAA;AAAA;AAAA,CADgC,EAYlC,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,QACAC,qBADA,8DADA;AAAA,CAZkC,CAA/B;;;AAoBPJ,yBAAyB,CAACF,WAA1B,GAAwC,2BAAxC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nexport const StyledAutocompleteBody = styled.div`\n max-height: 340px;\n overflow: auto;\n margin-bottom: 6px;\n`;\n\nStyledAutocompleteBody.displayName = \"StyledAutocompleteBody\";\n\nexport const StyledAutocompleteNoResult = styled.div`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n\n &:hover {\n background-color: var(--color-theme-200);\n }\n\n color: var(--color-theme-600);\n`;\n\nStyledAutocompleteNoResult.displayName = \"StyledAutocompleteNoResult\";\n\nexport const StyledAutocompleteNewItem = styled.label<{ hover: boolean }>`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n font-weight: normal;\n color: var(--color-primary);\n\n &:before {\n content: \"+ \";\n }\n\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n content: \"+ \";\n `}\n`;\n\nStyledAutocompleteNewItem.displayName = \"StyledAutocompleteNewItem\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Autocomplete/Styles.ts"],"names":["StyledAutocompleteScrollShadow","ScrollShadow","props","$isHidden","css","displayName","StyledAutocompleteBody","styled","div","StyledAutocompleteNoResult","StyledAutocompleteNewItem","label","hover"],"mappings":";;;;;;;;;AAAA;;AAEA;;;;;;AAEO,IAAMA,8BAA8B,GAAG,+BAAOC,0BAAP,CAAH;AAAA;AAAA;AAAA,4BAKvC,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,SAAN,QACAC,qBADA,aAEM;AAAA;AAAA,GAFN,CADA;AAAA,CALuC,CAApC;;AAYPJ,8BAA8B,CAACK,WAA/B,GAA6C,gCAA7C;;AAEO,IAAMC,sBAAsB,GAAGC,0BAAOC,GAAV;AAAA;AAAA;AAAA,yDAA5B;;;AAMPF,sBAAsB,CAACD,WAAvB,GAAqC,wBAArC;;AAEO,IAAMI,0BAA0B,GAAGF,0BAAOC,GAAV;AAAA;AAAA;AAAA,0HACjC;AAAA;AAAA;AAAA,CADiC,CAAhC;;;AAaPC,0BAA0B,CAACJ,WAA3B,GAAyC,4BAAzC;;AAEO,IAAMK,yBAAyB,GAAGH,0BAAOI,KAAV;AAAA;AAAA;AAAA,uHAChC;AAAA;AAAA;AAAA,CADgC,EAYlC,UAACT,KAAD;AAAA,SACAA,KAAK,CAACU,KAAN,QACAR,qBADA,8DADA;AAAA,CAZkC,CAA/B;;;AAoBPM,yBAAyB,CAACL,WAA1B,GAAwC,2BAAxC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { ScrollShadow } from \"../ScrollShadow\";\n\nexport const StyledAutocompleteScrollShadow = styled(ScrollShadow)<{\n $isHidden: boolean;\n}>`\n margin-top: 4px;\n\n ${(props) =>\n props.$isHidden &&\n css`\n ${tw`tw-hidden`};\n `}\n`;\n\nStyledAutocompleteScrollShadow.displayName = \"StyledAutocompleteScrollShadow\";\n\nexport const StyledAutocompleteBody = styled.div`\n max-height: 340px;\n overflow: auto;\n margin-bottom: 6px;\n`;\n\nStyledAutocompleteBody.displayName = \"StyledAutocompleteBody\";\n\nexport const StyledAutocompleteNoResult = styled.div`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n\n &:hover {\n background-color: var(--color-theme-200);\n }\n\n color: var(--color-theme-600);\n`;\n\nStyledAutocompleteNoResult.displayName = \"StyledAutocompleteNoResult\";\n\nexport const StyledAutocompleteNewItem = styled.label<{ hover: boolean }>`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n font-weight: normal;\n color: var(--color-primary);\n\n &:before {\n content: \"+ \";\n }\n\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n content: \"+ \";\n `}\n`;\n\nStyledAutocompleteNewItem.displayName = \"StyledAutocompleteNewItem\";\n"],"file":"Styles.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScrollShadow/ScrollShadow.tsx"],"names":["ScrollShadow","ref","children","className","disableVertical","disableHorizontal","invertHorizontal","invertVertical","rest","top","right","bottom","left","opacity","setOpacity","handleScroll","event","target","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","prevState","Math","min","bottomScrollTop","max","offset","newState","onScroll","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n useState,\n useCallback,\n UIEventHandler,\n UIEvent,\n HTMLAttributes,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledScrollShadow,\n StyledScrollShadowBottom,\n StyledScrollShadowLeft,\n StyledScrollShadowRight,\n StyledScrollShadowTop,\n} from \"./Styles\";\n\ninterface IScrollShadowProps {\n /** Children */\n children: ({ onScroll: UIEventHandler }) => void;\n /** Applies passed classes */\n className?: string;\n /** Disable vertical shadow */\n disableVertical?: boolean;\n /** Disable horizontal shadow */\n disableHorizontal?: boolean;\n /** Invert horizontal shadow logic */\n invertHorizontal?: boolean;\n /** Invert vertical shadow logic */\n invertVertical?: boolean;\n}\n\nexport const ScrollShadow = forwardRef<\n HTMLDivElement,\n IScrollShadowProps & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n className,\n disableVertical = false,\n disableHorizontal = false,\n invertHorizontal = false,\n invertVertical = false,\n ...rest\n },\n ref\n ) => {\n const [opacity, setOpacity] = useState({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n });\n\n const handleScroll: UIEventHandler = useCallback(\n (event: UIEvent) => {\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } =\n event.target as Element;\n let { scrollTop, scrollLeft } = event.target as Element;\n\n if (scrollLeft < 0) {\n scrollLeft *= -1;\n }\n if (scrollTop < 0) {\n scrollTop *= -1;\n }\n\n setOpacity((prevState) => {\n const top = (1 / 20) * Math.min(scrollTop, 20);\n const bottomScrollTop = scrollHeight - clientHeight;\n const bottom =\n (1 / 20) *\n (bottomScrollTop - Math.max(scrollTop, bottomScrollTop - 20));\n const left = (1 / 20) * Math.min(scrollLeft, 20);\n const offset = scrollWidth - clientWidth;\n const right = (1 / 20) * (offset - Math.max(scrollLeft, offset - 20));\n\n const newState = { top: 0, bottom: 0, left: 0, right: 0 };\n\n if (!disableVertical) {\n newState.top = invertVertical ? bottom : top;\n newState.bottom = invertVertical ? top : bottom;\n }\n\n if (!disableHorizontal) {\n newState.left = invertHorizontal ? right : left;\n newState.right = invertHorizontal ? left : right;\n }\n\n if (\n newState.top !== prevState.top ||\n newState.bottom !== prevState.bottom ||\n newState.left !== prevState.left ||\n newState.right !== prevState.right\n ) {\n return newState;\n }\n\n return prevState;\n });\n },\n [invertHorizontal, invertVertical, disableVertical, disableHorizontal]\n );\n\n return (\n <StyledScrollShadow\n {...rest}\n ref={ref}\n className={classnames(\"c-scroll-shadow\", className)}\n >\n {children({ onScroll: handleScroll })}\n {!disableVertical ? (\n <>\n <StyledScrollShadowTop style={{ opacity: opacity.top }} />\n <StyledScrollShadowBottom style={{ opacity: opacity.bottom }} />\n </>\n ) : null}\n {!disableHorizontal ? (\n <>\n <StyledScrollShadowLeft style={{ opacity: opacity.left }} />\n <StyledScrollShadowRight style={{ opacity: opacity.right }} />\n </>\n ) : null}\n </StyledScrollShadow>\n );\n }\n);\n\nScrollShadow.displayName = \"ScrollShadow\";\n"],"file":"ScrollShadow.js"}
1
+ {"version":3,"sources":["../../../../src/components/ScrollShadow/ScrollShadow.tsx"],"names":["ScrollShadow","ref","children","className","disableVertical","disableHorizontal","invertHorizontal","invertVertical","rest","top","right","bottom","left","opacity","setOpacity","handleScroll","event","target","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","prevState","Math","min","bottomScrollTop","max","offset","newState","onScroll","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n useState,\n useCallback,\n UIEventHandler,\n UIEvent,\n HTMLAttributes,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledScrollShadow,\n StyledScrollShadowBottom,\n StyledScrollShadowLeft,\n StyledScrollShadowRight,\n StyledScrollShadowTop,\n} from \"./Styles\";\n\nexport interface IScrollShadowProps {\n /** Children */\n children: ({ onScroll: UIEventHandler }) => void;\n /** Applies passed classes */\n className?: string;\n /** Disable vertical shadow */\n disableVertical?: boolean;\n /** Disable horizontal shadow */\n disableHorizontal?: boolean;\n /** Invert horizontal shadow logic */\n invertHorizontal?: boolean;\n /** Invert vertical shadow logic */\n invertVertical?: boolean;\n}\n\nexport const ScrollShadow = forwardRef<\n HTMLDivElement,\n IScrollShadowProps & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n className,\n disableVertical = false,\n disableHorizontal = false,\n invertHorizontal = false,\n invertVertical = false,\n ...rest\n },\n ref\n ) => {\n const [opacity, setOpacity] = useState({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n });\n\n const handleScroll: UIEventHandler = useCallback(\n (event: UIEvent) => {\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } =\n event.target as Element;\n let { scrollTop, scrollLeft } = event.target as Element;\n\n if (scrollLeft < 0) {\n scrollLeft *= -1;\n }\n if (scrollTop < 0) {\n scrollTop *= -1;\n }\n\n setOpacity((prevState) => {\n const top = (1 / 20) * Math.min(scrollTop, 20);\n const bottomScrollTop = scrollHeight - clientHeight;\n const bottom =\n (1 / 20) *\n (bottomScrollTop - Math.max(scrollTop, bottomScrollTop - 20));\n const left = (1 / 20) * Math.min(scrollLeft, 20);\n const offset = scrollWidth - clientWidth;\n const right = (1 / 20) * (offset - Math.max(scrollLeft, offset - 20));\n\n const newState = { top: 0, bottom: 0, left: 0, right: 0 };\n\n if (!disableVertical) {\n newState.top = invertVertical ? bottom : top;\n newState.bottom = invertVertical ? top : bottom;\n }\n\n if (!disableHorizontal) {\n newState.left = invertHorizontal ? right : left;\n newState.right = invertHorizontal ? left : right;\n }\n\n if (\n newState.top !== prevState.top ||\n newState.bottom !== prevState.bottom ||\n newState.left !== prevState.left ||\n newState.right !== prevState.right\n ) {\n return newState;\n }\n\n return prevState;\n });\n },\n [invertHorizontal, invertVertical, disableVertical, disableHorizontal]\n );\n\n return (\n <StyledScrollShadow\n {...rest}\n ref={ref}\n className={classnames(\"c-scroll-shadow\", className)}\n >\n {children({ onScroll: handleScroll })}\n {!disableVertical ? (\n <>\n <StyledScrollShadowTop style={{ opacity: opacity.top }} />\n <StyledScrollShadowBottom style={{ opacity: opacity.bottom }} />\n </>\n ) : null}\n {!disableHorizontal ? (\n <>\n <StyledScrollShadowLeft style={{ opacity: opacity.left }} />\n <StyledScrollShadowRight style={{ opacity: opacity.right }} />\n </>\n ) : null}\n </StyledScrollShadow>\n );\n }\n);\n\nScrollShadow.displayName = \"ScrollShadow\";\n"],"file":"ScrollShadow.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAMF,SAAS,EACT,YAAY,EACb,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAOvE,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAEnD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,GAAG,YAAY,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IAEV,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAia/C,CAAC"}
1
+ {"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAMF,SAAS,EACT,YAAY,EACb,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAQvE,MAAM,WAAW,kBAAkB;IAEjC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IAEnD,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAElC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,GAAG,YAAY,CAAC;IAE3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IAEV,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CA6Z/C,CAAC"}
@@ -1,13 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import React, { useCallback, useState, useMemo, useEffect, useRef } from "react";
3
- import classNames from "classnames";
4
3
  import { Scrollbars } from "react-custom-scrollbars";
5
- import { ScrollShadow } from "../ScrollShadow/ScrollShadow";
6
4
  import highlightText from "../../hooks/useHighlightText";
7
5
  import { handleKeyboardMovement } from "./HandleKeyboard";
8
6
  import { Option } from "../Select/Option";
9
7
  import { OptionGroup } from "../Select/OptionGroup";
10
- import { StyledAutocompleteBody, StyledAutocompleteNewItem, StyledAutocompleteNoResult } from "./Styles";
8
+ import { StyledAutocompleteBody, StyledAutocompleteNewItem, StyledAutocompleteNoResult, StyledAutocompleteScrollShadow } from "./Styles";
11
9
  export var Autocomplete = function Autocomplete(_ref) {
12
10
  var type = _ref.type,
13
11
  _ref$options = _ref.options,
@@ -338,10 +336,9 @@ export var Autocomplete = function Autocomplete(_ref) {
338
336
  var renderNoResult = useMemo(function () {
339
337
  return /*#__PURE__*/React.createElement(StyledAutocompleteNoResult, null, noResultText);
340
338
  }, [noResultText]);
341
- return /*#__PURE__*/React.createElement(ScrollShadow, {
342
- className: classNames("c-select--list", {
343
- "tw-hidden": !defaultValue && !emptyValue && !noResultText && list.length < 1
344
- }, AutocompleteClassName)
339
+ return /*#__PURE__*/React.createElement(StyledAutocompleteScrollShadow, {
340
+ className: AutocompleteClassName,
341
+ $isHidden: !defaultValue && !emptyValue && !noResultText && list.length < 1
345
342
  }, function (_ref2) {
346
343
  var onScroll = _ref2.onScroll;
347
344
  return /*#__PURE__*/React.createElement(StyledAutocompleteBody, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","Scrollbars","ScrollShadow","highlightText","handleKeyboardMovement","Option","OptionGroup","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteNoResult","Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","setTimeout","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useMemo,\n useEffect,\n useRef,\n ReactNode,\n ReactElement,\n} from \"react\";\nimport classNames from \"classnames\";\nimport { Scrollbars } from \"react-custom-scrollbars\";\nimport { ScrollShadow } from \"../ScrollShadow/ScrollShadow\";\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} from \"./Styles\";\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}\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}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\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 function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(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] && isGroup(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 (!isGroup(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 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 handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(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={item.id}\n onMouseEnter={handleMouseEnter}\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 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: HTMLLabelElement | 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 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 if (handleChange) {\n handleChange(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 handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setTimeout(() => inputEl?.focus(), 0);\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover, inputEl]);\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 <ScrollShadow\n className={classNames(\n \"c-select--list\",\n {\n \"tw-hidden\":\n !defaultValue && !emptyValue && !noResultText && list.length < 1,\n },\n AutocompleteClassName\n )}\n >\n {({ onScroll }): JSX.Element => (\n <StyledAutocompleteBody\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\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 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) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </ScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
1
+ {"version":3,"sources":["../../../../src/components/Autocomplete/Autocomplete.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Scrollbars","highlightText","handleKeyboardMovement","Option","OptionGroup","StyledAutocompleteBody","StyledAutocompleteNewItem","StyledAutocompleteNoResult","StyledAutocompleteScrollShadow","Autocomplete","type","options","inputEl","selected","emptyValue","noResultText","renderOption","option","name","defaultValue","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","keepSameOptionsOrder","autoHeightMax","itemRef","listRef","selectedOptions","Array","handleSort","opts","sort","a","b","includes","id","sortList","localeCompare","sortedList","item","undefined","by","hover","setHover","filter","setFilter","handleEmpty","e","button","focus","onAddNewMouseEnter","isGroup","showAddNew","trim","every","v","toLowerCase","renderAddNew","filterOptions","trimmedFilter","isGrouped","hovered","reduce","acc","groupedOption","filteredOptions","length","list","showDefaultOption","flatOptions","handleInputChange","target","key","value","handleMouseEnter","handleHoverCallback","handleRenderOption","checked","onChange","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","current","offsetTop","handleOnKeyDown","preventDefault","handleClick","setTimeout","onkeydown","onkeyup","isDefaultOptionSelected","showNoResult","renderNoResult","onScroll","map","displayName"],"mappings":"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","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 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}\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}) => {\n const itemRef = useRef<HTMLLabelElement>(null);\n const listRef = useRef<Scrollbars>(null);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\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 function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const showAddNew = useMemo(() => {\n return !!(\n emptyValue &&\n filter.trim() &&\n options.every((option) => {\n if (isGroup(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] && isGroup(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 (!isGroup(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 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 handleHoverCallback = useCallback(\n (e: number | string | undefined): void => {\n setHover({ item: e, by: \"mouse\" });\n },\n []\n );\n\n const handleRenderOption = useCallback(\n (item: IOptionItemProps | IOptionGroupProps) => {\n if (isGroup(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={item.id}\n onMouseEnter={handleMouseEnter}\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 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: HTMLLabelElement | 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 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 if (handleChange) {\n handleChange(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 handleChange,\n handleDefaultOptionChange,\n handleEmpty,\n hover,\n showAddNew,\n showDefaultOption,\n ]\n );\n\n const handleClick = useCallback(() => {\n if (hover.item === null && handleDefaultOptionChange) {\n handleDefaultOptionChange();\n }\n if (handleChange) {\n handleChange(hover?.item);\n }\n setTimeout(() => inputEl?.focus(), 0);\n setFilter(\"\");\n }, [handleChange, handleDefaultOptionChange, hover, inputEl]);\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\n key=\"body\"\n onChange={handleClick}\n onMouseLeave={handleOnMouseLeave}\n >\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 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) => handleRenderOption(item))}\n {showNoResult && renderNoResult}\n {showAddNew && renderAddNew}\n </Scrollbars>\n </StyledAutocompleteBody>\n )}\n </StyledAutocompleteScrollShadow>\n );\n};\n\nAutocomplete.displayName = \"Autocomplete\";\n"],"file":"Autocomplete.js"}
@@ -1,3 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledAutocompleteScrollShadow: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../ScrollShadow").IScrollShadowProps & import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>, any, {
3
+ $isHidden: boolean;
4
+ }, never>;
1
5
  export declare const StyledAutocompleteBody: import("styled-components").StyledComponent<"div", any, {}, never>;
2
6
  export declare const StyledAutocompleteNoResult: import("styled-components").StyledComponent<"div", any, {}, never>;
3
7
  export declare const StyledAutocompleteNewItem: import("styled-components").StyledComponent<"label", any, {
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,oEAIlC,CAAC;AAIF,eAAO,MAAM,0BAA0B,oEAWtC,CAAC;AAIF,eAAO,MAAM,yBAAyB;WAAyB,OAAO;SAkBrE,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Autocomplete/Styles.ts"],"names":[],"mappings":";AAIA,eAAO,MAAM,8BAA8B;eAC9B,OAAO;SASnB,CAAC;AAIF,eAAO,MAAM,sBAAsB,oEAIlC,CAAC;AAIF,eAAO,MAAM,0BAA0B,oEAWtC,CAAC;AAIF,eAAO,MAAM,yBAAyB;WAAyB,OAAO;SAkBrE,CAAC"}
@@ -1,12 +1,22 @@
1
1
  import styled, { css } from "styled-components";
2
+ import { ScrollShadow } from "../ScrollShadow";
3
+ export var StyledAutocompleteScrollShadow = styled(ScrollShadow).withConfig({
4
+ displayName: "Styles__StyledAutocompleteScrollShadow",
5
+ componentId: "sc-1bc1vz9-0"
6
+ })(["margin-top:4px;", ""], function (props) {
7
+ return props.$isHidden && css(["", ";"], {
8
+ "display": "none"
9
+ });
10
+ });
11
+ StyledAutocompleteScrollShadow.displayName = "StyledAutocompleteScrollShadow";
2
12
  export var StyledAutocompleteBody = styled.div.withConfig({
3
13
  displayName: "Styles__StyledAutocompleteBody",
4
- componentId: "sc-1bc1vz9-0"
14
+ componentId: "sc-1bc1vz9-1"
5
15
  })(["max-height:340px;overflow:auto;margin-bottom:6px;"]);
6
16
  StyledAutocompleteBody.displayName = "StyledAutocompleteBody";
7
17
  export var StyledAutocompleteNoResult = styled.div.withConfig({
8
18
  displayName: "Styles__StyledAutocompleteNoResult",
9
- componentId: "sc-1bc1vz9-1"
19
+ componentId: "sc-1bc1vz9-2"
10
20
  })(["", ";padding:6px 16px;margin:4px 0;&:hover{background-color:var(--color-theme-200);}color:var(--color-theme-600);"], {
11
21
  "cursor": "pointer",
12
22
  "userSelect": "none"
@@ -14,7 +24,7 @@ export var StyledAutocompleteNoResult = styled.div.withConfig({
14
24
  StyledAutocompleteNoResult.displayName = "StyledAutocompleteNoResult";
15
25
  export var StyledAutocompleteNewItem = styled.label.withConfig({
16
26
  displayName: "Styles__StyledAutocompleteNewItem",
17
- componentId: "sc-1bc1vz9-2"
27
+ componentId: "sc-1bc1vz9-3"
18
28
  })(["", ";padding:6px 16px;margin:4px 0;font-weight:normal;color:var(--color-primary);&:before{content:\"+ \";}", ""], {
19
29
  "cursor": "pointer",
20
30
  "userSelect": "none"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Autocomplete/Styles.ts"],"names":["styled","css","StyledAutocompleteBody","div","displayName","StyledAutocompleteNoResult","StyledAutocompleteNewItem","label","props","hover"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,OAAO,IAAMC,sBAAsB,GAAGF,MAAM,CAACG,GAAV;AAAA;AAAA;AAAA,yDAA5B;AAMPD,sBAAsB,CAACE,WAAvB,GAAqC,wBAArC;AAEA,OAAO,IAAMC,0BAA0B,GAAGL,MAAM,CAACG,GAAV;AAAA;AAAA;AAAA,0HACjC;AAAA;AAAA;AAAA,CADiC,CAAhC;AAaPE,0BAA0B,CAACD,WAA3B,GAAyC,4BAAzC;AAEA,OAAO,IAAME,yBAAyB,GAAGN,MAAM,CAACO,KAAV;AAAA;AAAA;AAAA,uHAChC;AAAA;AAAA;AAAA,CADgC,EAYlC,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAR,GADA,6DADA;AAAA,CAZkC,CAA/B;AAoBPK,yBAAyB,CAACF,WAA1B,GAAwC,2BAAxC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nexport const StyledAutocompleteBody = styled.div`\n max-height: 340px;\n overflow: auto;\n margin-bottom: 6px;\n`;\n\nStyledAutocompleteBody.displayName = \"StyledAutocompleteBody\";\n\nexport const StyledAutocompleteNoResult = styled.div`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n\n &:hover {\n background-color: var(--color-theme-200);\n }\n\n color: var(--color-theme-600);\n`;\n\nStyledAutocompleteNoResult.displayName = \"StyledAutocompleteNoResult\";\n\nexport const StyledAutocompleteNewItem = styled.label<{ hover: boolean }>`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n font-weight: normal;\n color: var(--color-primary);\n\n &:before {\n content: \"+ \";\n }\n\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n content: \"+ \";\n `}\n`;\n\nStyledAutocompleteNewItem.displayName = \"StyledAutocompleteNewItem\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Autocomplete/Styles.ts"],"names":["styled","css","ScrollShadow","StyledAutocompleteScrollShadow","props","$isHidden","displayName","StyledAutocompleteBody","div","StyledAutocompleteNoResult","StyledAutocompleteNewItem","label","hover"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAEA,SAASC,YAAT,QAA6B,iBAA7B;AAEA,OAAO,IAAMC,8BAA8B,GAAGH,MAAM,CAACE,YAAD,CAAT;AAAA;AAAA;AAAA,4BAKvC,UAACE,KAAD;AAAA,SACAA,KAAK,CAACC,SAAN,IACAJ,GADA,YAEM;AAAA;AAAA,GAFN,CADA;AAAA,CALuC,CAApC;AAYPE,8BAA8B,CAACG,WAA/B,GAA6C,gCAA7C;AAEA,OAAO,IAAMC,sBAAsB,GAAGP,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,yDAA5B;AAMPD,sBAAsB,CAACD,WAAvB,GAAqC,wBAArC;AAEA,OAAO,IAAMG,0BAA0B,GAAGT,MAAM,CAACQ,GAAV;AAAA;AAAA;AAAA,0HACjC;AAAA;AAAA;AAAA,CADiC,CAAhC;AAaPC,0BAA0B,CAACH,WAA3B,GAAyC,4BAAzC;AAEA,OAAO,IAAMI,yBAAyB,GAAGV,MAAM,CAACW,KAAV;AAAA;AAAA;AAAA,uHAChC;AAAA;AAAA;AAAA,CADgC,EAYlC,UAACP,KAAD;AAAA,SACAA,KAAK,CAACQ,KAAN,IACAX,GADA,6DADA;AAAA,CAZkC,CAA/B;AAoBPS,yBAAyB,CAACJ,WAA1B,GAAwC,2BAAxC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { ScrollShadow } from \"../ScrollShadow\";\n\nexport const StyledAutocompleteScrollShadow = styled(ScrollShadow)<{\n $isHidden: boolean;\n}>`\n margin-top: 4px;\n\n ${(props) =>\n props.$isHidden &&\n css`\n ${tw`tw-hidden`};\n `}\n`;\n\nStyledAutocompleteScrollShadow.displayName = \"StyledAutocompleteScrollShadow\";\n\nexport const StyledAutocompleteBody = styled.div`\n max-height: 340px;\n overflow: auto;\n margin-bottom: 6px;\n`;\n\nStyledAutocompleteBody.displayName = \"StyledAutocompleteBody\";\n\nexport const StyledAutocompleteNoResult = styled.div`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n\n &:hover {\n background-color: var(--color-theme-200);\n }\n\n color: var(--color-theme-600);\n`;\n\nStyledAutocompleteNoResult.displayName = \"StyledAutocompleteNoResult\";\n\nexport const StyledAutocompleteNewItem = styled.label<{ hover: boolean }>`\n ${tw`tw-cursor-pointer tw-select-none`};\n\n padding: 6px 16px;\n margin: 4px 0;\n font-weight: normal;\n color: var(--color-primary);\n\n &:before {\n content: \"+ \";\n }\n\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n content: \"+ \";\n `}\n`;\n\nStyledAutocompleteNewItem.displayName = \"StyledAutocompleteNewItem\";\n"],"file":"Styles.js"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- interface IScrollShadowProps {
2
+ export interface IScrollShadowProps {
3
3
  children: ({ onScroll: UIEventHandler }: {
4
4
  onScroll: any;
5
5
  }) => void;
@@ -10,5 +10,4 @@ interface IScrollShadowProps {
10
10
  invertVertical?: boolean;
11
11
  }
12
12
  export declare const ScrollShadow: React.ForwardRefExoticComponent<IScrollShadowProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
13
- export {};
14
13
  //# sourceMappingURL=ScrollShadow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollShadow.d.ts","sourceRoot":"","sources":["../../../../src/components/ScrollShadow/ScrollShadow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAUf,UAAU,kBAAkB;IAE1B,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE;;KAAA,KAAK,IAAI,CAAC;IAEjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,YAAY,kIA+FxB,CAAC"}
1
+ {"version":3,"file":"ScrollShadow.d.ts","sourceRoot":"","sources":["../../../../src/components/ScrollShadow/ScrollShadow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAUf,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE;;KAAA,KAAK,IAAI,CAAC;IAEjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,YAAY,kIA+FxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ScrollShadow/ScrollShadow.tsx"],"names":["React","forwardRef","useState","useCallback","classnames","StyledScrollShadow","StyledScrollShadowBottom","StyledScrollShadowLeft","StyledScrollShadowRight","StyledScrollShadowTop","ScrollShadow","ref","children","className","disableVertical","disableHorizontal","invertHorizontal","invertVertical","rest","top","right","bottom","left","opacity","setOpacity","handleScroll","event","target","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","prevState","Math","min","bottomScrollTop","max","offset","newState","onScroll","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n useState,\n useCallback,\n UIEventHandler,\n UIEvent,\n HTMLAttributes,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledScrollShadow,\n StyledScrollShadowBottom,\n StyledScrollShadowLeft,\n StyledScrollShadowRight,\n StyledScrollShadowTop,\n} from \"./Styles\";\n\ninterface IScrollShadowProps {\n /** Children */\n children: ({ onScroll: UIEventHandler }) => void;\n /** Applies passed classes */\n className?: string;\n /** Disable vertical shadow */\n disableVertical?: boolean;\n /** Disable horizontal shadow */\n disableHorizontal?: boolean;\n /** Invert horizontal shadow logic */\n invertHorizontal?: boolean;\n /** Invert vertical shadow logic */\n invertVertical?: boolean;\n}\n\nexport const ScrollShadow = forwardRef<\n HTMLDivElement,\n IScrollShadowProps & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n className,\n disableVertical = false,\n disableHorizontal = false,\n invertHorizontal = false,\n invertVertical = false,\n ...rest\n },\n ref\n ) => {\n const [opacity, setOpacity] = useState({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n });\n\n const handleScroll: UIEventHandler = useCallback(\n (event: UIEvent) => {\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } =\n event.target as Element;\n let { scrollTop, scrollLeft } = event.target as Element;\n\n if (scrollLeft < 0) {\n scrollLeft *= -1;\n }\n if (scrollTop < 0) {\n scrollTop *= -1;\n }\n\n setOpacity((prevState) => {\n const top = (1 / 20) * Math.min(scrollTop, 20);\n const bottomScrollTop = scrollHeight - clientHeight;\n const bottom =\n (1 / 20) *\n (bottomScrollTop - Math.max(scrollTop, bottomScrollTop - 20));\n const left = (1 / 20) * Math.min(scrollLeft, 20);\n const offset = scrollWidth - clientWidth;\n const right = (1 / 20) * (offset - Math.max(scrollLeft, offset - 20));\n\n const newState = { top: 0, bottom: 0, left: 0, right: 0 };\n\n if (!disableVertical) {\n newState.top = invertVertical ? bottom : top;\n newState.bottom = invertVertical ? top : bottom;\n }\n\n if (!disableHorizontal) {\n newState.left = invertHorizontal ? right : left;\n newState.right = invertHorizontal ? left : right;\n }\n\n if (\n newState.top !== prevState.top ||\n newState.bottom !== prevState.bottom ||\n newState.left !== prevState.left ||\n newState.right !== prevState.right\n ) {\n return newState;\n }\n\n return prevState;\n });\n },\n [invertHorizontal, invertVertical, disableVertical, disableHorizontal]\n );\n\n return (\n <StyledScrollShadow\n {...rest}\n ref={ref}\n className={classnames(\"c-scroll-shadow\", className)}\n >\n {children({ onScroll: handleScroll })}\n {!disableVertical ? (\n <>\n <StyledScrollShadowTop style={{ opacity: opacity.top }} />\n <StyledScrollShadowBottom style={{ opacity: opacity.bottom }} />\n </>\n ) : null}\n {!disableHorizontal ? (\n <>\n <StyledScrollShadowLeft style={{ opacity: opacity.left }} />\n <StyledScrollShadowRight style={{ opacity: opacity.right }} />\n </>\n ) : null}\n </StyledScrollShadow>\n );\n }\n);\n\nScrollShadow.displayName = \"ScrollShadow\";\n"],"file":"ScrollShadow.js"}
1
+ {"version":3,"sources":["../../../../src/components/ScrollShadow/ScrollShadow.tsx"],"names":["React","forwardRef","useState","useCallback","classnames","StyledScrollShadow","StyledScrollShadowBottom","StyledScrollShadowLeft","StyledScrollShadowRight","StyledScrollShadowTop","ScrollShadow","ref","children","className","disableVertical","disableHorizontal","invertHorizontal","invertVertical","rest","top","right","bottom","left","opacity","setOpacity","handleScroll","event","target","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","prevState","Math","min","bottomScrollTop","max","offset","newState","onScroll","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n useState,\n useCallback,\n UIEventHandler,\n UIEvent,\n HTMLAttributes,\n} from \"react\";\nimport classnames from \"classnames\";\nimport {\n StyledScrollShadow,\n StyledScrollShadowBottom,\n StyledScrollShadowLeft,\n StyledScrollShadowRight,\n StyledScrollShadowTop,\n} from \"./Styles\";\n\nexport interface IScrollShadowProps {\n /** Children */\n children: ({ onScroll: UIEventHandler }) => void;\n /** Applies passed classes */\n className?: string;\n /** Disable vertical shadow */\n disableVertical?: boolean;\n /** Disable horizontal shadow */\n disableHorizontal?: boolean;\n /** Invert horizontal shadow logic */\n invertHorizontal?: boolean;\n /** Invert vertical shadow logic */\n invertVertical?: boolean;\n}\n\nexport const ScrollShadow = forwardRef<\n HTMLDivElement,\n IScrollShadowProps & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n className,\n disableVertical = false,\n disableHorizontal = false,\n invertHorizontal = false,\n invertVertical = false,\n ...rest\n },\n ref\n ) => {\n const [opacity, setOpacity] = useState({\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n });\n\n const handleScroll: UIEventHandler = useCallback(\n (event: UIEvent) => {\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } =\n event.target as Element;\n let { scrollTop, scrollLeft } = event.target as Element;\n\n if (scrollLeft < 0) {\n scrollLeft *= -1;\n }\n if (scrollTop < 0) {\n scrollTop *= -1;\n }\n\n setOpacity((prevState) => {\n const top = (1 / 20) * Math.min(scrollTop, 20);\n const bottomScrollTop = scrollHeight - clientHeight;\n const bottom =\n (1 / 20) *\n (bottomScrollTop - Math.max(scrollTop, bottomScrollTop - 20));\n const left = (1 / 20) * Math.min(scrollLeft, 20);\n const offset = scrollWidth - clientWidth;\n const right = (1 / 20) * (offset - Math.max(scrollLeft, offset - 20));\n\n const newState = { top: 0, bottom: 0, left: 0, right: 0 };\n\n if (!disableVertical) {\n newState.top = invertVertical ? bottom : top;\n newState.bottom = invertVertical ? top : bottom;\n }\n\n if (!disableHorizontal) {\n newState.left = invertHorizontal ? right : left;\n newState.right = invertHorizontal ? left : right;\n }\n\n if (\n newState.top !== prevState.top ||\n newState.bottom !== prevState.bottom ||\n newState.left !== prevState.left ||\n newState.right !== prevState.right\n ) {\n return newState;\n }\n\n return prevState;\n });\n },\n [invertHorizontal, invertVertical, disableVertical, disableHorizontal]\n );\n\n return (\n <StyledScrollShadow\n {...rest}\n ref={ref}\n className={classnames(\"c-scroll-shadow\", className)}\n >\n {children({ onScroll: handleScroll })}\n {!disableVertical ? (\n <>\n <StyledScrollShadowTop style={{ opacity: opacity.top }} />\n <StyledScrollShadowBottom style={{ opacity: opacity.bottom }} />\n </>\n ) : null}\n {!disableHorizontal ? (\n <>\n <StyledScrollShadowLeft style={{ opacity: opacity.left }} />\n <StyledScrollShadowRight style={{ opacity: opacity.right }} />\n </>\n ) : null}\n </StyledScrollShadow>\n );\n }\n);\n\nScrollShadow.displayName = \"ScrollShadow\";\n"],"file":"ScrollShadow.js"}