@consta/uikit 4.10.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
- package/__internal__/src/components/Combobox/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.d.ts +13 -4
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.d.ts +16 -4
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.d.ts +13 -4
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.d.ts +16 -4
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.d.ts +13 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBar.css +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.css +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarItem/ProgressStepBarItem.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarLine/ProgressStepBarLine.css +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarLine/ProgressStepBarLine.js +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBarLine/ProgressStepBarLine.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/helpers.d.ts +2 -0
- package/__internal__/src/components/ProgressStepBar/helpers.js +1 -1
- package/__internal__/src/components/ProgressStepBar/helpers.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectItem/SelectItem.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.css +1 -1
- package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.d.ts +1 -0
- package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectValueTag/SelectValueTag.js.map +1 -1
- package/__internal__/src/components/TextField/TextField.css +1 -1
- package/__internal__/src/components/TextField/index.d.ts +1 -0
- package/__internal__/src/components/TextField/index.js +1 -1
- package/__internal__/src/components/TextField/index.js.map +1 -1
- package/__internal__/src/components/TextField/useIMask.d.ts +15 -0
- package/__internal__/src/components/TextField/useIMask.js +2 -0
- package/__internal__/src/components/TextField/useIMask.js.map +1 -0
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelectItem/UserSelectItem.css +1 -1
- package/__internal__/src/components/UserSelect/UserSelectValue/UserSelectValue.css +1 -1
- package/__internal__/src/components/UserSelect/UserSelectValue/UserSelectValue.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelectValue/UserSelectValue.js.map +1 -1
- package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.js +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSelect.js","names":["IconClose","IconSelect","React","forwardRef","useRef","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","restProps","searchFunctionDefault","item","searchValue","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserSelect.js","names":["IconClose","IconSelect","React","forwardRef","useRef","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n });\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.UserSelectItem{align-items:center;background-color:var(--color-control-bg-clear);color:var(--color-control-typo-default);cursor:pointer;display:flex;font-size:var(--font-size);position:relative}.UserSelectItem_size_s{--font-size:var(--control-text-size-s);--sub-info-space:var(--space-xs);--sub-label-font-size:var(--size-text-2xs)}.UserSelectItem_size_m{--font-size:var(--control-text-size-m);--sub-info-space:var(--space-s);--sub-label-font-size:var(--size-text-xs)}.UserSelectItem_size_l{--font-size:var(--control-text-size-l);--sub-info-space:var(--space-s);--sub-label-font-size:var(--size-text-s)}.UserSelectItem_disable{color:var(--color-control-typo-disable)}.UserSelectItem_hovered{background-color:var(--color-control-bg-clear-hover)}.UserSelectItem_active{color:var(--color-control-typo-secondary)}.UserSelectItem_indent_increased{padding-left:calc(var(--horizontal-space)*2.6)}.UserSelectItem-AvatarContainer{position:relative}.UserSelectItem-CheckIcon{background-color:var(--color-control-bg-primary);border:1px solid var(--color-control-bg-default);border-radius:50%;bottom:calc(var(--space-2xs)*-1);color:var(--color-control-bg-default);height:var(--graphics-size-xs);padding:0;position:absolute;right:calc(var(--space-2xs)*-1);width:var(--graphics-size-xs)}.UserSelectItem-CheckIcon_animate_entered,.UserSelectItem-CheckIcon_animate_entering,.UserSelectItem-CheckIcon_animate_exited,.UserSelectItem-CheckIcon_animate_exiting{transition:.2s ease;transition-property:opacity,transform}.UserSelectItem-CheckIcon_animate_entered,.UserSelectItem-CheckIcon_animate_entering{opacity:1;transform:scale(1)}.UserSelectItem-CheckIcon_animate_exiting{opacity:0;transform:scale(.25)}.UserSelectItem-CheckIcon_animate_exited{opacity:0;transform:scale(0)}.UserSelectItem-Info{padding-left:var(--sub-info-space)}.UserSelectItem-SubLabel{font-size:var(--sub-label-font-size);opacity:.7}.UserSelectItem-SubLabel_disable{opacity:1}
|
|
1
|
+
.UserSelectItem{align-items:center;background-color:var(--color-control-bg-clear);color:var(--color-control-typo-default);cursor:pointer;display:flex;font-size:var(--font-size);position:relative}.UserSelectItem_size_s{--font-size:var(--control-text-size-s);--sub-info-space:var(--space-xs);--sub-label-font-size:var(--size-text-2xs)}.UserSelectItem_size_m{--font-size:var(--control-text-size-m);--sub-info-space:var(--space-s);--sub-label-font-size:var(--size-text-xs)}.UserSelectItem_size_l{--font-size:var(--control-text-size-l);--sub-info-space:var(--space-s);--sub-label-font-size:var(--size-text-s)}.UserSelectItem_disable{color:var(--color-control-typo-disable)}.UserSelectItem_disable .UserSelectItem-AvatarContainer{opacity:.6}.UserSelectItem_hovered{background-color:var(--color-control-bg-clear-hover)}.UserSelectItem_active{color:var(--color-control-typo-secondary)}.UserSelectItem_indent_increased{padding-left:calc(var(--horizontal-space)*2.6)}.UserSelectItem-AvatarContainer{position:relative}.UserSelectItem-CheckIcon{background-color:var(--color-control-bg-primary);border:1px solid var(--color-control-bg-default);border-radius:50%;bottom:calc(var(--space-2xs)*-1);color:var(--color-control-bg-default);height:var(--graphics-size-xs);padding:0;position:absolute;right:calc(var(--space-2xs)*-1);width:var(--graphics-size-xs)}.UserSelectItem-CheckIcon_animate_entered,.UserSelectItem-CheckIcon_animate_entering,.UserSelectItem-CheckIcon_animate_exited,.UserSelectItem-CheckIcon_animate_exiting{transition:.2s ease;transition-property:opacity,transform}.UserSelectItem-CheckIcon_animate_entered,.UserSelectItem-CheckIcon_animate_entering{opacity:1;transform:scale(1)}.UserSelectItem-CheckIcon_animate_exiting{opacity:0;transform:scale(.25)}.UserSelectItem-CheckIcon_animate_exited{opacity:0;transform:scale(0)}.UserSelectItem-Info{padding-left:var(--sub-info-space)}.UserSelectItem-SubLabel{font-size:var(--sub-label-font-size);opacity:.7}.UserSelectItem-SubLabel_disable{opacity:1}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.UserSelectValue_multiple{margin-bottom:calc(var(--space-s)/4);margin-right:var(--space-xs)}.UserSelectValue:not(.UserSelectValue_multiple).User:hover{background-color:var(--color-control-bg-clear)}
|
|
1
|
+
.UserSelectValue_multiple{margin-bottom:calc(var(--space-s)/4);margin-right:var(--space-xs)}.UserSelectValue_disabled{opacity:.6}.UserSelectValue:not(.UserSelectValue_multiple).User:hover{background-color:var(--color-control-bg-clear)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./UserSelectValue.css";import{IconClose}from"@consta/icons/IconClose";import React from"react";import{cn}from"../../../utils/bem";import{User}from"../../User/User";export var cnUserSelectValue=cn("UserSelectValue");export var UserSelectValue=function(a){var b=a.size,c=a.label,d=a.subLabel,e=a.disabled,f=a.handleRemove,g=a.avatarUrl,h=a.multiple;return React.createElement(User,{className:cnUserSelectValue({multiple:h,size:b}),avatarUrl:g,name:c,info:d,size:b,view:h?"ghost":"clear",iconRight:!e&&h?IconClose:void 0,onIconRightClick:!e&&h?f:void 0})};
|
|
1
|
+
import"./UserSelectValue.css";import{IconClose}from"@consta/icons/IconClose";import React from"react";import{cn}from"../../../utils/bem";import{User}from"../../User/User";export var cnUserSelectValue=cn("UserSelectValue");export var UserSelectValue=function(a){var b=a.size,c=a.label,d=a.subLabel,e=a.disabled,f=a.handleRemove,g=a.avatarUrl,h=a.multiple;return React.createElement(User,{className:cnUserSelectValue({multiple:h,size:b,disabled:e}),avatarUrl:g,name:c,info:d,size:b,view:h?"ghost":"clear",iconRight:!e&&h?IconClose:void 0,onIconRightClick:!e&&h?f:void 0})};
|
|
2
2
|
//# sourceMappingURL=UserSelectValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSelectValue.js","names":["IconClose","React","cn","User","cnUserSelectValue","UserSelectValue","props","size","label","subLabel","disabled","handleRemove","avatarUrl","multiple"],"sources":["../../../../../../src/components/UserSelect/UserSelectValue/UserSelectValue.tsx"],"sourcesContent":["import './UserSelectValue.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { User } from '../../User/User';\n\ntype UserValueProps = {\n label: string;\n size: 's' | 'm' | 'l';\n subLabel?: string;\n avatarUrl?: string;\n handleRemove?: (e: React.SyntheticEvent) => void;\n multiple?: boolean;\n disabled?: boolean;\n children?: never;\n};\n\nexport const cnUserSelectValue = cn('UserSelectValue');\n\nexport const UserSelectValue: React.FC<UserValueProps> = (props) => {\n const { size, label, subLabel, disabled, handleRemove, avatarUrl, multiple } =\n props;\n\n return (\n <User\n className={cnUserSelectValue({ multiple, size })}\n avatarUrl={avatarUrl}\n name={label}\n info={subLabel}\n size={size}\n view={multiple ? 'ghost' : 'clear'}\n iconRight={!disabled && multiple ? IconClose : undefined}\n onIconRightClick={!disabled && multiple ? handleRemove : undefined}\n />\n );\n};\n"],"mappings":"AAAA,8BAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,MAAOC,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,0BACA,OAASC,IAAT,uBAaA,MAAO,IAAMC,kBAAiB,CAAGF,EAAE,CAAC,iBAAD,CAA5B,CAEP,MAAO,IAAMG,gBAAyC,CAAG,SAACC,CAAD,CAAW,CAClE,GAAQC,EAAR,CACED,CADF,CAAQC,IAAR,CAAcC,CAAd,CACEF,CADF,CAAcE,KAAd,CAAqBC,CAArB,CACEH,CADF,CAAqBG,QAArB,CAA+BC,CAA/B,CACEJ,CADF,CAA+BI,QAA/B,CAAyCC,CAAzC,CACEL,CADF,CAAyCK,YAAzC,CAAuDC,CAAvD,CACEN,CADF,CAAuDM,SAAvD,CAAkEC,CAAlE,CACEP,CADF,CAAkEO,QAAlE,CAGA,MACE,qBAAC,IAAD,EACE,SAAS,CAAET,iBAAiB,CAAC,CAAES,QAAQ,CAARA,CAAF,CAAYN,IAAI,CAAJA,CAAZ,CAAD,CAD9B,CAEE,SAAS,
|
|
1
|
+
{"version":3,"file":"UserSelectValue.js","names":["IconClose","React","cn","User","cnUserSelectValue","UserSelectValue","props","size","label","subLabel","disabled","handleRemove","avatarUrl","multiple"],"sources":["../../../../../../src/components/UserSelect/UserSelectValue/UserSelectValue.tsx"],"sourcesContent":["import './UserSelectValue.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React from 'react';\n\nimport { cn } from '../../../utils/bem';\nimport { User } from '../../User/User';\n\ntype UserValueProps = {\n label: string;\n size: 's' | 'm' | 'l';\n subLabel?: string;\n avatarUrl?: string;\n handleRemove?: (e: React.SyntheticEvent) => void;\n multiple?: boolean;\n disabled?: boolean;\n children?: never;\n};\n\nexport const cnUserSelectValue = cn('UserSelectValue');\n\nexport const UserSelectValue: React.FC<UserValueProps> = (props) => {\n const { size, label, subLabel, disabled, handleRemove, avatarUrl, multiple } =\n props;\n\n return (\n <User\n className={cnUserSelectValue({ multiple, size, disabled })}\n avatarUrl={avatarUrl}\n name={label}\n info={subLabel}\n size={size}\n view={multiple ? 'ghost' : 'clear'}\n iconRight={!disabled && multiple ? IconClose : undefined}\n onIconRightClick={!disabled && multiple ? handleRemove : undefined}\n />\n );\n};\n"],"mappings":"AAAA,8BAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,MAAOC,MAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,0BACA,OAASC,IAAT,uBAaA,MAAO,IAAMC,kBAAiB,CAAGF,EAAE,CAAC,iBAAD,CAA5B,CAEP,MAAO,IAAMG,gBAAyC,CAAG,SAACC,CAAD,CAAW,CAClE,GAAQC,EAAR,CACED,CADF,CAAQC,IAAR,CAAcC,CAAd,CACEF,CADF,CAAcE,KAAd,CAAqBC,CAArB,CACEH,CADF,CAAqBG,QAArB,CAA+BC,CAA/B,CACEJ,CADF,CAA+BI,QAA/B,CAAyCC,CAAzC,CACEL,CADF,CAAyCK,YAAzC,CAAuDC,CAAvD,CACEN,CADF,CAAuDM,SAAvD,CAAkEC,CAAlE,CACEP,CADF,CAAkEO,QAAlE,CAGA,MACE,qBAAC,IAAD,EACE,SAAS,CAAET,iBAAiB,CAAC,CAAES,QAAQ,CAARA,CAAF,CAAYN,IAAI,CAAJA,CAAZ,CAAkBG,QAAQ,CAARA,CAAlB,CAAD,CAD9B,CAEE,SAAS,CAAEE,CAFb,CAGE,IAAI,CAAEJ,CAHR,CAIE,IAAI,CAAEC,CAJR,CAKE,IAAI,CAAEF,CALR,CAME,IAAI,CAAEM,CAAQ,CAAG,OAAH,CAAa,OAN7B,CAOE,SAAS,CAAE,CAACH,CAAD,EAAaG,CAAb,CAAwBb,SAAxB,OAPb,CAQE,gBAAgB,CAAE,CAACU,CAAD,EAAaG,CAAb,CAAwBF,CAAxB,OARpB,EAWH,CAhBM"}
|
|
@@ -61,6 +61,7 @@ export declare type UserSelectProps<ITEM = DefaultItem, GROUP = DefaultGroup, MU
|
|
|
61
61
|
labelForCreate?: string;
|
|
62
62
|
labelForEmptyItems?: string;
|
|
63
63
|
searchFunction?: PropSearchFunction<ITEM>;
|
|
64
|
+
searchValue?: string;
|
|
64
65
|
multiple?: MULTIPLE;
|
|
65
66
|
value?: PropValue<ITEM, MULTIPLE>;
|
|
66
67
|
onChange: PropOnChange<ITEM, MULTIPLE>;
|
|
@@ -132,6 +133,7 @@ export declare function withDefaultGetters<ITEM = DefaultItem, GROUP = DefaultGr
|
|
|
132
133
|
labelForCreate?: string | undefined;
|
|
133
134
|
labelForEmptyItems?: string | undefined;
|
|
134
135
|
searchFunction?: PropSearchFunction<ITEM> | undefined;
|
|
136
|
+
searchValue?: string | undefined;
|
|
135
137
|
multiple?: MULTIPLE | undefined;
|
|
136
138
|
value?: PropValue<ITEM, MULTIPLE>;
|
|
137
139
|
onChange: PropOnChange<ITEM, MULTIPLE>;
|
|
@@ -147,7 +149,7 @@ export declare function withDefaultGetters<ITEM = DefaultItem, GROUP = DefaultGr
|
|
|
147
149
|
label?: string | undefined;
|
|
148
150
|
caption?: string | undefined;
|
|
149
151
|
labelPosition?: "left" | "top" | undefined;
|
|
150
|
-
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "size" | "caption" | "form" | "label" | "view" | "status" | "name" | "disabled" | "value" | "multiple" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelPosition" | "searchFunction" | "labelForCreate" | "labelForNotFound" | "onCreate" | "getItemSubLabel" | "getItemAvatarUrl"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
|
|
152
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "size" | "caption" | "form" | "label" | "view" | "status" | "name" | "disabled" | "value" | "multiple" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelPosition" | "searchFunction" | "searchValue" | "labelForCreate" | "labelForNotFound" | "onCreate" | "getItemSubLabel" | "getItemAvatarUrl"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
|
|
151
153
|
label: string;
|
|
152
154
|
} ? {} : {
|
|
153
155
|
getItemLabel: PropGetItemLabel<ITEM>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemSubLabel","subLabel","defaultGetItemAvatarUrl","avatarUrl","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","getItemSubLabel","getItemAvatarUrl","searchCompare","searchValue","compare","toLocaleLowerCase","indexOf"],"sources":["../../../../../src/components/UserSelect/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\n\nexport type DefaultItem = {\n label: string;\n id: string | number;\n subLabel?: string;\n avatarUrl?: string;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type DefaultGroup = {\n label: string;\n id: string | number;\n};\n\ntype RenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type PropGetItemSubLabel<ITEM> = (item: ITEM) => string | undefined;\nexport type PropGetItemAvatarUrl<ITEM> = (item: ITEM) => string | undefined;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type PropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetGroupKey<GROUP> = (group: GROUP) => string | number;\nexport type PropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\ntype PropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;\ntype PropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\ntype PropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type PropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\nexport type PropRenderValue<ITEM> = (\n props: RenderValueProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type UserSelectProps<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n disabled?: boolean;\n form?: PropForm;\n size?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: PropRenderItem<ITEM>;\n renderValue?: PropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: PropSearchFunction<ITEM>;\n multiple?: MULTIPLE;\n value?: PropValue<ITEM, MULTIPLE>;\n onChange: PropOnChange<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemSubLabel?: PropGetItemSubLabel<ITEM>;\n getItemAvatarUrl?: PropGetItemAvatarUrl<ITEM>;\n getItemKey?: PropGetItemKey<ITEM>;\n getItemGroupKey?: PropGetItemGroupKey<ITEM>;\n getItemDisabled?: PropGetItemDisabled<ITEM>;\n getGroupLabel?: PropGetGroupLabel<GROUP>;\n getGroupKey?: PropGetGroupKey<GROUP>;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n },\n HTMLDivElement\n> &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultItem['id'] }\n ? {}\n : { getItemKey: PropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultGroup['label'] }\n ? {}\n : { getGroupLabel: PropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultGroup['id'] }\n ? {}\n : { getGroupKey: PropGetGroupKey<GROUP> });\n\nexport type UserSelectComponent = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport const defaultGetItemKey: PropGetItemKey<DefaultItem> = (item) => item.id;\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemSubLabel: PropGetItemSubLabel<DefaultItem> = (\n item,\n) => item.subLabel;\nexport const defaultGetItemAvatarUrl: PropGetItemAvatarUrl<DefaultItem> = (\n item,\n) => item.avatarUrl;\nexport const defaultGetItemGroupKey: PropGetItemGroupKey<DefaultItem> = (\n item,\n) => item.groupId;\nexport const defaultGetItemDisabled: PropGetItemDisabled<DefaultItem> = (\n item,\n) => item.disabled;\n\nexport const defaultGetGroupKey: PropGetGroupKey<DefaultGroup> = (group) =>\n group.id;\nexport const defaultGetGroupLabel: PropGetGroupLabel<DefaultGroup> = (group) =>\n group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(props: UserSelectProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n getItemSubLabel: props.getItemSubLabel || defaultGetItemSubLabel,\n getItemAvatarUrl: props.getItemAvatarUrl || defaultGetItemAvatarUrl,\n };\n}\n\nexport const searchCompare = (\n searchValue: string,\n compare?: string,\n): boolean => {\n if (!compare) {\n return false;\n }\n\n return (\n compare.toLocaleLowerCase().indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemSubLabel","subLabel","defaultGetItemAvatarUrl","avatarUrl","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","getItemSubLabel","getItemAvatarUrl","searchCompare","searchValue","compare","toLocaleLowerCase","indexOf"],"sources":["../../../../../src/components/UserSelect/helpers.ts"],"sourcesContent":["import React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\n\nexport type DefaultItem = {\n label: string;\n id: string | number;\n subLabel?: string;\n avatarUrl?: string;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type DefaultGroup = {\n label: string;\n id: string | number;\n};\n\ntype RenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type PropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type PropGetItemSubLabel<ITEM> = (item: ITEM) => string | undefined;\nexport type PropGetItemAvatarUrl<ITEM> = (item: ITEM) => string | undefined;\nexport type PropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type PropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type PropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;\nexport type PropGetGroupKey<GROUP> = (group: GROUP) => string | number;\nexport type PropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\ntype PropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;\ntype PropOnChange<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\ntype PropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type PropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactElement | null;\nexport type PropRenderValue<ITEM> = (\n props: RenderValueProps<ITEM>,\n) => React.ReactElement | null;\n\nexport type UserSelectProps<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n disabled?: boolean;\n form?: PropForm;\n size?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: PropRenderItem<ITEM>;\n renderValue?: PropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: PropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: PropValue<ITEM, MULTIPLE>;\n onChange: PropOnChange<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: PropGetItemLabel<ITEM>;\n getItemSubLabel?: PropGetItemSubLabel<ITEM>;\n getItemAvatarUrl?: PropGetItemAvatarUrl<ITEM>;\n getItemKey?: PropGetItemKey<ITEM>;\n getItemGroupKey?: PropGetItemGroupKey<ITEM>;\n getItemDisabled?: PropGetItemDisabled<ITEM>;\n getGroupLabel?: PropGetGroupLabel<GROUP>;\n getGroupKey?: PropGetGroupKey<GROUP>;\n label?: string;\n caption?: string;\n labelPosition?: 'top' | 'left';\n },\n HTMLDivElement\n> &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: PropGetItemLabel<ITEM> }) &\n (ITEM extends { id: DefaultItem['id'] }\n ? {}\n : { getItemKey: PropGetItemKey<ITEM> }) &\n (GROUP extends { label: DefaultGroup['label'] }\n ? {}\n : { getGroupLabel: PropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: DefaultGroup['id'] }\n ? {}\n : { getGroupKey: PropGetGroupKey<GROUP> });\n\nexport type UserSelectComponent = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactElement | null;\n\nexport const defaultGetItemKey: PropGetItemKey<DefaultItem> = (item) => item.id;\nexport const defaultGetItemLabel: PropGetItemLabel<DefaultItem> = (item) =>\n item.label;\nexport const defaultGetItemSubLabel: PropGetItemSubLabel<DefaultItem> = (\n item,\n) => item.subLabel;\nexport const defaultGetItemAvatarUrl: PropGetItemAvatarUrl<DefaultItem> = (\n item,\n) => item.avatarUrl;\nexport const defaultGetItemGroupKey: PropGetItemGroupKey<DefaultItem> = (\n item,\n) => item.groupId;\nexport const defaultGetItemDisabled: PropGetItemDisabled<DefaultItem> = (\n item,\n) => item.disabled;\n\nexport const defaultGetGroupKey: PropGetGroupKey<DefaultGroup> = (group) =>\n group.id;\nexport const defaultGetGroupLabel: PropGetGroupLabel<DefaultGroup> = (group) =>\n group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(props: UserSelectProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n getItemSubLabel: props.getItemSubLabel || defaultGetItemSubLabel,\n getItemAvatarUrl: props.getItemAvatarUrl || defaultGetItemAvatarUrl,\n };\n}\n\nexport const searchCompare = (\n searchValue: string,\n compare?: string,\n): boolean => {\n if (!compare) {\n return false;\n }\n\n return (\n compare.toLocaleLowerCase().indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n};\n"],"mappings":"qqBAgIA,MAAO,IAAMA,kBAA8C,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAAvD,CACP,MAAO,IAAMC,oBAAkD,CAAG,SAACF,CAAD,QAChEA,EAAI,CAACG,KAD2D,CAA3D,CAEP,MAAO,IAAMC,uBAAwD,CAAG,SACtEJ,CADsE,QAEnEA,EAAI,CAACK,QAF8D,CAAjE,CAGP,MAAO,IAAMC,wBAA0D,CAAG,SACxEN,CADwE,QAErEA,EAAI,CAACO,SAFgE,CAAnE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtER,CADsE,QAEnEA,EAAI,CAACS,OAF8D,CAAjE,CAGP,MAAO,IAAMC,uBAAwD,CAAG,SACtEV,CADsE,QAEnEA,EAAI,CAACW,QAF8D,CAAjE,CAIP,MAAO,IAAMC,mBAAiD,CAAG,SAACC,CAAD,QAC/DA,EAAK,CAACZ,EADyD,CAA1D,CAEP,MAAO,IAAMa,qBAAqD,CAAG,SAACD,CAAD,QACnEA,EAAK,CAACV,KAD6D,CAA9D,CAGP,MAAO,IAAMY,iBAAgB,CAAG,SAC9BC,CAD8B,CAEmB,CACjD,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEiB,CAClD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAI0C,CAC/C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBnB,mBAFtC,CAGEoB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBvB,iBAHlC,CAIEwB,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBf,sBAJ5C,CAKEgB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBd,sBAL5C,CAMEe,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBX,oBANxC,CAOEY,WAAW,CAAEN,CAAK,CAACM,WAAN,EAAqBd,kBAPpC,CAQEe,eAAe,CAAEP,CAAK,CAACO,eAAN,EAAyBvB,sBAR5C,CASEwB,gBAAgB,CAAER,CAAK,CAACQ,gBAAN,EAA0BtB,uBAT9C,EAWD,CAED,MAAO,IAAMuB,cAAa,CAAG,SAC3BC,CAD2B,CAE3BC,CAF2B,CAGf,SACPA,CADO,EAM+D,CAAC,CAA1E,GAAAA,CAAO,CAACC,iBAAR,GAA4BC,OAA5B,CAAoCH,CAAW,CAACE,iBAAZ,EAApC,CAEH,CAXM"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import React,{useEffect,useMemo,useRef,useState}from"react";import{getGroups}from"../../utils/getGroups";import{useClickOutside}from"../useClickOutside/useClickOutside";import{useDebounce}from"../useDebounce/useDebounce";import{useKeys}from"../useKeys/useKeys";import{usePrevious}from"../usePrevious/usePrevious";import{scrollToIndex,useHoistedState}from"./helpers";var isMultipleParams=function(a){return a.multiple},isNotMultipleParams=function(a){return!a.multiple},actions={setOpen:"setOpen",setSearch:"setSearch",highlightIndex:"highlightIndex"},initialState={searchValue:"",resolvedSearchValue:"",isOpen:!1,highlightedIndex:0,scrollToHighlighted:!1};export var isOptionForCreate=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionForCreate")};export function useSelect(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.multiple,h=void 0!==g&&g,i=a.getItemLabel,j=a.getItemKey,k=a.searchFunction,l=a.getItemGroupKey,m=a.groups,n=a.getGroupKey,o=a.sortGroups,p=a.getItemDisabled,q=a.onFocus,r=a.onBlur,s=a.searchValue,t=a.withoutClearSearch,u=useRef(null),v=useState(!1),w=_slicedToArray(v,2),x=w[0],y=w[1],z=a.value&&(Array.isArray(a.value)?a.value:[a.value])||[],A=useHoistedState(initialState),B=_slicedToArray(A,2),C=B[0],D=C.searchValue,E=C.isOpen,F=C.highlightedIndex,G=C.resolvedSearchValue,H=C.scrollToHighlighted,I=B[1],J=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},K=React.useMemo(function(){if(G&&""!==G){var c=b.filter(function(a){return k?k(a,G):J(a,G)}),d=!!b.find(function(a){return i(a).toString().toLowerCase()===G.toLocaleLowerCase()});return[c,a.onCreate&&!d?{label:D,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,G]),L=_slicedToArray(K,2),M=L[0],N=L[1],O=useMemo(function(){var a=getGroups(M,null!==m&&void 0!==m&&m.length?l:void 0,m,n,o);return N?[N].concat(_toConsumableArray(a)):a},[M,m,l,n,o,N]),P=useMemo(function(){var b=!1;return 0<D.length&&(b=0===O.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[O]),Q=0!==b.length,R=function(){var a=0;if(0<z.length){var b,c=_createForOfIteratorHelper(O);try{for(c.s();!(b=c.n()).done;){var f=b.value;if(isOptionForCreate(f)){a++;continue}var d,e=_createForOfIteratorHelper(f.items);try{for(e.s();!(d=e.n()).done;){var g=d.value;if(j(g)===j(z[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},S=React.useCallback(function(a){I(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[I]),T=useDebounce(function(a){I(function(b){return _objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),U=React.useCallback(function(a){I(function(b){return _objectSpread(_objectSpread({},b),{},{searchValue:a})},actions.setSearch),T(a)},[I,T]),V=usePrevious(E);React.useLayoutEffect(function(){if(null!==z&&!V&&E){var a=R();0<M.length&&scrollToIndex(a,c)}});var W=React.useCallback(function(a,b){I(function(c){return _objectSpread(_objectSpread({},c),{},{highlightedIndex:Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),N?M.length:M.length-1),scrollToHighlighted:b})},actions.highlightIndex)},[M,I,N]),X=function(b,c){if(b.stopPropagation(),isMultipleParams(a)){var d,e=null===(d=a.value)||void 0===d?void 0:d.filter(function(a){return j(a)!==j(c)});a.onChange({e:b,value:null!==e&&void 0!==e&&e.length?e:null})}},Y=function(b,c){if(!(p&&p(c))){if(isMultipleParams(a)){var d=z.some(function(a){return j(a)===j(c)})?z.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(z),[c]);a.onChange({value:d.length?d:null,e:b})}isNotMultipleParams(a)&&(a.onChange({value:c,e:b}),S(!1)),t||U("")}},Z=function(b,c){a.onCreate&&a.onCreate({e:b,label:c}),S(!1),t||U("")},$=function(b){a.onChange({value:null,e:b})
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){throw a}),f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){h=!0,f=a}),f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import React,{useEffect,useMemo,useRef,useState}from"react";import{getGroups}from"../../utils/getGroups";import{useClickOutside}from"../useClickOutside/useClickOutside";import{useDebounce}from"../useDebounce/useDebounce";import{useKeys}from"../useKeys/useKeys";import{usePrevious}from"../usePrevious/usePrevious";import{scrollToIndex,useHoistedState}from"./helpers";var isMultipleParams=function(a){return a.multiple},isNotMultipleParams=function(a){return!a.multiple},actions={setOpen:"setOpen",setSearch:"setSearch",highlightIndex:"highlightIndex"},initialState={searchValue:"",resolvedSearchValue:"",isOpen:!1,highlightedIndex:0,scrollToHighlighted:!1};export var isOptionForCreate=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionForCreate")};export function useSelect(a){var b=a.items,c=a.dropdownRef,d=a.controlRef,e=a.disabled,f=void 0!==e&&e,g=a.multiple,h=void 0!==g&&g,i=a.getItemLabel,j=a.getItemKey,k=a.searchFunction,l=a.getItemGroupKey,m=a.groups,n=a.getGroupKey,o=a.sortGroups,p=a.getItemDisabled,q=a.onFocus,r=a.onBlur,s=a.searchValue,t=a.withoutClearSearch,u=useRef(null),v=useState(!1),w=_slicedToArray(v,2),x=w[0],y=w[1],z=a.value&&(Array.isArray(a.value)?a.value:[a.value])||[],A=useHoistedState(initialState),B=_slicedToArray(A,2),C=B[0],D=C.searchValue,E=C.isOpen,F=C.highlightedIndex,G=C.resolvedSearchValue,H=C.scrollToHighlighted,I=B[1],J=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},K=React.useMemo(function(){if(G&&""!==G){var c=b.filter(function(a){return k?k(a,G):J(a,G)}),d=!!b.find(function(a){return i(a).toString().toLowerCase()===G.toLocaleLowerCase()});return[c,a.onCreate&&!d?{label:D,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,G]),L=_slicedToArray(K,2),M=L[0],N=L[1],O=useMemo(function(){var a=getGroups(M,null!==m&&void 0!==m&&m.length?l:void 0,m,n,o);return N?[N].concat(_toConsumableArray(a)):a},[M,m,l,n,o,N]),P=useMemo(function(){var b=!1;return 0<D.length&&(b=0===O.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[O]),Q=0!==b.length,R=function(){var a=0;if(0<z.length){var b,c=_createForOfIteratorHelper(O);try{for(c.s();!(b=c.n()).done;){var f=b.value;if(isOptionForCreate(f)){a++;continue}var d,e=_createForOfIteratorHelper(f.items);try{for(e.s();!(d=e.n()).done;){var g=d.value;if(j(g)===j(z[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},S=React.useCallback(function(a){I(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[I]),T=useDebounce(function(a){I(function(b){return _objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),U=React.useCallback(function(a){I(function(b){return _objectSpread(_objectSpread({},b),{},{searchValue:a})},actions.setSearch),T(a)},[I,T]),V=usePrevious(E);React.useLayoutEffect(function(){if(null!==z&&!V&&E){var a=R();0<M.length&&scrollToIndex(a,c)}});var W=React.useCallback(function(a,b){I(function(c){return _objectSpread(_objectSpread({},c),{},{highlightedIndex:Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),N?M.length:M.length-1),scrollToHighlighted:b})},actions.highlightIndex)},[M,I,N]),X=function(b,c){if(b.stopPropagation(),isMultipleParams(a)){var d,e=null===(d=a.value)||void 0===d?void 0:d.filter(function(a){return j(a)!==j(c)});a.onChange({e:b,value:null!==e&&void 0!==e&&e.length?e:null})}},Y=function(b,c){if(!(p&&p(c))){if(isMultipleParams(a)){var d=z.some(function(a){return j(a)===j(c)})?z.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(z),[c]);a.onChange({value:d.length?d:null,e:b})}isNotMultipleParams(a)&&(a.onChange({value:c,e:b}),S(!1)),t||U("")}},Z=function(b,c){a.onCreate&&a.onCreate({e:b,label:c}),S(!1),t||U("")},$=function(b){if(t||U(""),isMultipleParams(a)){var c=null===z||void 0===z?void 0:z.filter(function(a){return null===p||void 0===p?void 0:p(a)});a.onChange({value:c&&0<c.length?c:null,e:b})}isNotMultipleParams(a)&&a.onChange({value:null,e:b})},_=function(a,b){b.preventDefault(),f||S(!0),W(function(a){return a-1},!0)},aa=function(a,b){b.preventDefault(),f||S(!0),W(function(a){return a+1},!0)},ba=useKeys({ArrowUp:_,ArrowDown:aa,PageUp:_,PageDown:aa,Home:_,End:aa,Enter:function Enter(a,b){if(E){(D||M[F])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(O);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(isOptionForCreate(e))return c++,e;if(e.items.length+c>a)return e.items[a-c];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}},d=c(F);if(isOptionForCreate(d))return void Z(b,d.label);d&&Y(b,d)}},Escape:function Escape(){S(!1)},Tab:function Tab(){S(!1)},Backspace:function Backspace(a,b){D||(h?X(b,z[z.length-1]):$(b))}});useClickOutside({isActive:E,ignoreClicksInsideRefs:[c,d],handler:function handler(){S(!1)}}),React.useEffect(function(){f&&S(!1)},[f]),React.useEffect(function(){var a=R();W(a,!0)},[W]),React.useEffect(function(){0<M.length&&H&&scrollToIndex(F,c)},[F]);return useEffect(function(){s&&U(s)},[s]),{isOpen:E,isFocused:x,highlightedIndex:F,visibleItems:O,highlightIndex:W,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item;if(isOptionForCreate(c))return{onClick:function onClick(a){Z(a,c.label)},onMouseEnter:function onMouseEnter(){W(b,!1)},active:!1,hovered:b===F,key:"__optionForCreate"};var d=j(c);return{onClick:function onClick(a){Y(a,c)},onMouseEnter:function onMouseEnter(){W(b,!1)},active:!!z.find(function(a){return j(a)===d}),hovered:b===F,key:d}},handleInputFocus:function handleInputFocus(a){f||(!x&&y(!0),"function"==typeof q&&q(a))},handleInputBlur:function handleInputBlur(a){if(E){var b;return void(null===(b=u.current)||void 0===b?void 0:b.focus())}x&&y(!1),"function"==typeof r&&r(a)},handleToggleDropdown:function handleToggleDropdown(){if(E)S(!1),y(!1);else{var a;S(!0),y(!0),null===(a=u.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||S(!E),h){var a;null===(a=u.current)||void 0===a?void 0:a.focus(),t||U("")}},inputRef:u,getKeyProps:ba,handleInputChange:function handleInputChange(a){f||!h&&0<z.length||U(a.target.value)},searchValue:D,clearValue:$,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return X(b,a)}},notFound:P,hasItems:Q}}
|
|
2
2
|
//# sourceMappingURL=useSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelect.js","names":["React","useEffect","useMemo","useRef","useState","getGroups","useClickOutside","useDebounce","useKeys","usePrevious","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","withoutClearSearch","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","matchWithValueSearch","find","option","toString","toLowerCase","onCreate","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","length","notFound","flag","group","hasItems","getSelectedOptionIndex","index","useCallback","newIsOpen","old","setResolvedSearch","prevIsOpen","useLayoutEffect","currentHighlightIndex","indexForHighlight","Math","min","max","removeValue","e","valueItem","stopPropagation","newValue","onChange","some","clearValue","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getItem","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","getOptionProps","onClick","onMouseEnter","active","hovered","key","handleInputFocus","handleInputBlur","current","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../src/hooks/useSelect/useSelect.ts"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { getGroups } from '../../utils/getGroups';\nimport { useClickOutside } from '../useClickOutside/useClickOutside';\nimport { useDebounce } from '../useDebounce/useDebounce';\nimport { KeyHandler, useKeys } from '../useKeys/useKeys';\nimport { usePrevious } from '../usePrevious/usePrevious';\nimport { scrollToIndex, useHoistedState } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\ntype SortGroups<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\ntype OnChangeProp<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\n\ntype ValueProp<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type SelectProps<ITEM, GROUP, MULTIPLE extends boolean> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n sortGroups?: SortGroups<ITEM, GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n getItemDisabled?: (item: ITEM) => boolean | undefined;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n withoutClearSearch?: boolean;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nconst isMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, true> => {\n return params.multiple;\n};\n\nconst isNotMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nconst actions = {\n setOpen: 'setOpen',\n setSearch: 'setSearch',\n highlightIndex: 'highlightIndex',\n};\n\nconst initialState = {\n searchValue: '',\n resolvedSearchValue: '',\n isOpen: false,\n highlightedIndex: 0,\n scrollToHighlighted: false,\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(\n params: SelectProps<ITEM, GROUP, MULTIPLE>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n multiple = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n getGroupKey,\n sortGroups,\n getItemDisabled,\n onFocus,\n onBlur,\n searchValue: searchValueProp,\n withoutClearSearch,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isFocused, setIsFocused] = useState(false);\n\n const value =\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [];\n\n const [\n {\n searchValue,\n isOpen,\n highlightedIndex,\n resolvedSearchValue,\n scrollToHighlighted,\n },\n setState,\n ] = useHoistedState(initialState);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = React.useMemo(() => {\n if (resolvedSearchValue && resolvedSearchValue !== '') {\n const fiteredOptions = items.filter((item) =>\n searchFunction\n ? searchFunction(item, resolvedSearchValue)\n : searchFunctionDefault(item, resolvedSearchValue),\n );\n\n const matchWithValueSearch = Boolean(\n items.find(\n (option) =>\n getItemLabel(option).toString().toLowerCase() ===\n resolvedSearchValue.toLocaleLowerCase(),\n ),\n );\n\n const optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !matchWithValueSearch ? optionForCreate : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue]);\n\n const visibleItems = useMemo(() => {\n const resultGroups = getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n filteredOptions,\n groups,\n getItemGroupKey,\n getGroupKey,\n sortGroups,\n optionForCreate,\n ]);\n\n const notFound = useMemo(() => {\n let flag = false;\n if (searchValue.length > 0) {\n flag =\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) || group.items.length > 0 || group.group,\n ).length === 0 && !params.onCreate;\n }\n return flag;\n }, [visibleItems]);\n\n const hasItems = items.length !== 0;\n\n const getSelectedOptionIndex = (): number => {\n let index = 0;\n if (value.length > 0) {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n index++;\n // eslint-disable-next-line no-continue\n continue;\n }\n for (const item of group.items) {\n if (getItemKey(item) === getItemKey(value[0])) {\n return index;\n }\n index++;\n }\n }\n }\n\n return 0;\n };\n\n // Actions\n\n const setOpen = React.useCallback(\n (newIsOpen: boolean) => {\n setState(\n (old) => ({\n ...old,\n isOpen: newIsOpen,\n }),\n actions.setOpen,\n );\n },\n [setState],\n );\n\n const setResolvedSearch = useDebounce((value: string) => {\n setState(\n (old) => ({\n ...old,\n resolvedSearchValue: value,\n }),\n actions.setSearch,\n );\n }, 300);\n\n const setSearch = React.useCallback(\n (value: string) => {\n setState(\n (old) => ({\n ...old,\n searchValue: value,\n }),\n actions.setSearch,\n );\n setResolvedSearch(value);\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n React.useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef);\n }\n }\n });\n\n const highlightIndex = React.useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n return {\n ...old,\n highlightedIndex: Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n optionForCreate\n ? filteredOptions.length\n : filteredOptions.length - 1,\n ),\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n const removeValue = (e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n if (isMultipleParams(params)) {\n const newValue = params.value?.filter(\n (item) => getItemKey(item) !== getItemKey(valueItem),\n );\n params.onChange({\n e,\n value: newValue?.length ? newValue : null,\n });\n }\n };\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (getItemDisabled && getItemDisabled(item)) {\n return;\n }\n if (isMultipleParams(params)) {\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n params.onChange({ value: newValue.length ? newValue : null, e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange({ value: item, e });\n setOpen(false);\n }\n !withoutClearSearch && setSearch('');\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate({ e, label });\n setOpen(false);\n !withoutClearSearch && setSearch('');\n };\n\n // Handlers\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled && !(!multiple && value.length > 0)) {\n setSearch(e.target.value);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\n !withoutClearSearch && setSearch('');\n }\n };\n\n const clearValue = (e: React.SyntheticEvent) => {\n params.onChange({ value: null, e });\n !withoutClearSearch && setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getItem = (index: number) => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return group;\n }\n if (group.items.length + couter > index) {\n return group.items[index - couter];\n }\n couter += group.items.length;\n }\n return undefined;\n };\n\n const item = getItem(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n }\n };\n\n const Escape = (): void => {\n setOpen(false);\n };\n\n const Tab = (): void => {\n setOpen(false);\n };\n\n const Backspace: KeyHandler = (_, e): void => {\n if (searchValue) {\n return;\n }\n if (multiple) {\n removeValue(e, value[value.length - 1]);\n } else {\n clearValue(e);\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n Backspace,\n });\n\n const getOptionProps = ({\n index,\n item,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e: React.SyntheticEvent) => {\n onCreate(e, item.label);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: '__optionForCreate',\n };\n }\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: Boolean(value.find((item) => getItemKey(item) === key)),\n hovered: index === highlightedIndex,\n key,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [dropdownRef, controlRef],\n handler: () => {\n setOpen(false);\n },\n });\n\n React.useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n React.useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n React.useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef);\n }\n }, [highlightedIndex]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isFocused) {\n setIsFocused(true);\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (isFocused) {\n setIsFocused(false);\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n const handleToggleDropdown = (): void => {\n if (isOpen) {\n setOpen(false);\n setIsFocused(false);\n } else {\n setOpen(true);\n setIsFocused(true);\n inputRef.current?.focus();\n }\n };\n\n useEffect(() => {\n if (searchValueProp) {\n setSearch(searchValueProp);\n }\n }, [searchValueProp]);\n\n useEffect(() => {\n if (searchValue) {\n setOpen(true);\n }\n }, [searchValue]);\n\n return {\n isOpen,\n isFocused,\n highlightedIndex,\n visibleItems,\n highlightIndex,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n handleInputClick,\n inputRef,\n getKeyProps,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelect.js","names":["React","useEffect","useMemo","useRef","useState","getGroups","useClickOutside","useDebounce","useKeys","usePrevious","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","withoutClearSearch","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","matchWithValueSearch","find","option","toString","toLowerCase","onCreate","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","length","notFound","flag","group","hasItems","getSelectedOptionIndex","index","useCallback","newIsOpen","old","setResolvedSearch","prevIsOpen","useLayoutEffect","currentHighlightIndex","indexForHighlight","Math","min","max","removeValue","e","valueItem","stopPropagation","newValue","onChange","some","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getItem","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","getOptionProps","onClick","onMouseEnter","active","hovered","key","handleInputFocus","handleInputBlur","current","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../src/hooks/useSelect/useSelect.ts"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { getGroups } from '../../utils/getGroups';\nimport { useClickOutside } from '../useClickOutside/useClickOutside';\nimport { useDebounce } from '../useDebounce/useDebounce';\nimport { KeyHandler, useKeys } from '../useKeys/useKeys';\nimport { usePrevious } from '../usePrevious/usePrevious';\nimport { scrollToIndex, useHoistedState } from './helpers';\n\ntype IndexForHighlight = number | ((oldIndex: number) => number);\n\ntype Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\ntype GetItemGroupKey<ITEM> = (item: ITEM) => string | number | undefined;\ntype GetGroupKey<GROUP> = (item: GROUP) => string | number | undefined;\ntype SortGroups<ITEM, GROUP> = (\n a: Group<ITEM, GROUP>,\n b: Group<ITEM, GROUP>,\n) => number;\n\ntype OnChangeProp<ITEM, MULTIPLE extends boolean> = (props: {\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null;\n e: React.SyntheticEvent;\n}) => void;\n\ntype ValueProp<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type OptionForCreate = {\n label: string;\n __optionForCreate: boolean;\n};\n\nexport type SelectProps<ITEM, GROUP, MULTIPLE extends boolean> = {\n getItemGroupKey?: GetItemGroupKey<ITEM> | undefined;\n getGroupKey?: GetGroupKey<GROUP>;\n sortGroups?: SortGroups<ITEM, GROUP>;\n groups?: GROUP[];\n items: ITEM[];\n dropdownRef: React.MutableRefObject<HTMLDivElement | null>;\n controlRef: React.MutableRefObject<HTMLDivElement | null>;\n disabled?: boolean;\n getItemLabel: (item: ITEM) => string;\n getItemKey: (item: ITEM) => string | number;\n getItemDisabled?: (item: ITEM) => boolean | undefined;\n searchFunction?: (item: ITEM, searchValue: string) => boolean;\n onCreate?: (props: { e: React.SyntheticEvent; label: string }) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n withoutClearSearch?: boolean;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate;\n};\n\nexport type GetOptionPropsResult = {\n onClick: (e: React.SyntheticEvent) => void;\n onMouseEnter: (e: React.SyntheticEvent) => void;\n active: boolean;\n hovered: boolean;\n key: string | number;\n};\n\nconst isMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, true> => {\n return params.multiple;\n};\n\nconst isNotMultipleParams = <ITEM, GROUP>(\n params: SelectProps<ITEM, GROUP, boolean>,\n): params is SelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nconst actions = {\n setOpen: 'setOpen',\n setSearch: 'setSearch',\n highlightIndex: 'highlightIndex',\n};\n\nconst initialState = {\n searchValue: '',\n resolvedSearchValue: '',\n isOpen: false,\n highlightedIndex: 0,\n scrollToHighlighted: false,\n};\n\nexport const isOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP> | ITEM,\n): params is OptionForCreate => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport function useSelect<ITEM, GROUP, MULTIPLE extends boolean>(\n params: SelectProps<ITEM, GROUP, MULTIPLE>,\n) {\n const {\n items,\n dropdownRef,\n controlRef,\n disabled = false,\n multiple = false,\n getItemLabel,\n getItemKey,\n searchFunction,\n getItemGroupKey,\n groups,\n getGroupKey,\n sortGroups,\n getItemDisabled,\n onFocus,\n onBlur,\n searchValue: searchValueProp,\n withoutClearSearch,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const [isFocused, setIsFocused] = useState(false);\n\n const value =\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [];\n\n const [\n {\n searchValue,\n isOpen,\n highlightedIndex,\n resolvedSearchValue,\n scrollToHighlighted,\n },\n setState,\n ] = useHoistedState(initialState);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = React.useMemo(() => {\n if (resolvedSearchValue && resolvedSearchValue !== '') {\n const fiteredOptions = items.filter((item) =>\n searchFunction\n ? searchFunction(item, resolvedSearchValue)\n : searchFunctionDefault(item, resolvedSearchValue),\n );\n\n const matchWithValueSearch = Boolean(\n items.find(\n (option) =>\n getItemLabel(option).toString().toLowerCase() ===\n resolvedSearchValue.toLocaleLowerCase(),\n ),\n );\n\n const optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !matchWithValueSearch ? optionForCreate : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue]);\n\n const visibleItems = useMemo(() => {\n const resultGroups = getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n filteredOptions,\n groups,\n getItemGroupKey,\n getGroupKey,\n sortGroups,\n optionForCreate,\n ]);\n\n const notFound = useMemo(() => {\n let flag = false;\n if (searchValue.length > 0) {\n flag =\n visibleItems.filter(\n (group) =>\n isOptionForCreate(group) || group.items.length > 0 || group.group,\n ).length === 0 && !params.onCreate;\n }\n return flag;\n }, [visibleItems]);\n\n const hasItems = items.length !== 0;\n\n const getSelectedOptionIndex = (): number => {\n let index = 0;\n if (value.length > 0) {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n index++;\n // eslint-disable-next-line no-continue\n continue;\n }\n for (const item of group.items) {\n if (getItemKey(item) === getItemKey(value[0])) {\n return index;\n }\n index++;\n }\n }\n }\n\n return 0;\n };\n\n // Actions\n\n const setOpen = React.useCallback(\n (newIsOpen: boolean) => {\n setState(\n (old) => ({\n ...old,\n isOpen: newIsOpen,\n }),\n actions.setOpen,\n );\n },\n [setState],\n );\n\n const setResolvedSearch = useDebounce((value: string) => {\n setState(\n (old) => ({\n ...old,\n resolvedSearchValue: value,\n }),\n actions.setSearch,\n );\n }, 300);\n\n const setSearch = React.useCallback(\n (value: string) => {\n setState(\n (old) => ({\n ...old,\n searchValue: value,\n }),\n actions.setSearch,\n );\n setResolvedSearch(value);\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n React.useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef);\n }\n }\n });\n\n const highlightIndex = React.useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n return {\n ...old,\n highlightedIndex: Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n optionForCreate\n ? filteredOptions.length\n : filteredOptions.length - 1,\n ),\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n const removeValue = (e: React.SyntheticEvent, valueItem: ITEM) => {\n e.stopPropagation();\n if (isMultipleParams(params)) {\n const newValue = params.value?.filter(\n (item) => getItemKey(item) !== getItemKey(valueItem),\n );\n params.onChange({\n e,\n value: newValue?.length ? newValue : null,\n });\n }\n };\n\n const onChange = (e: React.SyntheticEvent, item: ITEM) => {\n if (getItemDisabled && getItemDisabled(item)) {\n return;\n }\n if (isMultipleParams(params)) {\n const newValue = value.some(\n (value) => getItemKey(value) === getItemKey(item),\n )\n ? value.filter((value) => getItemKey(value) !== getItemKey(item))\n : [...value, item];\n params.onChange({ value: newValue.length ? newValue : null, e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange({ value: item, e });\n setOpen(false);\n }\n !withoutClearSearch && setSearch('');\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate({ e, label });\n setOpen(false);\n !withoutClearSearch && setSearch('');\n };\n\n // Handlers\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n if (!disabled && !(!multiple && value.length > 0)) {\n setSearch(e.target.value);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\n !withoutClearSearch && setSearch('');\n }\n };\n\n const clearValue = (e: React.SyntheticEvent) => {\n !withoutClearSearch && setSearch('');\n if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n params.onChange({\n value: results && results.length > 0 ? results : null,\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange({ value: null, e });\n }\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const getItem = (index: number) => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return group;\n }\n if (group.items.length + couter > index) {\n return group.items[index - couter];\n }\n couter += group.items.length;\n }\n return undefined;\n };\n\n const item = getItem(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (item) {\n onChange(e, item);\n }\n }\n };\n\n const Escape = (): void => {\n setOpen(false);\n };\n\n const Tab = (): void => {\n setOpen(false);\n };\n\n const Backspace: KeyHandler = (_, e): void => {\n if (searchValue) {\n return;\n }\n if (multiple) {\n removeValue(e, value[value.length - 1]);\n } else {\n clearValue(e);\n }\n };\n\n const getKeyProps = useKeys({\n ArrowUp,\n ArrowDown,\n PageUp: ArrowUp,\n PageDown: ArrowDown,\n Home: ArrowUp,\n End: ArrowDown,\n Enter,\n Escape,\n Tab,\n Backspace,\n });\n\n const getOptionProps = ({\n index,\n item,\n }: OptionProps<ITEM>): GetOptionPropsResult => {\n if (isOptionForCreate(item)) {\n return {\n onClick: (e: React.SyntheticEvent) => {\n onCreate(e, item.label);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: '__optionForCreate',\n };\n }\n const key = getItemKey(item);\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChange(e, item);\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: Boolean(value.find((item) => getItemKey(item) === key)),\n hovered: index === highlightedIndex,\n key,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [dropdownRef, controlRef],\n handler: () => {\n setOpen(false);\n },\n });\n\n React.useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n React.useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n React.useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef);\n }\n }, [highlightedIndex]);\n\n const handleInputFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (!disabled) {\n if (!isFocused) {\n setIsFocused(true);\n }\n if (typeof onFocus === 'function') {\n onFocus(e);\n }\n }\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\n if (isOpen) {\n inputRef.current?.focus();\n return;\n }\n\n if (isFocused) {\n setIsFocused(false);\n }\n\n if (typeof onBlur === 'function') {\n onBlur(e);\n }\n };\n\n const handleToggleDropdown = (): void => {\n if (isOpen) {\n setOpen(false);\n setIsFocused(false);\n } else {\n setOpen(true);\n setIsFocused(true);\n inputRef.current?.focus();\n }\n };\n\n useEffect(() => {\n if (searchValueProp) {\n setSearch(searchValueProp);\n }\n }, [searchValueProp]);\n\n return {\n isOpen,\n isFocused,\n highlightedIndex,\n visibleItems,\n highlightIndex,\n getOptionProps,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n handleInputClick,\n inputRef,\n getKeyProps,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n };\n}\n"],"mappings":"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"}
|