@consta/uikit 4.21.0 → 4.22.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/Avatar/Avatar.css +1 -1
- package/__internal__/src/components/Badge/Badge.css +1 -1
- package/__internal__/src/components/Button/Button.css +1 -1
- package/__internal__/src/components/Checkbox/Checkbox.css +2 -2
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.css +1 -1
- package/__internal__/src/components/Collapse/Collapse.css +1 -1
- package/__internal__/src/components/Collapse/Collapse.js +1 -1
- package/__internal__/src/components/Collapse/Collapse.js.map +1 -1
- package/__internal__/src/components/Collapse/types.d.ts +2 -6
- package/__internal__/src/components/Collapse/types.js.map +1 -1
- package/__internal__/src/components/CollapseGroup/helpers.d.ts +2 -2
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js.map +1 -1
- package/__internal__/src/components/Select/Select.js +1 -1
- package/__internal__/src/components/Select/Select.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectContainer/SelectContainer.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectContainer/SelectContainer.js.map +1 -1
- package/__internal__/src/components/Steps/Steps.js +1 -1
- package/__internal__/src/components/Steps/Steps.js.map +1 -1
- package/__internal__/src/components/Steps/StepsStep/StepsStep.css +1 -1
- package/__internal__/src/components/Steps/StepsStep/StepsStep.d.ts +1 -0
- package/__internal__/src/components/Steps/StepsStep/StepsStep.js +1 -1
- package/__internal__/src/components/Steps/StepsStep/StepsStep.js.map +1 -1
- package/__internal__/src/components/Steps/helper.d.ts +1 -1
- package/__internal__/src/components/Steps/types.d.ts +1 -1
- package/__internal__/src/components/Steps/types.js +1 -1
- package/__internal__/src/components/Steps/types.js.map +1 -1
- package/__internal__/src/components/TagBase/TagBase.css +1 -1
- package/__internal__/src/components/TextField/TextField.js +1 -1
- package/__internal__/src/components/TextField/TextField.js.map +1 -1
- package/__internal__/src/components/Tooltip/Tooltip.css +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.js +1 -1
- package/__internal__/src/hooks/useSelect/useSelect.js.map +1 -1
- package/__internal__/src/mixs/MixPopoverArrow/MixPopoverArrow.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","names":["IconClose","IconEye","IconEyeClose","IconSelect","IconSelectOpen","React","forwardRef","useCallback","useEffect","TextAreaAutoSize","useFlag","useForkRef","useMutableRef","useSortSteps","cn","getByMap","isString","usePropsHandler","FieldCaption","FieldLabel","getIncrementFlag","getTypeForRender","getValueByStep","sizeMap","textFieldPropFormDefault","textFieldPropSizeDefault","textFieldPropViewDefault","textFieldPropWidthDefault","COMPONENT_NAME","cnTextField","TextFieldRender","props","ref","textFieldRef","useRef","inputRef","className","type","value","onChange","id","name","rows","cols","minRows","maxRows","inputRefProp","maxLength","disabled","size","view","form","state","status","width","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSizeProp","iconSize","focused","onClick","onKeyDownProp","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","otherProps","focus","setFocus","passwordVisible","setPasswordVisuble","valueRef","onClickRef","onChangeRef","handleEyeClick","e","stopPropagation","toggle","current","LeftIcon","RightIcon","leftSideIsString","rightSideIsString","sortedSteps","handleChange","target","handleFocus","on","commonProps","handleBlur","off","toString","Eye","textareaProps","inputProps","Array","isArray","flag","preventDefault","handleClear","changeNumberValue","isIncrement","rootProps","selectionStart","length","withValue","position","TextField"],"sources":["../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import './TextField.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconEye } from '@consta/icons/IconEye';\nimport { IconEyeClose } from '@consta/icons/IconEyeClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport { IconSelectOpen } from '@consta/icons/IconSelectOpen';\nimport React, { forwardRef, useCallback, useEffect } from 'react';\nimport TextAreaAutoSize from 'react-textarea-autosize';\n\nimport { useFlag } from '../../hooks/useFlag/useFlag';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useMutableRef } from '../../hooks/useMutableRef/useMutableRef';\nimport { useSortSteps } from '../../hooks/useSortSteps/useSortSteps';\nimport { cn } from '../../utils/bem';\nimport { getByMap } from '../../utils/getByMap';\nimport { isString } from '../../utils/type-guards';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '../FieldCaption/FieldCaption';\nimport { FieldLabel } from '../FieldLabel/FieldLabel';\nimport {\n getIncrementFlag,\n getTypeForRender,\n getValueByStep,\n sizeMap,\n} from './helpers';\nimport {\n TextFieldComponent,\n textFieldPropFormDefault,\n TextFieldProps,\n textFieldPropSizeDefault,\n textFieldPropViewDefault,\n textFieldPropWidthDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'TextField' as const;\nexport const cnTextField = cn(COMPONENT_NAME);\n\nexport const TextFieldRender = <TYPE extends string>(\n props: TextFieldProps<TYPE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const textFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n const {\n className,\n type = 'text',\n value,\n onChange,\n id,\n name,\n rows,\n cols,\n minRows,\n maxRows,\n inputRef: inputRefProp,\n maxLength,\n disabled,\n size = textFieldPropSizeDefault,\n view = textFieldPropViewDefault,\n form = textFieldPropFormDefault,\n state,\n status,\n width = textFieldPropWidthDefault,\n onBlur,\n onFocus,\n autoFocus = false,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n withClearButton,\n incrementButtons = true,\n max,\n min,\n readOnly,\n required,\n step = 1,\n tabIndex,\n ariaLabel,\n label,\n labelIcon,\n inputContainerRef,\n labelPosition = 'top',\n caption,\n iconSize: iconSizeProp,\n focused,\n onClick,\n // onkey props\n onKeyDown: onKeyDownProp,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, textFieldRef);\n const [focus, setFocus] = useFlag(autoFocus);\n const [passwordVisible, setPasswordVisuble] = useFlag(false);\n\n const valueRef = useMutableRef(value);\n const onClickRef = useMutableRef(onClick);\n const onChangeRef = useMutableRef(onChange);\n\n const handleEyeClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n e.stopPropagation();\n setPasswordVisuble.toggle();\n inputRef.current?.focus();\n },\n [],\n );\n\n const textarea = type === 'textarea';\n const LeftIcon = leftSide;\n const RightIcon = rightSide;\n const leftSideIsString = isString(leftSide);\n const rightSideIsString = isString(rightSide);\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n const sortedSteps = useSortSteps({\n step,\n min: Number(min),\n max: Number(max),\n });\n\n const handleChange: React.ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = useCallback(\n (e) => {\n !disabled &&\n onChangeRef.current?.({ e, id, name, value: e.target.value || null });\n },\n [id, name, disabled],\n );\n\n const handleBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.off();\n onBlur?.(e);\n };\n\n const handleFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.on();\n onFocus?.(e);\n };\n\n const commonProps = {\n 'className': cnTextField('Input'),\n 'value': value || '',\n 'onChange': handleChange,\n maxLength,\n disabled,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n autoFocus,\n placeholder,\n autoComplete,\n readOnly,\n tabIndex,\n name,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n 'id': id ? id.toString() : '',\n 'aria-label': ariaLabel,\n };\n\n const Eye = passwordVisible ? IconEyeClose : IconEye;\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n const flag = getIncrementFlag(e);\n onKeyDownProp?.(e);\n if (type === 'number' && typeof flag === 'boolean' && !disabled) {\n e.preventDefault();\n onChangeRef.current?.({\n e,\n id,\n name,\n value: getValueByStep(sortedSteps, value, flag, min, max),\n });\n }\n };\n\n const textareaProps = {\n rows,\n cols,\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n ref: useForkRef([inputRef, inputRefProp]) as (\n node: HTMLTextAreaElement,\n ) => void,\n };\n\n const inputProps = {\n type: getTypeForRender(type, passwordVisible),\n max,\n min,\n step: !Array.isArray(sortedSteps) ? sortedSteps : 0,\n onKeyDown,\n ref: useForkRef([\n inputRef,\n inputRefProp,\n ]) as React.RefCallback<HTMLInputElement>,\n };\n\n const handleClear = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n onChangeRef.current?.({\n e,\n id,\n name,\n value: null,\n });\n }, []);\n\n const changeNumberValue = (\n e: React.MouseEvent<HTMLButtonElement>,\n isIncrement = true,\n ) => {\n onChangeRef.current?.({\n e,\n id,\n name,\n value: getValueByStep(sortedSteps, value, isIncrement, min, max),\n });\n };\n\n const rootProps = {\n onClick: useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n inputRef.current?.focus();\n onClickRef.current?.(e);\n }, []),\n };\n\n // при смене passwordVible, перемещаем курсор в конец строки\n useEffect(() => {\n if (type === 'password' && inputRef.current) {\n inputRef.current.selectionStart = valueRef.current?.length || 0;\n }\n }, [passwordVisible]);\n\n return (\n <div\n className={cnTextField({ labelPosition, size, view, width }, [className])}\n ref={useForkRef([ref, textFieldRef])}\n {...rootProps}\n {...otherProps}\n >\n {label && (\n <FieldLabel\n icon={labelIcon}\n required={required}\n className={cnTextField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnTextField('Body')}>\n <div\n ref={inputContainerRef}\n className={cnTextField('InputContainer', {\n view,\n form,\n status: status || state,\n disabled,\n type,\n focus: focus || focused,\n withValue: !!value,\n })}\n >\n {LeftIcon && (\n <div\n className={cnTextField('Side', {\n position: 'left',\n type: leftSideIsString ? 'string' : 'icon',\n })}\n title={typeof leftSide === 'string' ? leftSide : undefined}\n >\n {leftSideIsString ? (\n leftSide\n ) : (\n <LeftIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n {textarea ? (\n <TextAreaAutoSize {...commonProps} {...textareaProps} />\n ) : (\n <input {...commonProps} {...inputProps} />\n )}\n\n {type === 'number' && incrementButtons && (\n <div className={cnTextField('Counter')}>\n <button\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, true)}\n type=\"button\"\n className={cnTextField('CounterButton')}\n >\n <IconSelectOpen size=\"xs\" />\n </button>\n <button\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, false)}\n type=\"button\"\n className={cnTextField('CounterButton')}\n >\n <IconSelect size=\"xs\" />\n </button>\n </div>\n )}\n\n {value && withClearButton && type !== 'number' && (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleClear}\n className={cnTextField('ClearButton')}\n >\n <IconClose size=\"xs\" className={cnTextField('ClearButtonIcon')} />\n </button>\n )}\n\n {type === 'password' && value && (\n <button\n className={cnTextField('ClearButton')}\n type=\"button\"\n onClick={handleEyeClick}\n >\n <Eye className={cnTextField('Icon')} size={iconSize} />\n </button>\n )}\n\n {RightIcon && type !== 'number' && type !== 'password' && (\n <div\n className={cnTextField('Side', {\n position: 'right',\n type: rightSideIsString ? 'string' : 'icon',\n })}\n title={typeof rightSide === 'string' ? rightSide : undefined}\n >\n {rightSideIsString ? (\n rightSide\n ) : (\n <RightIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption\n className={cnTextField('Caption')}\n status={status || state}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n};\n\nexport const TextField = forwardRef(TextFieldRender) as TextFieldComponent;\nexport * from './types';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TextField.js","names":["IconClose","IconEye","IconEyeClose","IconSelect","IconSelectOpen","React","forwardRef","useCallback","useEffect","TextAreaAutoSize","useFlag","useForkRef","useMutableRef","useSortSteps","cn","getByMap","isString","usePropsHandler","FieldCaption","FieldLabel","getIncrementFlag","getTypeForRender","getValueByStep","sizeMap","textFieldPropFormDefault","textFieldPropSizeDefault","textFieldPropViewDefault","textFieldPropWidthDefault","COMPONENT_NAME","cnTextField","TextFieldRender","props","ref","textFieldRef","useRef","inputRef","className","type","value","onChange","id","name","rows","cols","minRows","maxRows","inputRefProp","maxLength","disabled","size","view","form","state","status","width","onBlur","onFocus","autoFocus","placeholder","leftSide","rightSide","autoComplete","withClearButton","incrementButtons","max","min","readOnly","required","step","tabIndex","ariaLabel","label","labelIcon","inputContainerRef","labelPosition","caption","iconSizeProp","iconSize","focused","onClick","onKeyDownProp","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","otherProps","focus","setFocus","passwordVisible","setPasswordVisuble","valueRef","onClickRef","onChangeRef","handleEyeClick","e","stopPropagation","toggle","current","LeftIcon","RightIcon","leftSideIsString","rightSideIsString","sortedSteps","handleChange","target","handleFocus","on","commonProps","handleBlur","off","toString","Eye","textareaProps","inputProps","Array","isArray","flag","preventDefault","handleClear","changeNumberValue","isIncrement","rootProps","selectionStart","length","withValue","position","TextField"],"sources":["../../../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import './TextField.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconEye } from '@consta/icons/IconEye';\nimport { IconEyeClose } from '@consta/icons/IconEyeClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport { IconSelectOpen } from '@consta/icons/IconSelectOpen';\nimport React, { forwardRef, useCallback, useEffect } from 'react';\nimport TextAreaAutoSize from 'react-textarea-autosize';\n\nimport { useFlag } from '../../hooks/useFlag/useFlag';\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useMutableRef } from '../../hooks/useMutableRef/useMutableRef';\nimport { useSortSteps } from '../../hooks/useSortSteps/useSortSteps';\nimport { cn } from '../../utils/bem';\nimport { getByMap } from '../../utils/getByMap';\nimport { isString } from '../../utils/type-guards';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { FieldCaption } from '../FieldCaption/FieldCaption';\nimport { FieldLabel } from '../FieldLabel/FieldLabel';\nimport {\n getIncrementFlag,\n getTypeForRender,\n getValueByStep,\n sizeMap,\n} from './helpers';\nimport {\n TextFieldComponent,\n textFieldPropFormDefault,\n TextFieldProps,\n textFieldPropSizeDefault,\n textFieldPropViewDefault,\n textFieldPropWidthDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'TextField' as const;\nexport const cnTextField = cn(COMPONENT_NAME);\n\nexport const TextFieldRender = <TYPE extends string>(\n props: TextFieldProps<TYPE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const textFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n const {\n className,\n type = 'text',\n value,\n onChange,\n id,\n name,\n rows,\n cols,\n minRows,\n maxRows,\n inputRef: inputRefProp,\n maxLength,\n disabled,\n size = textFieldPropSizeDefault,\n view = textFieldPropViewDefault,\n form = textFieldPropFormDefault,\n state,\n status,\n width = textFieldPropWidthDefault,\n onBlur,\n onFocus,\n autoFocus = false,\n placeholder,\n leftSide,\n rightSide,\n autoComplete,\n withClearButton,\n incrementButtons = true,\n max,\n min,\n readOnly,\n required,\n step = 1,\n tabIndex,\n ariaLabel,\n label,\n labelIcon,\n inputContainerRef,\n labelPosition = 'top',\n caption,\n iconSize: iconSizeProp,\n focused,\n onClick,\n // onkey props\n onKeyDown: onKeyDownProp,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, props, textFieldRef);\n const [focus, setFocus] = useFlag(autoFocus);\n const [passwordVisible, setPasswordVisuble] = useFlag(false);\n\n const valueRef = useMutableRef(value);\n const onClickRef = useMutableRef(onClick);\n const onChangeRef = useMutableRef(onChange);\n\n const handleEyeClick = useCallback(\n (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n e.stopPropagation();\n setPasswordVisuble.toggle();\n inputRef.current?.focus();\n },\n [],\n );\n\n const textarea = type === 'textarea';\n const LeftIcon = leftSide;\n const RightIcon = rightSide;\n const leftSideIsString = isString(leftSide);\n const rightSideIsString = isString(rightSide);\n const iconSize = getByMap(sizeMap, size, iconSizeProp);\n\n const sortedSteps = useSortSteps({\n step,\n min: Number(min),\n max: Number(max),\n });\n\n const handleChange: React.ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = useCallback(\n (e) => {\n !disabled &&\n onChangeRef.current?.({ e, id, name, value: e.target.value || null });\n },\n [id, name, disabled],\n );\n\n const handleBlur: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.off();\n onBlur?.(e);\n };\n\n const handleFocus: React.FocusEventHandler<HTMLElement> = (e) => {\n setFocus.on();\n onFocus?.(e);\n };\n\n const commonProps = {\n 'className': cnTextField('Input'),\n 'value': value || '',\n 'onChange': handleChange,\n maxLength,\n disabled,\n 'onBlur': handleBlur,\n 'onFocus': handleFocus,\n autoFocus,\n placeholder,\n autoComplete,\n readOnly,\n tabIndex,\n name,\n onKeyDownCapture,\n onKeyPress,\n onKeyPressCapture,\n onKeyUp,\n onKeyUpCapture,\n 'id': id ? id.toString() : '',\n 'aria-label': ariaLabel,\n };\n\n const Eye = passwordVisible ? IconEyeClose : IconEye;\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n const flag = getIncrementFlag(e);\n onKeyDownProp?.(e);\n if (type === 'number' && typeof flag === 'boolean' && !disabled) {\n e.preventDefault();\n onChangeRef.current?.({\n e,\n id,\n name,\n value: getValueByStep(sortedSteps, value, flag, min, max),\n });\n }\n };\n\n const textareaProps = {\n rows,\n cols,\n minRows: minRows || rows,\n maxRows: maxRows || rows,\n ref: useForkRef([inputRef, inputRefProp]) as (\n node: HTMLTextAreaElement,\n ) => void,\n };\n\n const inputProps = {\n type: getTypeForRender(type, passwordVisible),\n max,\n min,\n step: !Array.isArray(sortedSteps) ? sortedSteps : 0,\n onKeyDown,\n ref: useForkRef([\n inputRef,\n inputRefProp,\n ]) as React.RefCallback<HTMLInputElement>,\n };\n\n const handleClear = useCallback((e: React.MouseEvent<HTMLButtonElement>) => {\n onChangeRef.current?.({\n e,\n id,\n name,\n value: null,\n });\n }, []);\n\n const changeNumberValue = (\n e: React.MouseEvent<HTMLButtonElement>,\n isIncrement = true,\n ) => {\n onChangeRef.current?.({\n e,\n id,\n name,\n value: getValueByStep(sortedSteps, value, isIncrement, min, max),\n });\n };\n\n const rootProps = {\n onClick: useCallback((e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n inputRef.current?.focus();\n onClickRef.current?.(e);\n }, []),\n };\n\n // при смене passwordVible, перемещаем курсор в конец строки\n useEffect(() => {\n if (type === 'password' && inputRef.current) {\n inputRef.current.selectionStart = valueRef.current?.length || 0;\n }\n }, [passwordVisible]);\n\n return (\n <div\n className={cnTextField({ labelPosition, size, view, width }, [className])}\n ref={useForkRef([ref, textFieldRef])}\n {...rootProps}\n {...otherProps}\n >\n {label && (\n <FieldLabel\n as=\"label\"\n htmlFor={id?.toString()}\n icon={labelIcon}\n required={required}\n className={cnTextField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnTextField('Body')}>\n <div\n ref={inputContainerRef}\n className={cnTextField('InputContainer', {\n view,\n form,\n status: status || state,\n disabled,\n type,\n focus: focus || focused,\n withValue: !!value,\n })}\n >\n {LeftIcon && (\n <div\n className={cnTextField('Side', {\n position: 'left',\n type: leftSideIsString ? 'string' : 'icon',\n })}\n title={typeof leftSide === 'string' ? leftSide : undefined}\n >\n {leftSideIsString ? (\n leftSide\n ) : (\n <LeftIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n {textarea ? (\n <TextAreaAutoSize {...commonProps} {...textareaProps} />\n ) : (\n <input {...commonProps} {...inputProps} />\n )}\n\n {type === 'number' && incrementButtons && (\n <div className={cnTextField('Counter')}>\n <button\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, true)}\n type=\"button\"\n className={cnTextField('CounterButton')}\n >\n <IconSelectOpen size=\"xs\" />\n </button>\n <button\n onFocus={handleFocus}\n onClick={(e) => changeNumberValue(e, false)}\n type=\"button\"\n className={cnTextField('CounterButton')}\n >\n <IconSelect size=\"xs\" />\n </button>\n </div>\n )}\n\n {value && withClearButton && type !== 'number' && (\n <button\n type=\"button\"\n disabled={disabled}\n onClick={handleClear}\n className={cnTextField('ClearButton')}\n >\n <IconClose size=\"xs\" className={cnTextField('ClearButtonIcon')} />\n </button>\n )}\n\n {type === 'password' && value && (\n <button\n className={cnTextField('ClearButton')}\n type=\"button\"\n onClick={handleEyeClick}\n >\n <Eye className={cnTextField('Icon')} size={iconSize} />\n </button>\n )}\n\n {RightIcon && type !== 'number' && type !== 'password' && (\n <div\n className={cnTextField('Side', {\n position: 'right',\n type: rightSideIsString ? 'string' : 'icon',\n })}\n title={typeof rightSide === 'string' ? rightSide : undefined}\n >\n {rightSideIsString ? (\n rightSide\n ) : (\n <RightIcon className={cnTextField('Icon')} size={iconSize} />\n )}\n </div>\n )}\n </div>\n {caption && (\n <FieldCaption\n className={cnTextField('Caption')}\n status={status || state}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n};\n\nexport const TextField = forwardRef(TextFieldRender) as TextFieldComponent;\nexport * from './types';\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.Tooltip{--tooltip-bg-color:var(--color-bg-default);--popover-arrow-bg-color:var(--tooltip-bg-color)
|
|
1
|
+
.Tooltip{--tooltip-bg-color:var(--color-bg-default);--popover-arrow-bg-color:var(--tooltip-bg-color)}.Tooltip_status_alert{--tooltip-bg-color:var(--color-bg-alert)}.Tooltip_status_warning{--tooltip-bg-color:var(--color-bg-warning)}.Tooltip_status_success{--tooltip-bg-color:var(--color-bg-success)}.Tooltip_status_normal{--tooltip-bg-color:var(--color-bg-normal)}.Tooltip[class*=status] .Tooltip-Content{text-shadow:var(--shadow-group)}.Tooltip-Background{background:var(--tooltip-bg-color);border-radius:var(--control-radius);bottom:0;box-shadow:var(--shadow-layer);left:0;position:absolute;right:0;top:0}.Tooltip-Content{box-sizing:border-box;padding:var(--space-xs);position:relative;width:100%}.Tooltip-Content_size_s{max-width:150px}.Tooltip-Content_size_m{max-width:260px}.Tooltip-Content_size_l{max-width:400px}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=_objectWithoutProperties(g,_excluded),ca=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))}}),da=ca.getKeyProps,ea=ca.getOptionProps,fa=ca.isOpen,ga=ca.visibleItems,ha=ca.isFocused,ia=ca.handleInputFocus,ja=ca.handleInputBlur,ka=ca.handleToggleDropdown,la=ca.inputRef,ma=ca.handleInputClick,na=ca.handleInputChange,oa=ca.searchValue,pa=ca.clearValue,qa=ca.getHandleRemoveValue,ra=ca.notFound,sa=ca.hasItems,ta=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=_objectWithoutProperties(g,_excluded),ca=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))}}),da=ca.getKeyProps,ea=ca.getOptionProps,fa=ca.isOpen,ga=ca.visibleItems,ha=ca.isFocused,ia=ca.handleInputFocus,ja=ca.handleInputBlur,ka=ca.handleToggleDropdown,la=ca.inputRef,ma=ca.handleInputClick,na=ca.handleInputChange,oa=ca.searchValue,pa=ca.clearValue,qa=ca.getHandleRemoveValue,ra=ca.notFound,sa=ca.hasItems,ta=p?"".concat(p,"-input"):p,ua=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},va=useForkRef([la,Q]),wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ua({item:a,handleRemove:qa(a)})}),isNotMultipleParams(a)&&a.value&&ua({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!oa&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},da(),{type:"text",name:C,id:ta,onFocus:ia,onBlur:ja,"aria-label":o,onChange:na,ref:va,className:cnSelect("Input",{size:z,hide:!Y&&!!m,multiple:Y,isUserSelect:!0}),value:oa,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ha,disabled:n,size:z,required:r,id:ta,view:x,type:"userselect",form:v,multiple:!0,ref:b,style:$},ba),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":fa,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:ma,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue",{isUserSelect:!0})},wa()):wa())),React.createElement("span",{className:cnSelect("Indicators")},m&&React.createElement("button",{type:"button",onClick:pa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ka},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},oa)),React.createElement(SelectDropdown,{isOpen:fa,size:z,controlRef:f,getOptionProps:ea,dropdownRef:t,form:aa,isLoading:q,className:A,renderItem:N||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(UserSelectItem,{label:G(b),subLabel:H(b),avatarUrl:I(b),active:c,hovered:d,size:z,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disable:K(b),multiple:Y})},getGroupLabel:M,visibleItems:ga,labelForNotFound:S,labelForCreate:U,notFound:ra,hasItems:sa,labelForEmptyItems:W,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var UserSelect=forwardRef(UserSelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=UserSelect.js.map
|
|
@@ -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","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":"ykBAAA,uCAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CAEA,OAASC,UAAT,yCACA,OAASC,SAAT,uCACA,OAASC,UAAT,oCACA,OAASC,eAAT,2CACA,OAASC,QAAT,oCACA,OACEC,qBADF,CAEEC,yBAFF,CAGEC,uBAHF,CAIEC,aAJF,mCAMA,OAASC,eAAT,2DACA,OAASC,cAAT,yDACA,OACEC,eADF,CAEEC,eAFF,CAGEC,eAHF,iCAKA,OAGEC,gBAHF,CAIEC,mBAJF,CAOEC,aAPF,CAUEC,kBAVF,iBAYA,OAASC,cAAT,uCACA,OAASC,eAAT,yCAEA,MAAO,IAAMC,eAAc,CAAG,YAAvB,CAEP,GAAMC,iBAAgB,CAAG,SAKvBC,CALuB,CAMvBC,CANuB,CAOpB,IACGC,EAAkB,CAAGzB,MAAM,CAAwB,IAAxB,CAD9B,CAEG0B,CAAe,CAAG1B,MAAM,CAAiB,IAAjB,CAF3B,CAGG2B,CAAsB,CAAG3B,MAAM,CAAiB,IAAjB,CAHlC,CAIG4B,CAAU,CAAG5B,MAAM,CAAwB,IAAxB,CAJtB,GA8CCI,eAAe,CAACiB,cAAD,CAAiBH,kBAAkB,CAACK,CAAD,CAAnC,CAA4CK,CAA5C,CA9ChB,CAODC,CAPC,GAODA,WAPC,CAQDC,CARC,GAQDA,MARC,CASDC,CATC,GASDA,OATC,CAUDC,CAVC,GAUDA,KAVC,CAWDC,CAXC,GAWDA,QAXC,CAYDC,CAZC,GAYDA,KAZC,CAaDC,CAbC,GAaDA,QAbC,CAcDC,CAdC,GAcDA,SAdC,CAeDC,CAfC,GAeDA,EAfC,CAgBDC,CAhBC,GAgBDA,SAhBC,CAiBDC,CAjBC,GAiBDA,QAjBC,KAkBDC,WAlBC,CAkBDA,CAlBC,YAkBaf,CAlBb,OAmBDgB,IAnBC,CAmBDA,CAnBC,YAmBM7B,eAnBN,OAoBD8B,IApBC,CAoBDA,CApBC,YAoBM5B,eApBN,OAqBD6B,IArBC,CAqBDA,CArBC,YAqBM9B,eArBN,GAsBD+B,CAtBC,GAsBDA,iBAtBC,CAuBYC,CAvBZ,GAuBDC,WAvBC,CAwBDC,CAxBC,GAwBDA,IAxBC,KAyBDC,MAzBC,CAyBDA,CAzBC,YAyBQ,EAzBR,GA0BDC,CA1BC,GA0BDA,UA1BC,CA2BDC,CA3BC,GA2BDA,YA3BC,CA4BDC,CA5BC,GA4BDA,eA5BC,CA6BDC,CA7BC,GA6BDA,gBA7BC,CA8BDC,CA9BC,GA8BDA,eA9BC,CA+BDC,CA/BC,GA+BDA,eA/BC,CAgCDC,CAhCC,GAgCDA,WAhCC,CAiCDC,CAjCC,GAiCDA,aAjCC,CAkCDC,CAlCC,GAkCDA,UAlCC,CAmCYC,CAnCZ,GAmCDC,WAnCC,CAoCDC,CApCC,GAoCDA,QApCC,CAqCSC,CArCT,GAqCDC,QArCC,KAsCDC,gBAtCC,CAsCDA,CAtCC,YAsCkBvD,uBAtClB,OAuCDwD,cAvCC,CAuCDA,CAvCC,YAuCgB1D,qBAvChB,OAwCD2D,kBAxCC,CAwCDA,CAxCC,YAwCoB1D,yBAxCpB,OAyCD2D,QAzCC,CAyCDA,CAzCC,eA0CDC,CA1CC,GA0CDA,cA1CC,CA2CDC,CA3CC,GA2CDA,KA3CC,KA4CDC,YA5CC,CA4CDA,EA5CC,YA4Cc,SA5Cd,GA6CEC,EA7CF,0CA2ECpE,SAAS,CAAC,CACZ8B,KAAK,CAALA,CADY,CAEZgB,MAAM,CAANA,CAFY,CAGZd,KAAK,CAALA,CAHY,CAIZD,QAAQ,CAARA,CAJY,CAKZO,WAAW,CAAXA,CALY,CAMZZ,UAAU,CAAVA,CANY,CAOZO,QAAQ,CAARA,CAPY,CAQZe,YAAY,CAAZA,CARY,CASZD,UAAU,CAAVA,CATY,CAUZM,WAAW,CAAXA,CAVY,CAWZF,eAAe,CAAfA,CAXY,CAYZP,WAAW,CAAED,CAZD,CAaZS,eAAe,CAAfA,CAbY,CAcZY,QAAQ,CAARA,CAdY,CAeZpC,MAAM,CAANA,CAfY,CAgBZC,OAAO,CAAPA,CAhBY,CAiBZ6B,QAAQ,CAARA,CAjBY,CAkBZO,cAAc,CAAEA,CAAc,EA7CF,QAAxBI,sBAAwB,CAACC,CAAD,CAAa1B,CAAb,CAA8C,CAC1E,GAAM2B,EAAa,CAAGxD,aAAa,CAAC6B,CAAD,CAAcI,CAAY,CAACsB,CAAD,CAA1B,CAAnC,CAD0E,MAGtEC,EAHsE,CAIjEA,CAJiE,CAOnExD,aAAa,CAAC6B,CAAD,CAAcK,CAAe,CAACqB,CAAD,CAA7B,CACrB,CAmBa,CAAD,CA3EV,CA2DDE,EA3DC,IA2DDA,WA3DC,CA4DDC,EA5DC,IA4DDA,cA5DC,CA6DDC,EA7DC,IA6DDA,MA7DC,CA8DDC,EA9DC,IA8DDA,YA9DC,CA+DDC,EA/DC,IA+DDA,SA/DC,CAgEDC,EAhEC,IAgEDA,gBAhEC,CAiEDC,EAjEC,IAiEDA,eAjEC,CAkEDC,EAlEC,IAkEDA,oBAlEC,CAmEDnB,EAnEC,IAmEDA,QAnEC,CAoEDoB,EApEC,IAoEDA,gBApEC,CAqEDC,EArEC,IAqEDA,iBArEC,CAsEDrC,EAtEC,IAsEDA,WAtEC,CAuEDsC,EAvEC,IAuEDA,UAvEC,CAwEDC,EAxEC,IAwEDA,oBAxEC,CAyEDC,EAzEC,IAyEDA,QAzEC,CA0EDC,EA1EC,IA0EDA,QA1EC,CAsIG5B,EAAW,CAAGD,CAAe,EAlBe,QAA5C8B,mBAA4C,GAG5C,IAFJhB,EAEI,GAFJA,IAEI,CADJiB,CACI,GADJA,YACI,CACJ,MACE,qBAAC,eAAD,EACE,KAAK,CAAEvC,CAAY,CAACsB,CAAD,CADrB,CAEE,QAAQ,CAAErB,CAAe,CAACqB,CAAD,CAF3B,CAGE,SAAS,CAAEpB,CAAgB,CAACoB,CAAD,CAH7B,CAIE,GAAG,CAAEvB,CAAU,CAACuB,CAAD,CAJjB,CAKE,IAAI,CAAE7B,CALR,CAME,YAAY,CAAE8C,CANhB,CAOE,QAAQ,CAAEvB,CAPZ,CAQE,QAAQ,CAAE/B,CAAQ,EAAImB,CAAe,CAACkB,CAAD,CARvC,EAWH,CApIE,CAwIGkB,EAAiB,CAAGzF,UAAU,CAAC,CAAC6D,EAAD,CAAWD,CAAX,CAAD,CAxIjC,CA0IG8B,EAAkB,CAAG,UAAM,CAC/B,GAAMC,EAAK,CAAG1B,CAAQ,CAClBzD,aAAa,CAACiB,CAAD,CAAkBC,CAAlB,CADK,OAAtB,CAGA,MACE,yCACGZ,gBAAgB,CAACQ,CAAD,CAAhB,EACCsE,KAAK,CAACC,OAAN,CAAcvE,CAAK,CAACW,KAApB,CADD,EAECX,CAAK,CAACW,KAAN,CAAY6D,GAAZ,CAAgB,SAACvB,CAAD,QACdb,GAAW,CAAC,CAAEa,IAAI,CAAJA,CAAF,CAAQiB,YAAY,CAAEJ,EAAoB,CAACb,CAAD,CAA1C,CAAD,CADG,CAAhB,CAHJ,CAMGxD,mBAAmB,CAACO,CAAD,CAAnB,EACCA,CAAK,CAACW,KADP,EAECyB,EAAW,CAAC,CAAEa,IAAI,CAAEjD,CAAK,CAACW,KAAd,CAAD,CARf,CASG,CAAC,CAACA,CAAD,EAAW2D,KAAK,CAACC,OAAN,CAAc5D,CAAd,GAAyC,CAAjB,GAAAA,CAAK,CAAC8D,MAA1C,GACC,CAAClD,EADF,EAECjB,CAFD,EAGG,4BAAM,SAAS,CAAExB,QAAQ,CAAC,aAAD,CAAzB,CAA0C,KAAK,CAAC,aAAhD,EACGwB,CADH,CAZN,CAgBE,6CACM6C,EAAW,EADjB,EAEE,IAAI,CAAC,MAFP,CAGE,IAAI,CAAE3B,CAHR,CAIE,OAAO,CAAEgC,EAJX,CAKE,MAAM,CAAEC,EALV,CAME,aAAY5C,CANd,CAOE,QAAQ,CAAE+C,EAPZ,CAQE,GAAG,CAAEO,EARP,CASE,SAAS,CAAErF,QAAQ,CAAC,OAAD,CAAU,CAC3BsC,IAAI,CAAJA,CAD2B,CAE3BsD,IAAI,CAAE,CAAC/B,CAAD,EAAa,CAAC,CAAChC,CAFM,CAG3BgC,QAAQ,CAARA,CAH2B,CAI3BgC,YAAY,GAJe,CAAV,CATrB,CAeE,KAAK,CAAEpD,EAfT,CAgBE,KAAK,CAAE,CAAE8C,KAAK,CAALA,CAAF,CAhBT,GAhBF,CAoCH,CAnLE,CAqLH,MACE,yCACE,oBAAC,eAAD,gBACE,OAAO,CAAEd,EADX,CAEE,QAAQ,CAAE3C,CAFZ,CAGE,IAAI,CAAEQ,CAHR,CAIE,QAAQ,CAAEJ,CAJZ,CAKE,IAAI,CAAEG,CALR,CAME,IAAI,CAAC,YANP,CAOE,IAAI,CAAED,CAPR,CAQE,QAAQ,GARV,CASE,GAAG,CAAEjB,CATP,CAUE,KAAK,CAAE4C,CAVT,EAWME,EAXN,EAaE,2BACE,SAAS,CAAEjE,QAAQ,CAAC,SAAD,CAAY,CAAE8F,QAAQ,GAAV,CAAZ,CADrB,CAEE,GAAG,CAAEvE,CAFP,CAGE,gBAAegD,EAHjB,CAIE,gBAAc,SAJhB,CAKE,EAAE,CAAEvC,CALN,EAOE,2BACE,SAAS,CAAEhC,QAAQ,CAAC,cAAD,CADrB,CAEE,OAAO,CAAE6E,EAFX,CAGE,IAAI,CAAC,QAHP,CAIE,GAAG,CAAExD,CAJP,CAKE,cAAY,MALd,EAOE,2BAAK,SAAS,CAAErB,QAAQ,CAAC,uBAAD,CAAxB,EACG6D,CAAQ,CACP,2BACE,SAAS,CAAE7D,QAAQ,CAAC,cAAD,CAAiB,CAAE6F,YAAY,GAAd,CAAjB,CADrB,EAGGP,EAAkB,EAHrB,CADO,CAOPA,EAAkB,EARtB,CAPF,CAPF,CA0BE,4BAAM,SAAS,CAAEtF,QAAQ,CAAC,YAAD,CAAzB,EACG6B,CAAK,EACJ,8BACE,IAAI,CAAC,QADP,CAEE,OAAO,CAAEkD,EAFX,CAGE,SAAS,CAAE/E,QAAQ,CAAC,gBAAD,CAAmB,CAACF,UAAU,EAAX,CAAnB,CAHrB,EAKE,oBAAC,SAAD,EACE,IAAI,CAAC,IADP,CAEE,SAAS,CAAEE,QAAQ,CAAC,oBAAD,CAFrB,EALF,CAFJ,CAaE,4BAAM,SAAS,CAAEA,QAAQ,CAAC,WAAD,CAAzB,EAbF,CAcE,8BACE,IAAI,CAAC,QADP,CAEE,SAAS,CAAEA,QAAQ,CAAC,oBAAD,CAFrB,CAGE,QAAQ,CAAE,CAAC,CAHb,CAIE,OAAO,CAAE4E,EAJX,EAME,oBAAC,UAAD,EACE,IAAI,CAAC,IADP,CAEE,SAAS,CAAE5E,QAAQ,CAAC,uBAAD,CAFrB,EANF,CAdF,CA1BF,CAbF,CAkEE,2BACE,SAAS,CAAEA,QAAQ,CAAC,wBAAD,CADrB,CAEE,GAAG,CAAEsB,CAFP,EAIGmB,EAJH,CAlEF,CADF,CA0EE,oBAAC,cAAD,EACE,MAAM,CAAE8B,EADV,CAEE,IAAI,CAAEjC,CAFR,CAGE,UAAU,CAAEf,CAHd,CAIE,cAAc,CAAE+C,EAJlB,CAKE,WAAW,CAAEnC,CALf,CAME,IAAI,CAAE6B,EANR,CAOE,SAAS,CAAE/B,CAPb,CAQE,SAAS,CAAEM,CARb,CASE,UAAU,CAAEa,CAAU,EAzKoB,QAA1C2C,kBAA0C,CAAC7E,CAAD,CAAW,CACzD,GAAQiD,EAAR,CAAyDjD,CAAzD,CAAQiD,IAAR,CAAc6B,CAAd,CAAyD9E,CAAzD,CAAc8E,MAAd,CAAsBC,CAAtB,CAAyD/E,CAAzD,CAAsB+E,OAAtB,CAA+BC,CAA/B,CAAyDhF,CAAzD,CAA+BgF,OAA/B,CAAwCC,CAAxC,CAAyDjF,CAAzD,CAAwCiF,YAAxC,CAEA,MACE,qBAAC,cAAD,EACE,KAAK,CAAEtD,CAAY,CAACsB,CAAD,CADrB,CAEE,QAAQ,CAAErB,CAAe,CAACqB,CAAD,CAF3B,CAGE,SAAS,CAAEpB,CAAgB,CAACoB,CAAD,CAH7B,CAIE,MAAM,CAAE6B,CAJV,CAKE,OAAO,CAAEC,CALX,CAME,IAAI,CAAE3D,CANR,CAOE,MAAM,CAAmB,OAAjB,GAAA0B,EAAY,CAAe,WAAf,CAA6B,QAPnD,CAQE,OAAO,CAAEkC,CARX,CASE,YAAY,CAAEC,CAThB,CAUE,OAAO,CAAElD,CAAe,CAACkB,CAAD,CAV1B,CAWE,QAAQ,CAAEN,CAXZ,EAcH,CA8IG,CAUE,aAAa,CAAEV,CAVjB,CAWE,YAAY,CAAEqB,EAXhB,CAYE,gBAAgB,CAAEd,CAZpB,CAaE,cAAc,CAAEC,CAblB,CAcE,QAAQ,CAAEsB,EAdZ,CAeE,QAAQ,CAAEC,EAfZ,CAgBE,kBAAkB,CAAEtB,CAhBtB,CAiBE,KAAK,CACsB,QAAzB,gBAAOG,CAAP,WAAOA,CAAP,QAAOA,CAAK,CAAEqC,MAAd,EACI,CAAEA,MAAM,CAAErC,CAAK,CAACqC,MAAN,CAAe,CAAzB,CADJ,OAlBJ,EA1EF,CAmGH,CAhSD,CAkSA,MAAO,IAAMC,WAAU,CAAG3G,UAAU,CAACuB,gBAAD,CAA7B,CAEP"}
|
|
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","inputId","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 inputId = id ? `${id}-input` : id;\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 id={inputId}\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 id={inputId}\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,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{getCountedGroups,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 var isOptionForSelectAll=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionSelctAll")};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.selectAll,o=void 0!==n&&n,p=a.getGroupKey,q=a.sortGroups,r=a.getItemDisabled,s=a.onFocus,t=a.onBlur,u=a.searchValue,v=a.withoutClearSearch,w=useRef(null),x=useState(!1),y=_slicedToArray(x,2),z=y[0],A=y[1],B=a.value&&(Array.isArray(a.value)?a.value:[a.value])||[],C=useHoistedState(initialState),D=_slicedToArray(C,2),E=D[0],F=E.searchValue,G=E.isOpen,H=E.highlightedIndex,I=E.resolvedSearchValue,J=E.scrollToHighlighted,K=D[1],L=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},M=React.useMemo(function(){if(I&&""!==I){var c=b.filter(function(a){return k?k(a,I):L(a,I)}),d=!!b.find(function(a){return i(a).toString().toLowerCase()===I.toLocaleLowerCase()});return[c,a.onCreate&&!d?{label:F,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,I]),N=_slicedToArray(M,2),O=N[0],P=N[1],Q=useMemo(function(){var b=getCountedGroups(getGroups(O,null!==m&&void 0!==m&&m.length?l:void 0,m,p,q),isMultipleParams(a)?a.value:[],o,j,r);return P?[P].concat(_toConsumableArray(b)):b},[B,o,O,m,l,r,p,q,P]),R=useMemo(function(){var b=!1;return 0<F.length&&(b=0===Q.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[Q]),S=0!==b.length,T=function(){var a=0;if(0<B.length){var b,c=_createForOfIteratorHelper(Q);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(isOptionForSelectAll(g))return a;if(j(g)===j(B[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},U=React.useCallback(function(a){K(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[K]),V=useDebounce(function(a){K(function(b){return _objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),W=React.useCallback(function(a){K(function(b){return _objectSpread(_objectSpread({},b),{},{searchValue:a||""})},actions.setSearch),V(a||"")},[K,V]),X=usePrevious(G);React.useLayoutEffect(function(){if(null!==B&&!X&&G){var a=T();0<O.length&&scrollToIndex(a,c)}});var Y=React.useCallback(function(a,b){K(function(c){return _objectSpread(_objectSpread({},c),{},{highlightedIndex:Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),P?O.length:O.length-1),scrollToHighlighted:b})},actions.highlightIndex)},[O,K,P]),Z=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})}},$=function(b,c){if(!(r&&r(c))){if(isMultipleParams(a)){var d=B.some(function(a){return j(a)===j(c)})?B.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(B),[c]);a.onChange({value:d.length?d:null,e:b})}isNotMultipleParams(a)&&(a.onChange({value:c,e:b}),U(!1)),v||W("")}},_=function(b){var c=b.e,d=b.items;if(isMultipleParams(a)){var e=r?d.filter(function(a){return!r(a)}):d,f=[],g=[];B.forEach(function(a){e.find(function(b){return j(a)===j(b)})?f.push(a):g.push(a)}),f.length===e.length?a.onChange({value:g,e:c}):a.onChange({e:c,value:[].concat(g,_toConsumableArray(e))})}},aa=function(b,c){a.onCreate&&a.onCreate({e:b,label:c}),U(!1),v||W("")},ba=function(b){if(v||W(""),isMultipleParams(a)){var c=null===B||void 0===B?void 0:B.filter(function(a){return null===r||void 0===r?void 0:r(a)});a.onChange({value:c&&0<c.length?c:null,e:b})}isNotMultipleParams(a)&&a.onChange({value:null,e:b})},ca=function(a,b){b.preventDefault(),f||U(!0),Y(function(a){return a-1},!0)},da=function(a,b){b.preventDefault(),f||U(!0),Y(function(a){return a+1},!0)},ea=useKeys({ArrowUp:ca,ArrowDown:da,PageUp:ca,PageDown:da,Home:ca,End:da,Enter:function Enter(a,b){if(G){(F||O[H])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(Q);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(isOptionForCreate(e))return c++,[void 0,e];if(e.items.length+c>a)return[e,e.items[a-c]];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}return[void 0,void 0]},d=c(H),e=_slicedToArray(d,2),f=e[0],g=e[1];if(isOptionForCreate(g))return void aa(b,g.label);if(isOptionForSelectAll(g)){var h;return void _({e:b,items:null!==(h=null===f||void 0===f?void 0:f.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==h?h:[]})}g&&$(b,g)}},Escape:function Escape(){U(!1)},Tab:function Tab(){U(!1)},Backspace:function Backspace(a,b){F||(h?Z(b,B[B.length-1]):ba(b))}});useClickOutside({isActive:G,ignoreClicksInsideRefs:[c,d],handler:function handler(){U(!1)}}),React.useEffect(function(){f&&U(!1)},[f]),React.useEffect(function(){var a=T();Y(a,!0)},[Y]),React.useEffect(function(){0<O.length&&J&&scrollToIndex(H,c)},[H]);return useEffect(function(){W(u)},[u]),{isOpen:G,isFocused:z,highlightedIndex:H,visibleItems:Q,highlightIndex:Y,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item;if(isOptionForCreate(c))return{onClick:function onClick(a){aa(a,c.label)},onMouseEnter:function onMouseEnter(){Y(b,!1)},active:!1,hovered:b===H,key:"__optionForCreate"};if(isOptionForSelectAll(c)){var f=function(){var a,b=_createForOfIteratorHelper(Q);try{for(b.s();!(a=b.n()).done;){var e=a.value;if(isOptionForCreate(e))break;if(e.key===c.groupKey){var d;return null!==(d=null===e||void 0===e?void 0:e.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==d?d:[]}}}catch(a){b.e(a)}finally{b.f()}return[]};return{onClick:function onClick(a){_({e:a,items:f()})},onMouseEnter:function onMouseEnter(){Y(b,!1)},active:!1,hovered:b===H,key:"__optionForSelectAll"}}var d=j(c);return{onClick:function onClick(a){$(a,c)},onMouseEnter:function onMouseEnter(){Y(b,!1)},active:!!B.find(function(a){return j(a)===d}),hovered:b===H,key:d}},handleInputFocus:function handleInputFocus(a){f||(!z&&A(!0),"function"==typeof s&&s(a))},handleInputBlur:function handleInputBlur(a){if(G){var b;return void(null===(b=w.current)||void 0===b?void 0:b.focus())}z&&A(!1),"function"==typeof t&&t(a)},handleToggleDropdown:function handleToggleDropdown(){if(G)U(!1),A(!1);else{var a;U(!0),A(!0),null===(a=w.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||U(!G),h){var a;null===(a=w.current)||void 0===a?void 0:a.focus()}},inputRef:w,getKeyProps:ea,handleInputChange:function handleInputChange(a){f||!h&&0<B.length||W(a.target.value)},searchValue:F,clearValue:ba,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return Z(b,a)}},notFound:R,hasItems:S}}
|
|
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{getCountedGroups,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 var isOptionForSelectAll=function(a){return a&&Object.prototype.hasOwnProperty.call(a,"__optionSelctAll")};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.selectAll,o=void 0!==n&&n,p=a.getGroupKey,q=a.sortGroups,r=a.getItemDisabled,s=a.onFocus,t=a.onBlur,u=a.searchValue,v=a.withoutClearSearch,w=useRef(null),x=useState(!1),y=_slicedToArray(x,2),z=y[0],A=y[1],B=a.value&&(Array.isArray(a.value)?a.value:[a.value])||[],C=useHoistedState(initialState),D=_slicedToArray(C,2),E=D[0],F=E.searchValue,G=E.isOpen,H=E.highlightedIndex,I=E.resolvedSearchValue,J=E.scrollToHighlighted,K=D[1],L=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},M=React.useMemo(function(){if(I&&""!==I){var c=b.filter(function(a){return k?k(a,I):L(a,I)}),d=!!b.find(function(a){return i(a).toString().toLowerCase()===I.toLocaleLowerCase()});return[c,a.onCreate&&!d?{label:F,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,I]),N=_slicedToArray(M,2),O=N[0],P=N[1],Q=useMemo(function(){var b=getCountedGroups(getGroups(O,null!==m&&void 0!==m&&m.length?l:void 0,m,p,q),isMultipleParams(a)?a.value:[],o,j,r);return P?[P].concat(_toConsumableArray(b)):b},[B,o,O,m,l,r,p,q,P]),R=useMemo(function(){var b=!1;return 0<F.length&&(b=0===Q.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[Q]),S=0!==b.length,T=function(){var a=0;if(0<B.length){var b,c=_createForOfIteratorHelper(Q);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(isOptionForSelectAll(g))return a;if(j(g)===j(B[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},U=React.useCallback(function(a){K(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[K]),V=useDebounce(function(a){K(function(b){return _objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),W=React.useCallback(function(a){K(function(b){return _objectSpread(_objectSpread({},b),{},{searchValue:a||""})},actions.setSearch),V(a||"")},[K,V]),X=usePrevious(G);React.useLayoutEffect(function(){if(null!==B&&!X&&G){var a=T();0<O.length&&scrollToIndex(a,c)}});var Y=React.useCallback(function(a,b){K(function(c){return _objectSpread(_objectSpread({},c),{},{highlightedIndex:Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),P?O.length:O.length-1),scrollToHighlighted:b})},actions.highlightIndex)},[O,K,P]),Z=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})}},$=function(b,c){if(!(r&&r(c))){if(isMultipleParams(a)){var d=B.some(function(a){return j(a)===j(c)})?B.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(B),[c]);a.onChange({value:d.length?d:null,e:b})}isNotMultipleParams(a)&&(a.onChange({value:c,e:b}),U(!1)),v||W("")}},_=function(b){var c=b.e,d=b.items;if(isMultipleParams(a)){var e=r?d.filter(function(a){return!r(a)}):d,f=[],g=[];B.forEach(function(a){e.find(function(b){return j(a)===j(b)})?f.push(a):g.push(a)}),f.length===e.length?a.onChange({value:g,e:c}):a.onChange({e:c,value:[].concat(g,_toConsumableArray(e))})}},aa=function(b,c){a.onCreate&&a.onCreate({e:b,label:c}),U(!1),v||W("")},ba=function(b){if(v||W(""),isMultipleParams(a)){var c=null===B||void 0===B?void 0:B.filter(function(a){return null===r||void 0===r?void 0:r(a)});a.onChange({value:c&&0<c.length?c:null,e:b})}isNotMultipleParams(a)&&a.onChange({value:null,e:b})},ca=function(a,b){b.preventDefault(),f||U(!0),Y(function(a){return a-1},!0)},da=function(a,b){b.preventDefault(),f||U(!0),Y(function(a){return a+1},!0)},ea=useKeys({ArrowUp:ca,ArrowDown:da,PageUp:ca,PageDown:da,Home:ca,End:da,Enter:function Enter(a,b){if(G){(F||O[H])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(Q);try{for(d.s();!(b=d.n()).done;){var e=b.value;if(isOptionForCreate(e))return c++,[void 0,e];if(e.items.length+c>a)return[e,e.items[a-c]];c+=e.items.length}}catch(a){d.e(a)}finally{d.f()}return[void 0,void 0]},d=c(H),e=_slicedToArray(d,2),f=e[0],g=e[1];if(isOptionForCreate(g))return void aa(b,g.label);if(isOptionForSelectAll(g)){var h;return void _({e:b,items:null!==(h=null===f||void 0===f?void 0:f.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==h?h:[]})}g&&$(b,g)}},Escape:function Escape(){U(!1)},Tab:function Tab(){U(!1)},Backspace:function Backspace(a,b){F||(h?Z(b,B[B.length-1]):ba(b))}});useClickOutside({isActive:G,ignoreClicksInsideRefs:[c,d],handler:function handler(){U(!1)}}),React.useEffect(function(){f&&U(!1)},[f]),React.useEffect(function(){var a=T();Y(a,!0)},[Y]),React.useEffect(function(){0<O.length&&J&&scrollToIndex(H,c)},[H]);return useEffect(function(){W(u)},[u]),{isOpen:G,isFocused:z,highlightedIndex:H,visibleItems:Q,highlightIndex:Y,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item;if(isOptionForCreate(c))return{onClick:function onClick(a){aa(a,c.label)},onMouseEnter:function onMouseEnter(){Y(b,!1)},active:!1,hovered:b===H,key:"__optionForCreate"};if(isOptionForSelectAll(c)){var f=function(){var a,b=_createForOfIteratorHelper(Q);try{for(b.s();!(a=b.n()).done;){var e=a.value;if(isOptionForCreate(e))break;if(e.key===c.groupKey){var d;return null!==(d=null===e||void 0===e?void 0:e.items.filter(function(a){return!isOptionForSelectAll(a)}))&&void 0!==d?d:[]}}}catch(a){b.e(a)}finally{b.f()}return[]};return{onClick:function onClick(a){_({e:a,items:f()})},onMouseEnter:function onMouseEnter(){Y(b,!1)},active:!1,hovered:b===H,key:"__optionForSelectAll"}}var d=j(c);return{onClick:function onClick(a){$(a,c)},onMouseEnter:function onMouseEnter(){Y(b,!1)},active:!!B.find(function(a){return j(a)===d}),hovered:b===H,key:d}},handleInputFocus:function handleInputFocus(a){f||(!z&&A(!0),"function"==typeof s&&s(a))},handleInputBlur:function handleInputBlur(a){if(G){var b;return void(null===(b=w.current)||void 0===b?void 0:b.focus())}z&&A(!1),"function"==typeof t&&t(a)},handleToggleDropdown:function handleToggleDropdown(){if(G)U(!1),A(!1);else{var a;U(!0),A(!0),null===(a=w.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||U(!G),h){var a;null===(a=w.current)||void 0===a?void 0:a.focus()}},inputRef:w,getKeyProps:ea,handleInputChange:function handleInputChange(a){f||!h&&0<B.length||(W(a.target.value),U(!0))},searchValue:F,clearValue:ba,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return Z(b,a)}},notFound:R,hasItems:S}}
|
|
2
2
|
//# sourceMappingURL=useSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelect.js","names":["React","useEffect","useMemo","useRef","useState","getCountedGroups","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","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","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","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","el","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","getOptionProps","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","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 {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} 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 selectAll?: 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 | SelectAllItem;\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 const isOptionForSelectAll = <ITEM, GROUP>(\n params: SelectAllItem | Group<ITEM, GROUP> | ITEM,\n): params is SelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelctAll')\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 selectAll = false,\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 = getCountedGroups(\n getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n ),\n isMultipleParams(params) ? params.value : [],\n selectAll,\n getItemKey,\n getItemDisabled,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n value,\n selectAll,\n filteredOptions,\n groups,\n getItemGroupKey,\n getItemDisabled,\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 (isOptionForSelectAll(item)) {\n return index;\n }\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 | undefined) => {\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 onChangeAll = (parametrs: {\n e: React.SyntheticEvent;\n items: ITEM[];\n }) => {\n const { e, items } = parametrs;\n if (isMultipleParams(params)) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n params.onChange({ value: withoutGroupValues, e });\n } else {\n params.onChange({\n e,\n value: [...withoutGroupValues, ...nonDisabledItems],\n });\n }\n }\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 }\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 getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n SelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return [undefined, group];\n }\n if (group.items.length + couter > index) {\n return [group, group.items[index - couter]];\n }\n couter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll({\n e,\n items:\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? [],\n });\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 if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n break;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll({ e, items: getItems() });\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: '__optionForSelectAll',\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 setSearch(searchValueProp);\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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"}
|
|
1
|
+
{"version":3,"file":"useSelect.js","names":["React","useEffect","useMemo","useRef","useState","getCountedGroups","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","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","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","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","el","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","getOptionProps","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","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 {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} 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 selectAll?: 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 | SelectAllItem;\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 const isOptionForSelectAll = <ITEM, GROUP>(\n params: SelectAllItem | Group<ITEM, GROUP> | ITEM,\n): params is SelectAllItem => {\n return (\n params && Object.prototype.hasOwnProperty.call(params, '__optionSelctAll')\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 selectAll = false,\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 = getCountedGroups(\n getGroups(\n filteredOptions,\n groups?.length ? getItemGroupKey : undefined,\n groups,\n getGroupKey,\n sortGroups,\n ),\n isMultipleParams(params) ? params.value : [],\n selectAll,\n getItemKey,\n getItemDisabled,\n );\n\n return optionForCreate ? [optionForCreate, ...resultGroups] : resultGroups;\n }, [\n value,\n selectAll,\n filteredOptions,\n groups,\n getItemGroupKey,\n getItemDisabled,\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 (isOptionForSelectAll(item)) {\n return index;\n }\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 | undefined) => {\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 onChangeAll = (parametrs: {\n e: React.SyntheticEvent;\n items: ITEM[];\n }) => {\n const { e, items } = parametrs;\n if (isMultipleParams(params)) {\n const nonDisabledItems = getItemDisabled\n ? items.filter((item) => !getItemDisabled(item))\n : items;\n\n const currentGroupValues: ITEM[] = [];\n const withoutGroupValues: ITEM[] = [];\n value.forEach((el) => {\n if (\n nonDisabledItems.find((item) => getItemKey(el) === getItemKey(item))\n ) {\n currentGroupValues.push(el);\n } else {\n withoutGroupValues.push(el);\n }\n });\n if (currentGroupValues.length === nonDisabledItems.length) {\n params.onChange({ value: withoutGroupValues, e });\n } else {\n params.onChange({\n e,\n value: [...withoutGroupValues, ...nonDisabledItems],\n });\n }\n }\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 setOpen(true);\n }\n };\n\n const handleInputClick = (): void => {\n !disabled && setOpen(!isOpen);\n\n if (multiple) {\n inputRef.current?.focus();\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 getData = (\n index: number,\n ): [\n CountedGroup<ITEM, GROUP> | undefined,\n SelectAllItem | OptionForCreate | ITEM | undefined,\n ] => {\n let couter = 0;\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n couter++;\n return [undefined, group];\n }\n if (group.items.length + couter > index) {\n return [group, group.items[index - couter]];\n }\n couter += group.items.length;\n }\n return [undefined, undefined];\n };\n\n const [group, item] = getData(highlightedIndex);\n\n if (isOptionForCreate(item)) {\n onCreate(e, item.label);\n return;\n }\n\n if (isOptionForSelectAll(item)) {\n onChangeAll({\n e,\n items:\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? [],\n });\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 if (isOptionForSelectAll(item)) {\n const getItems = (): ITEM[] => {\n for (const group of visibleItems) {\n if (isOptionForCreate(group)) {\n break;\n }\n if (group.key === item.groupKey) {\n return (\n (group?.items.filter(\n (el) => !isOptionForSelectAll(el),\n ) as ITEM[]) ?? []\n );\n }\n }\n return [];\n };\n return {\n onClick: (e: React.SyntheticEvent) => {\n onChangeAll({ e, items: getItems() });\n },\n onMouseEnter: () => {\n highlightIndex(index, false);\n },\n active: false,\n hovered: index === highlightedIndex,\n key: '__optionForSelectAll',\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 setSearch(searchValueProp);\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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.MixPopoverArrow{--popover-arrow-size:
|
|
1
|
+
.MixPopoverArrow{--popover-arrow-size:6px;--popover-arrow-offset:6px;border:var(--popover-arrow-size) solid transparent;position:absolute}.MixPopoverArrow_direction_upCenter,.MixPopoverArrow_direction_upLeft,.MixPopoverArrow_direction_upRight,.MixPopoverArrow_direction_upStartLeft,.MixPopoverArrow_direction_upStartRight{border-top-color:var(--popover-arrow-bg-color);bottom:0;transform:translateY(100%)}.MixPopoverArrow_direction_downLeft,.MixPopoverArrow_direction_downStartRight,.MixPopoverArrow_direction_upLeft,.MixPopoverArrow_direction_upStartRight{right:var(--popover-arrow-offset)}.MixPopoverArrow_direction_downCenter,.MixPopoverArrow_direction_upCenter{left:calc(50% - var(--popover-arrow-size))}.MixPopoverArrow_direction_downRight,.MixPopoverArrow_direction_downStartLeft,.MixPopoverArrow_direction_upRight,.MixPopoverArrow_direction_upStartLeft{left:var(--popover-arrow-offset)}.MixPopoverArrow_direction_downCenter,.MixPopoverArrow_direction_downLeft,.MixPopoverArrow_direction_downRight,.MixPopoverArrow_direction_downStartLeft,.MixPopoverArrow_direction_downStartRight{border-bottom-color:var(--popover-arrow-bg-color);top:0;transform:translateY(-100%)}.MixPopoverArrow_direction_rightCenter,.MixPopoverArrow_direction_rightDown,.MixPopoverArrow_direction_rightStartDown,.MixPopoverArrow_direction_rightStartUp,.MixPopoverArrow_direction_rightUp{border-right-color:var(--popover-arrow-bg-color);left:0;transform:translateX(-100%)}.MixPopoverArrow_direction_leftStartDown,.MixPopoverArrow_direction_leftUp,.MixPopoverArrow_direction_rightStartDown,.MixPopoverArrow_direction_rightUp{bottom:var(--popover-arrow-offset)}.MixPopoverArrow_direction_leftCenter,.MixPopoverArrow_direction_rightCenter{top:calc(50% - var(--popover-arrow-size))}.MixPopoverArrow_direction_leftDown,.MixPopoverArrow_direction_leftStartUp,.MixPopoverArrow_direction_rightDown,.MixPopoverArrow_direction_rightStartUp{top:var(--popover-arrow-offset)}.MixPopoverArrow_direction_leftCenter,.MixPopoverArrow_direction_leftDown,.MixPopoverArrow_direction_leftStartDown,.MixPopoverArrow_direction_leftStartUp,.MixPopoverArrow_direction_leftUp{border-left-color:var(--popover-arrow-bg-color);right:0;transform:translateX(100%)}
|