@activecollab/components 2.0.192 → 2.0.194

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.
@@ -300,6 +300,7 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
300
300
  return /*#__PURE__*/_react.default.createElement(_OptionGroup.OptionGroup, {
301
301
  checked: selectedOptions,
302
302
  name: item.name,
303
+ tooltip: item.tooltip,
303
304
  key: item.id,
304
305
  setHover: handleHoverCallback,
305
306
  id: item.id,
@@ -316,6 +317,7 @@ var Autocomplete = exports.Autocomplete = function Autocomplete(_ref) {
316
317
  name: item.name,
317
318
  ref: itemRef,
318
319
  key: index,
320
+ tooltip: item.tooltip,
319
321
  onMouseEnter: handleMouseEnter,
320
322
  onClick: handleClick,
321
323
  id: item.id,
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","names":["_react","_interopRequireWildcard","require","_reactCustomScrollbars","_HandleKeyboard","_Styles","_useHighlightText","_interopRequireDefault","_Option","_Styles2","_OptionGroup","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","_toPropertyKey","configurable","writable","_toPrimitive","String","toPrimitive","Number","isOptionGroup","item","options","undefined","Autocomplete","exports","_ref","type","_ref$options","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","itemRef","useRef","listRef","selectedOptions","useMemo","handleSort","useCallback","opts","_opts$","isGrouped","sortOptions","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","sortList","_options$","sortedOptions","localeCompare","sortedList","_useState","useState","by","_useState2","hover","setHover","_useState3","_useState4","setFilter","handleEmpty","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","createElement","StyledAutocompleteNewItem","ref","onMouseDown","onMouseEnter","filterOptions","trimmedFilter","hovered","reduce","acc","groupedOption","filteredOptions","list","showDefaultOption","flatOptions","handleInputChange","target","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","OptionGroup","checked","renderOptions","onChange","Option","onClick","className","highlightText","concat","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","useEffect","offsetTop","handleOnKeyDown","handleKeyboardMovement","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","showNoResult","renderNoResult","_StyledStyledOption","StyledAutocompleteScrollShadow","$isHidden","_ref2","onScroll","StyledAutocompleteBody","onMouseLeave","Scrollbars","autoHeight","displayName","_styledComponents","StyledOption","withConfig","componentId"],"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-2\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n}\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 mixedOptions = [],\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\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = 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 mixedOptions={mixedOptions}\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 mixedOptions,\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 const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const renderNoResult = useMemo(\n () => <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>,\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <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","_interopRequireWildcard","require","_reactCustomScrollbars","_HandleKeyboard","_Styles","_useHighlightText","_interopRequireDefault","_Option","_Styles2","_OptionGroup","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","_toPropertyKey","configurable","writable","_toPrimitive","String","toPrimitive","Number","isOptionGroup","item","options","undefined","Autocomplete","exports","_ref","type","_ref$options","inputEl","_ref$selected","selected","emptyValue","noResultText","_ref$renderOption","renderOption","option","defaultValue","_ref$sortDirection","sortDirection","handleChange","optionClassName","handleEmptyAction","disabledInternalSort","AutocompleteClassName","handleDefaultOptionChange","preselectDefaultValue","_ref$keepSameOptionsO","keepSameOptionsOrder","_ref$autoHeightMax","autoHeightMax","clearInputOnSelect","_ref$mixedOptions","mixedOptions","itemRef","useRef","listRef","selectedOptions","useMemo","handleSort","useCallback","opts","_opts$","isGrouped","sortOptions","b","aSelected","includes","id","bSelected","aMixed","bMixed","map","group","sortedGroupOptions","sort","sortList","_options$","sortedOptions","localeCompare","sortedList","_useState","useState","by","_useState2","hover","setHover","_useState3","_useState4","setFilter","handleEmpty","button","_inputEl$current","current","focus","onAddNewMouseEnter","showAddNew","trim","every","v","toLowerCase","renderAddNew","createElement","StyledAutocompleteNewItem","ref","onMouseDown","onMouseEnter","filterOptions","trimmedFilter","hovered","reduce","acc","groupedOption","filteredOptions","list","showDefaultOption","flatOptions","handleInputChange","target","handleHoverCallback","toggleSelected","result","_id","dispatchEvent","Event","bubbles","handleMouseEnter","handleClick","preventDefault","handleRenderOption","index","OptionGroup","checked","tooltip","renderOptions","onChange","Option","onClick","className","highlightText","concat","handleOnMouseLeave","handleScroll","itemOffset","getClientHeight","getScrollTop","scrollTop","useEffect","offsetTop","handleOnKeyDown","handleKeyboardMovement","_inputEl$current2","listenerTarget","document","addEventListener","removeEventListener","isDefaultOptionSelected","showNoResult","renderNoResult","_StyledStyledOption","StyledAutocompleteScrollShadow","$isHidden","_ref2","onScroll","StyledAutocompleteBody","onMouseLeave","Scrollbars","autoHeight","displayName","_styledComponents","StyledOption","withConfig","componentId"],"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-2\";\n\nimport { handleKeyboardMovement } from \"./HandleKeyboard\";\nimport {\n StyledAutocompleteBody,\n StyledAutocompleteNewItem,\n StyledAutocompleteScrollShadow,\n} from \"./Styles\";\nimport highlightText from \"../../hooks/useHighlightText\";\nimport { IOptionItemProps, Option } from \"../Select/Option\";\nimport { StyledOption } from \"../Select/Option/Styles\";\nimport { IOptionGroupProps, OptionGroup } from \"../Select/OptionGroup\";\n\nexport function isOptionGroup(\n item: IOptionGroupProps | IOptionItemProps\n): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n}\n\nexport interface IAutocompleteProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** List of options or group options */\n options?: (IOptionGroupProps | IOptionItemProps)[];\n /** Selected values */\n selected?: (string | number)[] | string | number;\n /** Mixed options values */\n mixedOptions?: (string | number)[];\n /** Input Element. */\n inputEl?: MutableRefObject<HTMLInputElement | null | undefined>;\n /** Text for empty value */\n emptyValue?: string;\n /** Text for No result */\n noResultText?: string;\n /** Render option */\n renderOption?: (\n option: Record<string, ReactNode>,\n data: Record<string, unknown>\n ) => string | ReactElement;\n /** Default value that renders on top of list */\n defaultValue?: string;\n /** Sort direction for labels */\n sortDirection?: \"asc\" | \"desc\";\n /** handleChange callback */\n handleChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** ClassName for single option */\n optionClassName?: string;\n /** handleEmptyAction */\n handleEmptyAction?: (e: string | number) => void;\n /** Disable sorting options */\n disabledInternalSort?: boolean;\n /** ClassName for Autocomplete component */\n AutocompleteClassName?: string;\n /** handleDefaultOptionChange callback */\n handleDefaultOptionChange?: () => void;\n /** Should default value be selected */\n preselectDefaultValue?: boolean;\n /** Should order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Set max height property for scrollbars */\n autoHeightMax?: number;\n /** Clear input on select - works in single mode */\n clearInputOnSelect?: boolean;\n}\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 mixedOptions = [],\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\n const isGrouped = Array.isArray(opts[0]?.options);\n\n const sortOptions = (a, b) => {\n const aSelected = selectedOptions.includes(a.id);\n const bSelected = selectedOptions.includes(b.id);\n const aMixed = mixedOptions.includes(a.id);\n const bMixed = mixedOptions.includes(b.id);\n\n if (aSelected && !bSelected) {\n return -1;\n }\n if (!aSelected && bSelected) {\n return 1;\n }\n if (aMixed && !bMixed) {\n return -1;\n }\n if (!aMixed && bMixed) {\n return 1;\n }\n return 0;\n };\n\n if (isGrouped) {\n return opts.map((group) => {\n const sortedGroupOptions = group.options.sort(sortOptions);\n\n return {\n ...group,\n options: sortedGroupOptions,\n };\n });\n } else {\n return opts.sort(sortOptions);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const sortList = useCallback(\n (options) => {\n if (disabledInternalSort) {\n return handleSort([...options]);\n }\n\n const isGrouped = Array.isArray(options[0]?.options);\n\n if (isGrouped) {\n const sortedOptions = options.map((group) => {\n const sortedGroupOptions = group.options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return {\n ...group,\n options: handleSort(sortedGroupOptions),\n };\n });\n\n return handleSort(sortedOptions);\n } else {\n const sortedOptions = options.sort((a, b) =>\n sortDirection === \"asc\"\n ? a.name.localeCompare(b.name)\n : b.name.localeCompare(a.name)\n );\n\n return handleSort(sortedOptions);\n }\n },\n [sortDirection, disabledInternalSort, handleSort]\n );\n\n const sortedList = 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 tooltip={item.tooltip}\n key={item.id}\n setHover={handleHoverCallback}\n id={item.id}\n hover={hover.item}\n options={item.options}\n renderOptions={handleRenderOption}\n type={type}\n onChange={handleChange}\n filter={filter}\n mixedOptions={mixedOptions}\n />\n );\n }\n return (\n <Option\n name={item.name}\n ref={itemRef}\n key={index}\n tooltip={item.tooltip}\n onMouseEnter={handleMouseEnter}\n onClick={handleClick}\n id={item.id}\n hover={item.id === hover.item}\n className={optionClassName}\n renderOption={renderOption(\n { ...item, name: highlightText(item.name, filter) },\n {\n id: `option_${item.id}`,\n checked: selectedOptions && selectedOptions.includes(item.id),\n hover: hover.item === item.id,\n onChange: () => null,\n }\n )}\n />\n );\n },\n [\n handleClick,\n handleMouseEnter,\n hover.item,\n optionClassName,\n renderOption,\n filter,\n selectedOptions,\n handleHoverCallback,\n type,\n handleChange,\n mixedOptions,\n ]\n );\n\n const handleOnMouseLeave = useCallback(() => {\n setHover({ item: undefined, by: \"mouse\" });\n }, []);\n\n 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 const listenerTarget = inputEl?.current ?? document;\n listenerTarget.addEventListener(\"input\", handleInputChange);\n listenerTarget.addEventListener(\"keydown\", handleOnKeyDown);\n return () => {\n listenerTarget.removeEventListener(\"input\", handleInputChange);\n listenerTarget.removeEventListener(\"keydown\", handleOnKeyDown);\n };\n }, [handleInputChange, handleOnKeyDown, inputEl]);\n\n const isDefaultOptionSelected = useCallback(() => {\n if (preselectDefaultValue) {\n return selectedOptions.length < 1 || selectedOptions[0] === \"\";\n } else {\n return (\n selectedOptions[0] === null ||\n selectedOptions.length === flatOptions.length\n );\n }\n }, [flatOptions.length, preselectDefaultValue, selectedOptions]);\n\n const showNoResult = useMemo(\n () =>\n noResultText &&\n !showAddNew &&\n list.length < 1 &&\n ((defaultValue && filter) || !defaultValue),\n [noResultText, showAddNew, list.length, defaultValue, filter]\n );\n\n const renderNoResult = useMemo(\n () => <StyledOption css=\"cursor: auto\">{noResultText}</StyledOption>,\n [noResultText]\n );\n\n return (\n <StyledAutocompleteScrollShadow\n className={AutocompleteClassName}\n $isHidden={\n !defaultValue && !emptyValue && !noResultText && list.length < 1\n }\n >\n {({ onScroll }) => (\n <StyledAutocompleteBody key=\"body\" onMouseLeave={handleOnMouseLeave}>\n <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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"}
@@ -13,6 +13,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
13
13
  var Option = exports.Option = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
14
14
  var id = _ref.id,
15
15
  name = _ref.name,
16
+ _ref$tooltip = _ref.tooltip,
17
+ tooltip = _ref$tooltip === void 0 ? "" : _ref$tooltip,
16
18
  hover = _ref.hover,
17
19
  className = _ref.className,
18
20
  renderOption = _ref.renderOption,
@@ -28,7 +30,7 @@ var Option = exports.Option = /*#__PURE__*/(0, _react.forwardRef)(function (_ref
28
30
  }, [onMouseEnter, id]);
29
31
  return /*#__PURE__*/_react.default.createElement(_Styles.StyledOption, {
30
32
  ref: hover ? ref : null,
31
- title: name,
33
+ title: tooltip ? tooltip : name,
32
34
  onMouseEnter: handleOnMouseEnter,
33
35
  onTouchStart: handleOnMouseEnter,
34
36
  className: (0, _classnames.default)("c-option", className),
@@ -1 +1 @@
1
- {"version":3,"file":"Option.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Styles","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Option","exports","forwardRef","_ref","ref","id","name","hover","className","renderOption","onMouseEnter","_ref$onClick","onClick","handleOnMouseEnter","useCallback","createElement","StyledOption","title","onTouchStart","classnames","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n /** Color for chip label */\n chipColor?: string;\n /** Value of mixed */\n mixed?: boolean;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={name}\n onMouseEnter={handleOnMouseEnter}\n onTouchStart={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n {renderOption ? renderOption : name}\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Option.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Styles","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Option","exports","forwardRef","_ref","ref","id","name","_ref$tooltip","tooltip","hover","className","renderOption","onMouseEnter","_ref$onClick","onClick","handleOnMouseEnter","useCallback","createElement","StyledOption","title","onTouchStart","classnames","displayName"],"sources":["../../../../../src/components/Select/Option/Option.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEventHandler,\n ReactNode,\n Ref,\n useCallback,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledOption } from \"./Styles\";\n\nexport interface IOptionItemProps {\n /** Value of option */\n id: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: string;\n /** Additional info right-side of name */\n additionalInfo?: string;\n /** image url for Avatar or MultiAvatar */\n image?: string | string[];\n /** Hex color for label */\n color?: string;\n /** Color for chip label */\n chipColor?: string;\n /** Value of mixed */\n mixed?: boolean;\n}\n\ninterface IAdditionalOptionItemProps {\n /** Value of option */\n id?: string | number;\n /** Label of option */\n name: string;\n /** Content for tooltip */\n tooltip?: string;\n /** Hovered state */\n hover?: boolean;\n /** Class name of option */\n className?: string;\n /** Render option function */\n renderOption?: ReactNode;\n /** On mouse enter callback */\n onMouseEnter?: (e: string | number | undefined) => void;\n /** On mouse click */\n onClick?: MouseEventHandler<HTMLLIElement>;\n}\n\nexport const Option = forwardRef(\n (\n {\n id,\n name,\n tooltip = \"\",\n hover,\n className,\n renderOption,\n onMouseEnter,\n onClick = () => null,\n }: IAdditionalOptionItemProps,\n ref: Ref<HTMLLIElement>\n ) => {\n const handleOnMouseEnter = useCallback(() => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n }, [onMouseEnter, id]);\n\n return (\n <StyledOption\n ref={hover ? ref : null}\n title={tooltip ? tooltip : name}\n onMouseEnter={handleOnMouseEnter}\n onTouchStart={handleOnMouseEnter}\n className={classnames(\"c-option\", className)}\n hover={hover}\n onClick={onClick}\n >\n {renderOption ? renderOption : name}\n </StyledOption>\n );\n }\n);\n\nOption.displayName = \"Option\";\n"],"mappings":"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"}
@@ -115,11 +115,26 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
115
115
  var preformattedValue = String(unformattedValue).replace(thousandSeparator, "").replace(decimalSeparator, ".");
116
116
  var numericValue = parseFloat(preformattedValue);
117
117
  if (isNaN(numericValue)) return;
118
+ if (max !== undefined && numericValue > Number(max) || min !== undefined && numericValue < Number(min)) {
119
+ return;
120
+ }
118
121
  var newValue = numericValue;
119
122
  if (type === "increment") {
120
- newValue += step;
123
+ if (max === undefined || numericValue + step <= Number(max)) {
124
+ newValue = numericValue + step;
125
+ } else if (numericValue < Number(max)) {
126
+ newValue = Number(max);
127
+ } else {
128
+ return;
129
+ }
121
130
  } else if (type === "decrement") {
122
- newValue -= step;
131
+ if (min === undefined || numericValue - step >= Number(min)) {
132
+ newValue = numericValue - step;
133
+ } else if (numericValue > Number(min)) {
134
+ newValue = Number(min);
135
+ } else {
136
+ return;
137
+ }
123
138
  }
124
139
  var formattedValue;
125
140
  if (decimalLength !== undefined) {
@@ -136,7 +151,7 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
136
151
  setUnformattedValue(formattedValue);
137
152
  setCurrentValue(formattedValue);
138
153
  if (onChange) onChange(formattedValue);
139
- }, [unformattedValue, thousandSeparator, decimalSeparator, decimalLength, onChange, step]);
154
+ }, [unformattedValue, thousandSeparator, decimalSeparator, decimalLength, onChange, step, min, max]);
140
155
  var handleKeyDown = (0, _react.useCallback)(function (e) {
141
156
  if (e.key === "Enter") {
142
157
  e.target.blur();
@@ -1 +1 @@
1
- {"version":3,"file":"useInputNumber.js","names":["_react","require","_utils","_currencyUtils","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","return","isArray","useInputNumber","exports","_ref","inputRef","_ref$decimalSeparator","decimalSeparator","_ref$thousandSeparato","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","_ref$value","onChange","onSave","onEnterKeyPress","onClick","onCancel","allowEmptyValue","_ref$step","step","_ref$trimDecimals","trimDecimals","limit","_ref$validation","validation","validateNumberInput","min","max","onBlur","isMaxValid","undefined","Number","console","warn","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","_useState7","_useState8","unformattedPrevValue","setUnformattedPrevValue","useEffect","document","activeElement","current","_useState9","_useState10","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","String","target","trim","_value","updateValue","type","preformattedValue","replace","numericValue","parseFloat","isNaN","newValue","formattedValue","toFixed","Math","round","includes","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","substring","Boolean","handleChange","inputValue","numericInput","_","num","unit","normalizedNum","parts","split","integerPart","fractionalPart","newInteger","parseInt","currencyMultiplier","toLowerCase","result","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport { currencyMultiplier, formatNumber } from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\" | \" \" | \"\";\n\nexport interface IInputNumber {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n trimDecimals?: boolean;\n onSave?: (e: Event) => void;\n value?: string | number;\n step?: number;\n limit?: number;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n onBlur?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n min?: string | number;\n max?: string | number;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value = \"\",\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n trimDecimals = true,\n limit,\n validation = validateNumberInput,\n min,\n max,\n onBlur,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const isMaxValid =\n max === undefined || min === undefined || Number(max) >= Number(min);\n\n if (!isMaxValid) {\n console.warn(\n \"Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.\"\n );\n }\n\n const [currentValue, setCurrentValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n const [unformattedPrevValue, setUnformattedPrevValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n\n useEffect(() => {\n if (value !== prevValue && document.activeElement !== inputRef?.current) {\n setCurrentValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setPrevValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setUnformattedValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedPrevValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disableAbbreviation,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n value,\n ]);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\n if (onChange) onChange(String(unformattedPrevValue));\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n );\n setPrevValue(_value);\n setUnformattedPrevValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n setFocused(false);\n typeof onBlur === \"function\" && onBlur(e);\n },\n [\n onBlur,\n prevValue,\n unformattedPrevValue,\n onChange,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const preformattedValue = String(unformattedValue)\n .replace(thousandSeparator, \"\")\n .replace(decimalSeparator, \".\");\n const numericValue = parseFloat(preformattedValue);\n\n if (isNaN(numericValue)) return;\n\n let newValue = numericValue;\n\n if (type === \"increment\") {\n newValue += step;\n } else if (type === \"decrement\") {\n newValue -= step;\n }\n\n let formattedValue;\n if (decimalLength !== undefined) {\n formattedValue = newValue.toFixed(decimalLength);\n } else {\n formattedValue = newValue.toFixed(2);\n }\n\n if (decimalLength !== undefined && decimalLength === 0) {\n formattedValue = Math.round(newValue).toString();\n }\n\n if (formattedValue.includes(\".\") || formattedValue.includes(\",\")) {\n formattedValue = formattedValue.replace(\".\", decimalSeparator);\n }\n\n setUnformattedValue(formattedValue);\n setCurrentValue(formattedValue);\n if (onChange) onChange(formattedValue);\n },\n [\n unformattedValue,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n onChange,\n step,\n ]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n updateValue(\"increment\");\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n updateValue(\"decrement\");\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if (e.key === \"Delete\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n if (e.key === \"Tab\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"v\") {\n e.preventDefault();\n return;\n }\n\n // Disallow \"-\" if min is 0 or greater\n if (e.key === \"-\" && min !== undefined && Number(min) >= 0) {\n e.preventDefault();\n return;\n }\n\n // Disallow decimal separator if decimalLength is 0\n if (e.key === decimalSeparator && decimalLength === 0) {\n e.preventDefault();\n return;\n }\n\n const input = e.target;\n const currentValue = input.value;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const newValue =\n currentValue.substring(0, start) + e.key + currentValue.substring(end);\n if (\n !validation(\n newValue,\n Boolean(disableMacros),\n decimalSeparator,\n decimalLength ?? 0,\n limit\n )\n ) {\n e.preventDefault();\n return;\n }\n },\n [\n decimalLength,\n decimalSeparator,\n disableMacros,\n inputRef,\n limit,\n min,\n onCancel,\n onEnterKeyPress,\n updateValue,\n validation,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n const inputValue = e.target.value;\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(\n /(\\d+(?:[.,]\\d+)?)([kmbtKMBT])/,\n (_, num, unit) => {\n const normalizedNum = num.replace(\",\", \".\");\n const parts = normalizedNum.split(\".\");\n const integerPart = parts[0];\n const fractionalPart = parts[1];\n\n const newInteger =\n parseInt(integerPart, 10) *\n currencyMultiplier[unit.toLowerCase()];\n\n let result = newInteger.toString();\n if (fractionalPart !== undefined) {\n result += decimalSeparator + fractionalPart;\n }\n return result;\n }\n );\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, decimalSeparator, onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const handleFocus = useCallback(() => {\n setCurrentValue(unformattedValue);\n setFocused(true);\n }, [unformattedValue]);\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n focused,\n unformattedValue,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useInputNumber.js","names":["_react","require","_utils","_currencyUtils","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","return","isArray","useInputNumber","exports","_ref","inputRef","_ref$decimalSeparator","decimalSeparator","_ref$thousandSeparato","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","_ref$value","onChange","onSave","onEnterKeyPress","onClick","onCancel","allowEmptyValue","_ref$step","step","_ref$trimDecimals","trimDecimals","limit","_ref$validation","validation","validateNumberInput","min","max","onBlur","isMaxValid","undefined","Number","console","warn","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","_useState7","_useState8","unformattedPrevValue","setUnformattedPrevValue","useEffect","document","activeElement","current","_useState9","_useState10","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","String","target","trim","_value","updateValue","type","preformattedValue","replace","numericValue","parseFloat","isNaN","newValue","formattedValue","toFixed","Math","round","includes","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","substring","Boolean","handleChange","inputValue","numericInput","_","num","unit","normalizedNum","parts","split","integerPart","fractionalPart","newInteger","parseInt","currencyMultiplier","toLowerCase","result","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport { currencyMultiplier, formatNumber } from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\" | \" \" | \"\";\n\nexport interface IInputNumber {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n trimDecimals?: boolean;\n onSave?: (e: Event) => void;\n value?: string | number;\n step?: number;\n limit?: number;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n onBlur?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n min?: string | number;\n max?: string | number;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value = \"\",\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n trimDecimals = true,\n limit,\n validation = validateNumberInput,\n min,\n max,\n onBlur,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const isMaxValid =\n max === undefined || min === undefined || Number(max) >= Number(min);\n\n if (!isMaxValid) {\n console.warn(\n \"Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.\"\n );\n }\n\n const [currentValue, setCurrentValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n const [unformattedPrevValue, setUnformattedPrevValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n\n useEffect(() => {\n if (value !== prevValue && document.activeElement !== inputRef?.current) {\n setCurrentValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setPrevValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setUnformattedValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedPrevValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disableAbbreviation,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n value,\n ]);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\n if (onChange) onChange(String(unformattedPrevValue));\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n );\n setPrevValue(_value);\n setUnformattedPrevValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n setFocused(false);\n typeof onBlur === \"function\" && onBlur(e);\n },\n [\n onBlur,\n prevValue,\n unformattedPrevValue,\n onChange,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const preformattedValue = String(unformattedValue)\n .replace(thousandSeparator, \"\")\n .replace(decimalSeparator, \".\");\n const numericValue = parseFloat(preformattedValue);\n\n if (isNaN(numericValue)) return;\n\n if (\n (max !== undefined && numericValue > Number(max)) ||\n (min !== undefined && numericValue < Number(min))\n ) {\n return;\n }\n\n let newValue = numericValue;\n\n if (type === \"increment\") {\n if (max === undefined || numericValue + step <= Number(max)) {\n newValue = numericValue + step;\n } else if (numericValue < Number(max)) {\n newValue = Number(max);\n } else {\n return;\n }\n } else if (type === \"decrement\") {\n if (min === undefined || numericValue - step >= Number(min)) {\n newValue = numericValue - step;\n } else if (numericValue > Number(min)) {\n newValue = Number(min);\n } else {\n return;\n }\n }\n\n let formattedValue;\n if (decimalLength !== undefined) {\n formattedValue = newValue.toFixed(decimalLength);\n } else {\n formattedValue = newValue.toFixed(2);\n }\n\n if (decimalLength !== undefined && decimalLength === 0) {\n formattedValue = Math.round(newValue).toString();\n }\n\n if (formattedValue.includes(\".\") || formattedValue.includes(\",\")) {\n formattedValue = formattedValue.replace(\".\", decimalSeparator);\n }\n\n setUnformattedValue(formattedValue);\n setCurrentValue(formattedValue);\n if (onChange) onChange(formattedValue);\n },\n [\n unformattedValue,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n onChange,\n step,\n min,\n max,\n ]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n updateValue(\"increment\");\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n updateValue(\"decrement\");\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if (e.key === \"Delete\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n if (e.key === \"Tab\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"v\") {\n e.preventDefault();\n return;\n }\n\n // Disallow \"-\" if min is 0 or greater\n if (e.key === \"-\" && min !== undefined && Number(min) >= 0) {\n e.preventDefault();\n return;\n }\n\n // Disallow decimal separator if decimalLength is 0\n if (e.key === decimalSeparator && decimalLength === 0) {\n e.preventDefault();\n return;\n }\n\n const input = e.target;\n const currentValue = input.value;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const newValue =\n currentValue.substring(0, start) + e.key + currentValue.substring(end);\n if (\n !validation(\n newValue,\n Boolean(disableMacros),\n decimalSeparator,\n decimalLength ?? 0,\n limit\n )\n ) {\n e.preventDefault();\n return;\n }\n },\n [\n decimalLength,\n decimalSeparator,\n disableMacros,\n inputRef,\n limit,\n min,\n onCancel,\n onEnterKeyPress,\n updateValue,\n validation,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n const inputValue = e.target.value;\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(\n /(\\d+(?:[.,]\\d+)?)([kmbtKMBT])/,\n (_, num, unit) => {\n const normalizedNum = num.replace(\",\", \".\");\n const parts = normalizedNum.split(\".\");\n const integerPart = parts[0];\n const fractionalPart = parts[1];\n\n const newInteger =\n parseInt(integerPart, 10) *\n currencyMultiplier[unit.toLowerCase()];\n\n let result = newInteger.toString();\n if (fractionalPart !== undefined) {\n result += decimalSeparator + fractionalPart;\n }\n return result;\n }\n );\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, decimalSeparator, onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const handleFocus = useCallback(() => {\n setCurrentValue(unformattedValue);\n setFocused(true);\n }, [unformattedValue]);\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n focused,\n unformattedValue,\n };\n};\n"],"mappings":"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"}
@@ -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,EACZ,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAEvE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,GACzC,IAAI,IAAI,iBAAiB,CAE3B;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IACnD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IACjD,2BAA2B;IAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC,qBAAqB;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAChE,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,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;IAC3B,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,4BAA4B;IAC5B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACjD,8BAA8B;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,uCAAuC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CA6f/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,EACZ,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,gBAAgB,EAAU,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAe,MAAM,uBAAuB,CAAC;AAEvE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,GACzC,IAAI,IAAI,iBAAiB,CAE3B;AAED,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE,CAAC;IACnD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IACjD,2BAA2B;IAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACnC,qBAAqB;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAChE,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,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;IAC3B,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,4BAA4B;IAC5B,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACjD,8BAA8B;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,uCAAuC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0DAA0D;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAOD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,kBAAkB,CA+f/C,CAAC"}
@@ -249,6 +249,7 @@ export const Autocomplete = _ref => {
249
249
  return /*#__PURE__*/React.createElement(OptionGroup, {
250
250
  checked: selectedOptions,
251
251
  name: item.name,
252
+ tooltip: item.tooltip,
252
253
  key: item.id,
253
254
  setHover: handleHoverCallback,
254
255
  id: item.id,
@@ -265,6 +266,7 @@ export const Autocomplete = _ref => {
265
266
  name: item.name,
266
267
  ref: itemRef,
267
268
  key: index,
269
+ tooltip: item.tooltip,
268
270
  onMouseEnter: handleMouseEnter,
269
271
  onClick: handleClick,
270
272
  id: item.id,