@consta/uikit 5.29.2 → 5.31.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/FileCanary/index.d.ts +1 -0
- package/FileCanary/index.js +1 -0
- package/__internal__/src/components/AutoComplete/AutoComplete.js +1 -1
- package/__internal__/src/components/AutoComplete/AutoComplete.js.map +1 -1
- package/__internal__/src/components/AutoComplete/helpers.d.ts +1 -0
- package/__internal__/src/components/AutoComplete/types.d.ts +1 -0
- package/__internal__/src/components/AutoComplete/types.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +1 -0
- package/__internal__/src/components/AutoCompleteCanary/types.d.ts +1 -0
- package/__internal__/src/components/AutoCompleteCanary/types.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
- package/__internal__/src/components/Combobox/helpers.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuWrapper/ContextMenuWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/helpers.d.ts +4 -2
- package/__internal__/src/components/ContextMenu/types.d.ts +3 -0
- package/__internal__/src/components/ContextMenu/types.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +1 -0
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/types.d.ts +1 -0
- package/__internal__/src/components/DatePicker/types.js.map +1 -1
- package/__internal__/src/components/FileCanary/FileCanary.d.ts +1 -0
- package/__internal__/src/components/FileCanary/FileCanary.js +2 -0
- package/__internal__/src/components/FileCanary/FileCanary.js.map +1 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.css +1 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.d.ts +4 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.js +2 -0
- package/__internal__/src/components/FileCanary/FileCanaryBase/FileCanaryBase.js.map +1 -0
- package/__internal__/src/components/FileCanary/config.d.ts +2 -0
- package/__internal__/src/components/FileCanary/config.js +2 -0
- package/__internal__/src/components/FileCanary/config.js.map +1 -0
- package/__internal__/src/components/FileCanary/fileCanaryGenerator.d.ts +2 -0
- package/__internal__/src/components/FileCanary/fileCanaryGenerator.js +2 -0
- package/__internal__/src/components/FileCanary/fileCanaryGenerator.js.map +1 -0
- package/__internal__/src/components/FileCanary/index.d.ts +4 -0
- package/__internal__/src/components/FileCanary/index.js +2 -0
- package/__internal__/src/components/FileCanary/index.js.map +1 -0
- package/__internal__/src/components/FileCanary/types.d.ts +25 -0
- package/__internal__/src/components/FileCanary/types.js +2 -0
- package/__internal__/src/components/FileCanary/types.js.map +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelect.js +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelect.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -1
- package/__internal__/src/components/FlatSelect/types.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/types.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/Select/helpers.d.ts +3 -1
- package/__internal__/src/components/Select/helpers.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/__test__/SelectMultiple.test.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/__test__/SelectMultiple.test.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/__test__/SelectSingle.test.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/__test__/SelectSingle.test.js.map +1 -1
- package/__internal__/src/components/SelectCanary/helpers.d.ts +2 -1
- package/__internal__/src/components/SelectCanary/types.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/types.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +1 -0
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/Theme/_font/Silkscreen-Regular.woff +0 -0
- package/__internal__/src/components/Theme/_font/Silkscreen-Regular.woff2 +0 -0
- package/__internal__/src/components/Theme/_font/Theme_font_gpnDefault.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/components/UserSelect/helpers.d.ts +3 -1
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/hooks/useBodyScrollFreeze/index.d.ts +1 -0
- package/__internal__/src/hooks/useBodyScrollFreeze/index.js +2 -0
- package/__internal__/src/hooks/useBodyScrollFreeze/index.js.map +1 -0
- package/__internal__/src/hooks/useBodyScrollFreeze/useBodyScrollFreeze.css +1 -0
- package/__internal__/src/hooks/useBodyScrollFreeze/useBodyScrollFreeze.d.ts +6 -0
- package/__internal__/src/hooks/useBodyScrollFreeze/useBodyScrollFreeze.js +2 -0
- package/__internal__/src/hooks/useBodyScrollFreeze/useBodyScrollFreeze.js.map +1 -0
- package/__internal__/src/hooks/useHover/index.d.ts +1 -0
- package/__internal__/src/hooks/useHover/index.js +2 -0
- package/__internal__/src/hooks/useHover/index.js.map +1 -0
- package/__internal__/src/hooks/useHover/useHover.d.ts +9 -0
- package/__internal__/src/hooks/useHover/useHover.js +2 -0
- package/__internal__/src/hooks/useHover/useHover.js.map +1 -0
- package/package.json +2 -2
- package/useBodyScrollFreeze/index.d.ts +1 -0
- package/useBodyScrollFreeze/index.js +1 -0
- package/useHover/index.d.ts +1 -0
- package/useHover/index.js +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSelect.js","names":["IconClear","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultLabelForCreate","defaultLabelForEmptyItems","defaultLabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","cnMixFocus","isNotNil","clearSizeMap","iconSizeMap","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","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","dropdownViewportRef","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","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 '##/components/SelectComponents/Select.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponents/cnSelect';\nimport {\n defaultLabelForCreate,\n defaultLabelForEmptyItems,\n defaultLabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponents/helpers';\nimport { SelectContainer } from '##/components/SelectComponents/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponents/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { useSelect } from '##/components/SelectComponents/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixFocus } from '##/mixs/MixFocus';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport {\n clearSizeMap,\n iconSizeMap,\n isMultipleParams,\n isNotMultipleParams,\n searchCompare,\n UserSelectComponent,\n UserSelectGroupDefault,\n UserSelectItemDefault,\n UserSelectPropRenderItem,\n UserSelectPropRenderValue,\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 = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\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 onScrollToBottom,\n onSearchValueChange,\n onDropdownOpen,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n dropdownViewportRef,\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 optionsRefs,\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 onSearchValueChange,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: UserSelectPropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = 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 ref={ref}\n />\n );\n };\n\n const renderValueDefault: UserSelectPropRenderValue<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 isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(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 && isNotNil(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 {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClear\n size={clearSizeMap[size]}\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={iconSizeMap[size]}\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 itemsRefs={optionsRefs}\n onScrollToBottom={onScrollToBottom}\n virtualScroll={virtualScroll}\n viewportRef={dropdownViewportRef}\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":"ktBAAA,uCAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CAEA,OAASC,eAAT,2CACA,OAASC,QAAT,oCACA,OACEC,qBADF,CAEEC,yBAFF,CAGEC,uBAHF,CAIEC,aAJF,mCAMA,OAASC,eAAT,2CACA,OAASC,cAAT,0CACA,OACEC,eADF,CAEEC,eAFF,CAGEC,eAHF,iCAKA,OAASC,SAAT,qCACA,OAASC,UAAT,8BACA,OAASC,UAAT,2BACA,OAASC,QAAT,+BAEA,OACEC,YADF,CAEEC,WAFF,CAGEC,gBAHF,CAIEC,mBAJF,CAKEC,aALF,CAYEC,kBAZF,iBAcA,OAASC,cAAT,uCACA,OAASC,eAAT,yCAEA,MAAO,IAAMC,eAAc,CAAG,YAAvB,CAEP,GAAMC,iBAAgB,CAAG,SAKvBC,CALuB,CAMvBC,CANuB,CAOpB,IACGC,EAAkB,CAAG5B,MAAM,CAAwB,IAAxB,CAD9B,CAEG6B,CAAe,CAAG7B,MAAM,CAAiB,IAAjB,CAF3B,CAGG8B,CAAsB,CAAG9B,MAAM,CAAiB,IAAjB,CAHlC,CAIG+B,CAAU,CAAG/B,MAAM,CAAwB,IAAxB,CAJtB,GAqDCC,eAAe,CAACuB,cAAD,CAAiBH,kBAAkB,CAACK,CAAD,CAAnC,CAA4CK,CAA5C,CArDhB,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,YAmBMnC,eAnBN,OAoBDoC,IApBC,CAoBDA,CApBC,YAoBMlC,eApBN,OAqBDmC,IArBC,CAqBDA,CArBC,YAqBMpC,eArBN,GAsBDqC,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,YAsCkB7D,uBAtClB,OAuCD8D,cAvCC,CAuCDA,CAvCC,YAuCgBhE,qBAvChB,OAwCDiE,kBAxCC,CAwCDA,CAxCC,YAwCoBhE,yBAxCpB,OAyCDiE,QAzCC,CAyCDA,CAzCC,eA0CDC,CA1CC,GA0CDA,cA1CC,CA2CDC,CA3CC,GA2CDA,KA3CC,KA4CDC,YA5CC,CA4CDA,EA5CC,YA4Cc,SA5Cd,GA6CDC,EA7CC,GA6CDA,gBA7CC,CA8CDC,EA9CC,GA8CDA,mBA9CC,CA+CDC,EA/CC,GA+CDA,cA/CC,CAgDDC,EAhDC,GAgDDA,aAhDC,CAiDDC,EAjDC,GAiDDA,YAjDC,CAkDDC,EAlDC,GAkDDA,uBAlDC,CAmDDC,EAnDC,GAmDDA,mBAnDC,CAoDEC,EApDF,0CAmFCpE,SAAS,CAAC,CACZuB,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,EA9CF,QAAxBW,sBAAwB,CAACC,CAAD,CAAajC,CAAb,CAA8C,CAC1E,GAAMkC,EAAa,CAAG/D,aAAa,CAAC6B,CAAD,CAAcI,CAAY,CAAC6B,CAAD,CAA1B,CAAnC,CAD0E,MAGtEC,EAHsE,CAIjEA,CAJiE,CAOnE/D,aAAa,CAAC6B,CAAD,CAAcK,CAAe,CAAC4B,CAAD,CAA7B,CACrB,CAoBa,CAmBZR,mBAAmB,CAAnBA,EAnBY,CAoBZC,cAAc,CAAdA,EApBY,CAqBZE,YAAY,CAAZA,EArBY,CAsBZC,uBAAuB,CAAvBA,EAtBY,CAAD,CAnFV,CAkEDM,EAlEC,IAkEDA,WAlEC,CAmEDC,EAnEC,IAmEDA,cAnEC,CAoEDC,EApEC,IAoEDA,MApEC,CAqEDC,EArEC,IAqEDA,YArEC,CAsEDC,EAtEC,IAsEDA,SAtEC,CAuEDC,EAvEC,IAuEDA,gBAvEC,CAwEDC,EAxEC,IAwEDA,eAxEC,CAyEDC,EAzEC,IAyEDA,oBAzEC,CA0ED1B,EA1EC,IA0EDA,QA1EC,CA2ED2B,EA3EC,IA2EDA,gBA3EC,CA4EDC,EA5EC,IA4EDA,iBA5EC,CA6ED5C,EA7EC,IA6EDA,WA7EC,CA8ED6C,EA9EC,IA8EDA,UA9EC,CA+EDC,EA/EC,IA+EDA,oBA/EC,CAgFDC,EAhFC,IAgFDA,QAhFC,CAiFDC,EAjFC,IAiFDA,QAjFC,CAkFDC,EAlFC,IAkFDA,WAlFC,CA4GGC,EAAO,CAAG3D,CAAE,WAAMA,CAAN,WAAmBA,CA5GlC,CAqJGsB,EAAW,CAAGD,CAAe,EAlByB,QAAtDuC,mBAAsD,GAGtD,IAFJlB,EAEI,GAFJA,IAEI,CADJmB,CACI,GADJA,YACI,CACJ,MACE,qBAAC,eAAD,EACE,KAAK,CAAEhD,CAAY,CAAC6B,CAAD,CADrB,CAEE,QAAQ,CAAE5B,CAAe,CAAC4B,CAAD,CAF3B,CAGE,SAAS,CAAE3B,CAAgB,CAAC2B,CAAD,CAH7B,CAIE,GAAG,CAAE9B,CAAU,CAAC8B,CAAD,CAJjB,CAKE,IAAI,CAAEpC,CALR,CAME,YAAY,CAAEuD,CANhB,CAOE,QAAQ,CAAEhC,CAPZ,CAQE,QAAQ,CAAE/B,CAAQ,EAAImB,CAAe,CAACyB,CAAD,CARvC,EAWH,CAnJE,CAuJGoB,EAAiB,CAAGzF,UAAU,CAAC,CAACoD,EAAD,CAAWD,CAAX,CAAD,CAvJjC,CAyJGuC,EAAkB,CAAG,UAAM,CAC/B,GAAMC,EAAK,CAAGnC,CAAQ,CAClB/D,aAAa,CAACuB,CAAD,CAAkBC,CAAlB,CADK,OAAtB,CAGA,MACE,yCACGZ,gBAAgB,CAACQ,CAAD,CAAhB,EACC+E,KAAK,CAACC,OAAN,CAAchF,CAAK,CAACW,KAApB,CADD,EAECX,CAAK,CAACW,KAAN,CAAYsE,GAAZ,CAAgB,SAACzB,CAAD,QACdpB,GAAW,CAAC,CAAEoB,IAAI,CAAJA,CAAF,CAAQmB,YAAY,CAAEN,EAAoB,CAACb,CAAD,CAA1C,CAAD,CADG,CAAhB,CAHJ,CAMG/D,mBAAmB,CAACO,CAAD,CAAnB,EACCX,QAAQ,CAACW,CAAK,CAACW,KAAP,CADT,EAECyB,EAAW,CAAC,CAAEoB,IAAI,CAAExD,CAAK,CAACW,KAAd,CAAD,CARf,CASG,CAAC,CAACtB,QAAQ,CAACsB,CAAD,CAAT,EAAqBoE,KAAK,CAACC,OAAN,CAAcrE,CAAd,GAAyC,CAAjB,GAAAA,CAAK,CAACuE,MAApD,GACC,CAAC3D,EADF,EAECjB,CAFD,EAGG,4BAAM,SAAS,CAAE9B,QAAQ,CAAC,aAAD,CAAzB,CAA0C,KAAK,CAAC,aAAhD,EACG8B,CADH,CAZN,CAgBE,6CACMoD,EAAW,EADjB,EAEE,IAAI,CAAC,MAFP,CAGE,IAAI,CAAElC,CAHR,CAIE,EAAE,CAAEiD,EAJN,CAKE,OAAO,CAAEV,EALX,CAME,MAAM,CAAEC,EANV,CAOE,aAAYnD,CAPd,CAQE,QAAQ,CAAEsD,EARZ,CASE,GAAG,CAAES,EATP,CAUE,SAAS,CAAEpG,QAAQ,CAAC,OAAD,CAAU,CAC3B4C,IAAI,CAAJA,CAD2B,CAE3B+D,IAAI,CAAE,CAACxC,CAAD,EAAatD,QAAQ,CAACsB,CAAD,CAFA,CAG3BgC,QAAQ,CAARA,CAH2B,CAI3ByC,YAAY,GAJe,CAAV,CAVrB,CAgBE,KAAK,CAAE7D,EAhBT,CAiBE,KAAK,CAAE,CAAEuD,KAAK,CAALA,CAAF,CAjBT,GAhBF,CAqCH,CAnME,CAqMH,MACE,yCACE,oBAAC,eAAD,gBACE,OAAO,CAAEhB,EADX,CAEE,QAAQ,CAAElD,CAFZ,CAGE,IAAI,CAAEQ,CAHR,CAIE,QAAQ,CAAEJ,CAJZ,CAKE,EAAE,CAAEyD,EALN,CAME,IAAI,CAAEtD,CANR,CAOE,IAAI,CAAC,YAPP,CAQE,IAAI,CAAED,CARR,CASE,QAAQ,GATV,CAUE,GAAG,CAAEjB,CAVP,CAWE,KAAK,CAAE4C,CAXT,EAYMS,EAZN,EAcE,2BACE,SAAS,CAAE9E,QAAQ,CAAC,SAAD,CAAY,CAAE6G,QAAQ,GAAV,CAAZ,CADrB,CAEE,GAAG,CAAEhF,CAFP,CAGE,gBAAeuD,EAHjB,CAIE,gBAAc,SAJhB,CAKE,EAAE,CAAE9C,CALN,EAOE,2BACE,SAAS,CAAEtC,QAAQ,CAAC,cAAD,CADrB,CAEE,OAAO,CAAE0F,EAFX,CAGE,IAAI,CAAC,QAHP,CAIE,GAAG,CAAE/D,CAJP,CAKE,cAAY,MALd,EAOE,2BAAK,SAAS,CAAE3B,QAAQ,CAAC,uBAAD,CAAxB,EACGmE,CAAQ,CACP,2BACE,SAAS,CAAEnE,QAAQ,CAAC,cAAD,CAAiB,CAAE4G,YAAY,GAAd,CAAjB,CADrB,EAGGP,EAAkB,EAHrB,CADO,CAOPA,EAAkB,EARtB,CAPF,CAPF,CA0BE,4BAAM,SAAS,CAAErG,QAAQ,CAAC,YAAD,CAAzB,EACGa,QAAQ,CAACsB,CAAD,CAAR,EACC,8BACE,IAAI,CAAC,QADP,CAEE,OAAO,CAAEyD,EAFX,CAGE,QAAQ,CAAE,CAAC,CAHb,CAIE,SAAS,CAAE5F,QAAQ,CAAC,gBAAD,CAAmB,CAACY,UAAU,EAAX,CAAnB,CAJrB,EAME,oBAAC,SAAD,EACE,IAAI,CAAEE,YAAY,CAAC8B,CAAD,CADpB,CAEE,SAAS,CAAE5C,QAAQ,CAAC,oBAAD,CAFrB,EANF,CAFJ,CAcE,4BAAM,SAAS,CAAEA,QAAQ,CAAC,WAAD,CAAzB,EAdF,CAeE,8BACE,IAAI,CAAC,QADP,CAEE,SAAS,CAAEA,QAAQ,CAAC,oBAAD,CAFrB,CAGE,QAAQ,CAAE,CAAC,CAHb,CAIE,OAAO,CAAEyF,EAJX,EAME,oBAAC,UAAD,EACE,IAAI,CAAE1E,WAAW,CAAC6B,CAAD,CADnB,CAEE,SAAS,CAAE5C,QAAQ,CAAC,uBAAD,CAFrB,EANF,CAfF,CA1BF,CAdF,CAoEE,2BACE,SAAS,CAAEA,QAAQ,CAAC,wBAAD,CADrB,CAEE,GAAG,CAAE4B,CAFP,EAIGmB,EAJH,CApEF,CADF,CA4EE,oBAAC,cAAD,EACE,MAAM,CAAEqC,EADV,CAEE,IAAI,CAAExC,CAFR,CAGE,UAAU,CAAEf,CAHd,CAIE,cAAc,CAAEsD,EAJlB,CAKE,WAAW,CAAE1C,CALf,CAME,IAAI,CAAE6B,EANR,CAOE,SAAS,CAAE/B,CAPb,CAQE,SAAS,CAAEM,CARb,CASE,UAAU,CAAEa,CAAU,EA7K8B,QAApDoD,kBAAoD,CAACtF,CAAD,CAAW,CACnE,GAAQwD,EAAR,CAA8DxD,CAA9D,CAAQwD,IAAR,CAAc+B,CAAd,CAA8DvF,CAA9D,CAAcuF,MAAd,CAAsBC,CAAtB,CAA8DxF,CAA9D,CAAsBwF,OAAtB,CAA+BC,CAA/B,CAA8DzF,CAA9D,CAA+ByF,OAA/B,CAAwCC,CAAxC,CAA8D1F,CAA9D,CAAwC0F,YAAxC,CAAsDzF,CAAtD,CAA8DD,CAA9D,CAAsDC,GAAtD,CAEA,MACE,qBAAC,cAAD,EACE,KAAK,CAAE0B,CAAY,CAAC6B,CAAD,CADrB,CAEE,QAAQ,CAAE5B,CAAe,CAAC4B,CAAD,CAF3B,CAGE,SAAS,CAAE3B,CAAgB,CAAC2B,CAAD,CAH7B,CAIE,MAAM,CAAE+B,CAJV,CAKE,OAAO,CAAEC,CALX,CAME,IAAI,CAAEpE,CANR,CAOE,MAAM,CAAmB,OAAjB,GAAA0B,EAAY,CAAe,WAAf,CAA6B,QAPnD,CAQE,OAAO,CAAE2C,CARX,CASE,YAAY,CAAEC,CAThB,CAUE,OAAO,CAAE3D,CAAe,CAACyB,CAAD,CAV1B,CAWE,QAAQ,CAAEb,CAXZ,CAYE,GAAG,CAAE1C,CAZP,EAeH,CAiJG,CAUE,aAAa,CAAEgC,CAVjB,CAWE,YAAY,CAAE4B,EAXhB,CAYE,gBAAgB,CAAErB,CAZpB,CAaE,cAAc,CAAEC,CAblB,CAcE,QAAQ,CAAE6B,EAdZ,CAeE,QAAQ,CAAEC,EAfZ,CAgBE,kBAAkB,CAAE7B,CAhBtB,CAiBE,SAAS,CAAE8B,EAjBb,CAkBE,gBAAgB,CAAEzB,EAlBpB,CAmBE,aAAa,CAAEG,EAnBjB,CAoBE,WAAW,CAAEG,EApBf,CAqBE,KAAK,CACsB,QAAzB,gBAAOR,CAAP,WAAOA,CAAP,QAAOA,CAAK,CAAE8C,MAAd,EACI,CAAEA,MAAM,CAAE9C,CAAK,CAAC8C,MAAN,CAAe,CAAzB,CADJ,OAtBJ,EA5EF,CAyGH,CAtTD,CAwTA,MAAO,IAAMC,WAAU,CAAGvH,UAAU,CAAC0B,gBAAD,CAA7B,CAEP"}
|
|
1
|
+
{"version":3,"file":"UserSelect.js","names":["IconClear","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultLabelForCreate","defaultLabelForEmptyItems","defaultLabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","cnMixFocus","isNotNil","clearSizeMap","iconSizeMap","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","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","dropdownViewportRef","dropdownContainer","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","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 '##/components/SelectComponents/Select.css';\n\nimport { IconClear } from '@consta/icons/IconClear';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponents/cnSelect';\nimport {\n defaultLabelForCreate,\n defaultLabelForEmptyItems,\n defaultLabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponents/helpers';\nimport { SelectContainer } from '##/components/SelectComponents/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponents/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponents/types';\nimport { useSelect } from '##/components/SelectComponents/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixFocus } from '##/mixs/MixFocus';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport {\n clearSizeMap,\n iconSizeMap,\n isMultipleParams,\n isNotMultipleParams,\n searchCompare,\n UserSelectComponent,\n UserSelectGroupDefault,\n UserSelectItemDefault,\n UserSelectPropRenderItem,\n UserSelectPropRenderValue,\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 = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\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 onScrollToBottom,\n onSearchValueChange,\n onDropdownOpen,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n dropdownViewportRef,\n dropdownContainer,\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 optionsRefs,\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 onSearchValueChange,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: UserSelectPropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = 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 ref={ref}\n />\n );\n };\n\n const renderValueDefault: UserSelectPropRenderValue<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 isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(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 && isNotNil(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 {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClear\n size={clearSizeMap[size]}\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={iconSizeMap[size]}\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 itemsRefs={optionsRefs}\n onScrollToBottom={onScrollToBottom}\n virtualScroll={virtualScroll}\n viewportRef={dropdownViewportRef}\n container={dropdownContainer}\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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"}
|
|
@@ -85,6 +85,7 @@ export type UserSelectProps<ITEM = UserSelectItemDefault, GROUP = UserSelectGrou
|
|
|
85
85
|
dropdownOpen?: boolean;
|
|
86
86
|
ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
|
|
87
87
|
dropdownViewportRef?: React.RefObject<HTMLElement>;
|
|
88
|
+
dropdownContainer?: Element;
|
|
88
89
|
}, HTMLDivElement> & (ITEM extends {
|
|
89
90
|
label: UserSelectItemDefault['label'];
|
|
90
91
|
} ? {} : {
|
|
@@ -164,7 +165,8 @@ export declare function withDefaultGetters<ITEM = UserSelectItemDefault, GROUP =
|
|
|
164
165
|
dropdownOpen?: boolean;
|
|
165
166
|
ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
|
|
166
167
|
dropdownViewportRef?: React.RefObject<HTMLElement>;
|
|
167
|
-
|
|
168
|
+
dropdownContainer?: Element;
|
|
169
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, "css" | "onFocus" | "onBlur" | "onChange" | "size" | "view" | "form" | "status" | "caption" | "label" | "name" | "disabled" | "value" | "multiple" | "placeholder" | "required" | "inputRef" | "items" | "dropdownForm" | "ariaLabel" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "labelIcon" | "labelPosition" | "onScrollToBottom" | "labelForCreate" | "searchFunction" | "searchValue" | "onDropdownOpen" | "onSearchValueChange" | "dropdownOpen" | "ignoreOutsideClicksRefs" | "labelForNotFound" | "virtualScroll" | "dropdownViewportRef" | "dropdownContainer" | "onCreate" | "getItemSubLabel" | "getItemAvatarUrl"> & React.RefAttributes<HTMLDivElement> & (ITEM extends {
|
|
168
170
|
label: UserSelectItemDefault["label"];
|
|
169
171
|
} ? {} : {
|
|
170
172
|
getItemLabel: UserSelectPropGetItemLabel<ITEM>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemSubLabel","subLabel","defaultGetItemAvatarUrl","avatarUrl","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","getItemSubLabel","getItemAvatarUrl","searchCompare","searchValue","compare","toLocaleLowerCase","indexOf","clearSizeMap","s","m","l","iconSizeMap"],"sources":["../../../../../src/components/UserSelect/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\n\nexport type UserSelectItemDefault = {\n label: string;\n id: string | number;\n subLabel?: string;\n avatarUrl?: string;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type UserSelectGroupDefault = {\n label: string;\n id: string | number;\n};\n\ntype UserSelectRenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type UserSelectPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type UserSelectPropGetItemSubLabel<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemAvatarUrl<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type UserSelectPropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type UserSelectPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type UserSelectPropGetGroupKey<GROUP> = (\n group: GROUP,\n) => string | number;\nexport type UserSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\nexport type UserSelectPropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\ntype UserSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\ntype UserSelectPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type UserSelectPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactNode | null;\nexport type UserSelectPropRenderValue<ITEM> = (\n props: UserSelectRenderValueProps<ITEM>,\n) => React.ReactNode | null;\n\nexport type UserSelectPropSize = Exclude<PropSize, 'xs'>;\n\nexport type UserSelectProps<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n disabled?: boolean;\n form?: PropForm;\n size?: UserSelectPropSize;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: UserSelectPropRenderItem<ITEM>;\n renderValue?: UserSelectPropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (label: string, props: { e: React.SyntheticEvent }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: UserSelectPropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: UserSelectPropValue<ITEM, MULTIPLE>;\n onChange: UserSelectPropOnChange<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: UserSelectPropGetItemLabel<ITEM>;\n getItemSubLabel?: UserSelectPropGetItemSubLabel<ITEM>;\n getItemAvatarUrl?: UserSelectPropGetItemAvatarUrl<ITEM>;\n getItemKey?: UserSelectPropGetItemKey<ITEM>;\n getItemGroupKey?: UserSelectPropGetItemGroupKey<ITEM>;\n getItemDisabled?: UserSelectPropGetItemDisabled<ITEM>;\n getGroupLabel?: UserSelectPropGetGroupLabel<GROUP>;\n getGroupKey?: UserSelectPropGetGroupKey<GROUP>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n virtualScroll?: boolean;\n onScrollToBottom?: (length: number) => void;\n onSearchValueChange?: (value: string) => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n dropdownViewportRef?: React.RefObject<HTMLElement>;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: UserSelectItemDefault['label'] }\n ? {}\n : { getItemLabel: UserSelectPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: UserSelectItemDefault['id'] }\n ? {}\n : { getItemKey: UserSelectPropGetItemKey<ITEM> }) &\n (GROUP extends { label: UserSelectGroupDefault['label'] }\n ? {}\n : { getGroupLabel: UserSelectPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: UserSelectGroupDefault['id'] }\n ? {}\n : { getGroupKey: UserSelectPropGetGroupKey<GROUP> });\n\nexport type UserSelectComponent = <\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactNode | null;\n\nexport const defaultGetItemKey: UserSelectPropGetItemKey<\n UserSelectItemDefault\n> = (item) => item.id;\nexport const defaultGetItemLabel: UserSelectPropGetItemLabel<\n UserSelectItemDefault\n> = (item) => item.label;\nexport const defaultGetItemSubLabel: UserSelectPropGetItemSubLabel<\n UserSelectItemDefault\n> = (item) => item.subLabel;\nexport const defaultGetItemAvatarUrl: UserSelectPropGetItemAvatarUrl<\n UserSelectItemDefault\n> = (item) => item.avatarUrl;\nexport const defaultGetItemGroupKey: UserSelectPropGetItemGroupKey<\n UserSelectItemDefault\n> = (item) => item.groupId;\nexport const defaultGetItemDisabled: UserSelectPropGetItemDisabled<\n UserSelectItemDefault\n> = (item) => item.disabled;\n\nexport const defaultGetGroupKey: UserSelectPropGetGroupKey<\n UserSelectGroupDefault\n> = (group) => group.id;\nexport const defaultGetGroupLabel: UserSelectPropGetGroupLabel<\n UserSelectGroupDefault\n> = (group) => group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(props: UserSelectProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n getItemSubLabel: props.getItemSubLabel || defaultGetItemSubLabel,\n getItemAvatarUrl: props.getItemAvatarUrl || defaultGetItemAvatarUrl,\n };\n}\n\nexport const searchCompare = (\n searchValue: string,\n compare?: string,\n): boolean => {\n if (!compare) {\n return false;\n }\n\n return (\n compare.toLocaleLowerCase().indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n};\n\nexport const clearSizeMap: Record<UserSelectPropSize, IconPropSize> = {\n s: 's',\n m: 's',\n l: 'm',\n};\n\nexport const iconSizeMap: Record<UserSelectPropSize, IconPropSize> = {\n s: 's',\n m: 'm',\n l: 'm',\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["defaultGetItemKey","item","id","defaultGetItemLabel","label","defaultGetItemSubLabel","subLabel","defaultGetItemAvatarUrl","avatarUrl","defaultGetItemGroupKey","groupId","defaultGetItemDisabled","disabled","defaultGetGroupKey","group","defaultGetGroupLabel","isMultipleParams","params","multiple","isNotMultipleParams","withDefaultGetters","props","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupLabel","getGroupKey","getItemSubLabel","getItemAvatarUrl","searchCompare","searchValue","compare","toLocaleLowerCase","indexOf","clearSizeMap","s","m","l","iconSizeMap"],"sources":["../../../../../src/components/UserSelect/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n PropForm,\n PropSize,\n PropStatus,\n PropView,\n RenderItemProps,\n} from '../SelectComponents/types';\n\nexport type UserSelectItemDefault = {\n label: string;\n id: string | number;\n subLabel?: string;\n avatarUrl?: string;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type UserSelectGroupDefault = {\n label: string;\n id: string | number;\n};\n\ntype UserSelectRenderValueProps<ITEM> = {\n item: ITEM;\n handleRemove?: (e: React.SyntheticEvent) => void;\n};\n\nexport type UserSelectPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type UserSelectPropGetItemSubLabel<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemAvatarUrl<ITEM> = (\n item: ITEM,\n) => string | undefined;\nexport type UserSelectPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type UserSelectPropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type UserSelectPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type UserSelectPropGetGroupKey<GROUP> = (\n group: GROUP,\n) => string | number;\nexport type UserSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\nexport type UserSelectPropSearchFunction<ITEM> = (\n item: ITEM,\n searchValue: string,\n) => boolean;\ntype UserSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\ntype UserSelectPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type UserSelectPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactNode | null;\nexport type UserSelectPropRenderValue<ITEM> = (\n props: UserSelectRenderValueProps<ITEM>,\n) => React.ReactNode | null;\n\nexport type UserSelectPropSize = Exclude<PropSize, 'xs'>;\n\nexport type UserSelectProps<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n disabled?: boolean;\n form?: PropForm;\n size?: UserSelectPropSize;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: UserSelectPropRenderItem<ITEM>;\n renderValue?: UserSelectPropRenderValue<ITEM>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: (label: string, props: { e: React.SyntheticEvent }) => void;\n inputRef?: React.RefObject<HTMLInputElement>;\n labelForNotFound?: string;\n labelForCreate?: string;\n labelForEmptyItems?: string;\n searchFunction?: UserSelectPropSearchFunction<ITEM>;\n searchValue?: string;\n multiple?: MULTIPLE;\n value?: UserSelectPropValue<ITEM, MULTIPLE>;\n onChange: UserSelectPropOnChange<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: UserSelectPropGetItemLabel<ITEM>;\n getItemSubLabel?: UserSelectPropGetItemSubLabel<ITEM>;\n getItemAvatarUrl?: UserSelectPropGetItemAvatarUrl<ITEM>;\n getItemKey?: UserSelectPropGetItemKey<ITEM>;\n getItemGroupKey?: UserSelectPropGetItemGroupKey<ITEM>;\n getItemDisabled?: UserSelectPropGetItemDisabled<ITEM>;\n getGroupLabel?: UserSelectPropGetGroupLabel<GROUP>;\n getGroupKey?: UserSelectPropGetGroupKey<GROUP>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n virtualScroll?: boolean;\n onScrollToBottom?: (length: number) => void;\n onSearchValueChange?: (value: string) => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n dropdownViewportRef?: React.RefObject<HTMLElement>;\n dropdownContainer?: Element;\n },\n HTMLDivElement\n> &\n (ITEM extends { label: UserSelectItemDefault['label'] }\n ? {}\n : { getItemLabel: UserSelectPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: UserSelectItemDefault['id'] }\n ? {}\n : { getItemKey: UserSelectPropGetItemKey<ITEM> }) &\n (GROUP extends { label: UserSelectGroupDefault['label'] }\n ? {}\n : { getGroupLabel: UserSelectPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: UserSelectGroupDefault['id'] }\n ? {}\n : { getGroupKey: UserSelectPropGetGroupKey<GROUP> });\n\nexport type UserSelectComponent = <\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactNode | null;\n\nexport const defaultGetItemKey: UserSelectPropGetItemKey<\n UserSelectItemDefault\n> = (item) => item.id;\nexport const defaultGetItemLabel: UserSelectPropGetItemLabel<\n UserSelectItemDefault\n> = (item) => item.label;\nexport const defaultGetItemSubLabel: UserSelectPropGetItemSubLabel<\n UserSelectItemDefault\n> = (item) => item.subLabel;\nexport const defaultGetItemAvatarUrl: UserSelectPropGetItemAvatarUrl<\n UserSelectItemDefault\n> = (item) => item.avatarUrl;\nexport const defaultGetItemGroupKey: UserSelectPropGetItemGroupKey<\n UserSelectItemDefault\n> = (item) => item.groupId;\nexport const defaultGetItemDisabled: UserSelectPropGetItemDisabled<\n UserSelectItemDefault\n> = (item) => item.disabled;\n\nexport const defaultGetGroupKey: UserSelectPropGetGroupKey<\n UserSelectGroupDefault\n> = (group) => group.id;\nexport const defaultGetGroupLabel: UserSelectPropGetGroupLabel<\n UserSelectGroupDefault\n> = (group) => group.label;\n\nexport const isMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, true> => {\n return !!params.multiple;\n};\n\nexport const isNotMultipleParams = <ITEM, GROUP>(\n params: UserSelectProps<ITEM, GROUP, boolean>,\n): params is UserSelectProps<ITEM, GROUP, false> => {\n return !params.multiple;\n};\n\nexport function withDefaultGetters<\n ITEM = UserSelectItemDefault,\n GROUP = UserSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(props: UserSelectProps<ITEM, GROUP, MULTIPLE>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemKey: props.getItemKey || defaultGetItemKey,\n getItemGroupKey: props.getItemGroupKey || defaultGetItemGroupKey,\n getItemDisabled: props.getItemDisabled || defaultGetItemDisabled,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getGroupKey: props.getGroupKey || defaultGetGroupKey,\n getItemSubLabel: props.getItemSubLabel || defaultGetItemSubLabel,\n getItemAvatarUrl: props.getItemAvatarUrl || defaultGetItemAvatarUrl,\n };\n}\n\nexport const searchCompare = (\n searchValue: string,\n compare?: string,\n): boolean => {\n if (!compare) {\n return false;\n }\n\n return (\n compare.toLocaleLowerCase().indexOf(searchValue.toLocaleLowerCase()) !== -1\n );\n};\n\nexport const clearSizeMap: Record<UserSelectPropSize, IconPropSize> = {\n s: 's',\n m: 's',\n l: 'm',\n};\n\nexport const iconSizeMap: Record<UserSelectPropSize, IconPropSize> = {\n s: 's',\n m: 'm',\n l: 'm',\n};\n"],"mappings":"qqBAyJA,MAAO,IAAMA,kBAEZ,CAAG,SAACC,CAAD,QAAUA,EAAI,CAACC,EAAf,CAFG,CAGP,MAAO,IAAMC,oBAEZ,CAAG,SAACF,CAAD,QAAUA,EAAI,CAACG,KAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACJ,CAAD,QAAUA,EAAI,CAACK,QAAf,CAFG,CAGP,MAAO,IAAMC,wBAEZ,CAAG,SAACN,CAAD,QAAUA,EAAI,CAACO,SAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACR,CAAD,QAAUA,EAAI,CAACS,OAAf,CAFG,CAGP,MAAO,IAAMC,uBAEZ,CAAG,SAACV,CAAD,QAAUA,EAAI,CAACW,QAAf,CAFG,CAIP,MAAO,IAAMC,mBAEZ,CAAG,SAACC,CAAD,QAAWA,EAAK,CAACZ,EAAjB,CAFG,CAGP,MAAO,IAAMa,qBAEZ,CAAG,SAACD,CAAD,QAAWA,EAAK,CAACV,KAAjB,CAFG,CAIP,MAAO,IAAMY,iBAAgB,CAAG,SAC9BC,CAD8B,CAEmB,CACjD,MAAO,CAAC,CAACA,CAAM,CAACC,QACjB,CAJM,CAMP,MAAO,IAAMC,oBAAmB,CAAG,SACjCF,CADiC,CAEiB,CAClD,MAAO,CAACA,CAAM,CAACC,QAChB,CAJM,CAMP,MAAO,SAASE,mBAAT,CAILC,CAJK,CAI0C,CAC/C,sCACKA,CADL,MAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBnB,mBAFtC,CAGEoB,UAAU,CAAEF,CAAK,CAACE,UAAN,EAAoBvB,iBAHlC,CAIEwB,eAAe,CAAEH,CAAK,CAACG,eAAN,EAAyBf,sBAJ5C,CAKEgB,eAAe,CAAEJ,CAAK,CAACI,eAAN,EAAyBd,sBAL5C,CAMEe,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBX,oBANxC,CAOEY,WAAW,CAAEN,CAAK,CAACM,WAAN,EAAqBd,kBAPpC,CAQEe,eAAe,CAAEP,CAAK,CAACO,eAAN,EAAyBvB,sBAR5C,CASEwB,gBAAgB,CAAER,CAAK,CAACQ,gBAAN,EAA0BtB,uBAT9C,EAWD,CAED,MAAO,IAAMuB,cAAa,CAAG,SAC3BC,CAD2B,CAE3BC,CAF2B,CAGf,SACPA,CADO,EAM+D,CAAC,CAA1E,GAAAA,CAAO,CAACC,iBAAR,GAA4BC,OAA5B,CAAoCH,CAAW,CAACE,iBAAZ,EAApC,CAEH,CAXM,CAaP,MAAO,IAAME,aAAsD,CAAG,CACpEC,CAAC,CAAE,GADiE,CAEpEC,CAAC,CAAE,GAFiE,CAGpEC,CAAC,CAAE,GAHiE,CAA/D,CAMP,MAAO,IAAMC,YAAqD,CAAG,CACnEH,CAAC,CAAE,GADgE,CAEnEC,CAAC,CAAE,GAFgE,CAGnEC,CAAC,CAAE,GAHgE,CAA9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useBodyScrollFreeze';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/hooks/useBodyScrollFreeze/index.ts"],"sourcesContent":["export * from './useBodyScrollFreeze';\n"],"mappings":"AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.BodyScrollFreeze{margin-right:var(--body-scroll-freeze-scrollbar-width)!important;overflow:hidden!important}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const cnBodyScrollFreeze: import("@bem-react/classname").ClassNameFormatter;
|
|
2
|
+
export declare const SCROLLBAR_WIDTH_VAR = "--body-scroll-freeze-scrollbar-width";
|
|
3
|
+
export type UseBodyScrollFreezeProps = {
|
|
4
|
+
isActive?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare const useBodyScrollFreeze: ({ isActive, }: UseBodyScrollFreezeProps) => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useEffect}from"react";import{cn}from"../../utils/bem";export var cnBodyScrollFreeze=cn("BodyScrollFreeze");export var SCROLLBAR_WIDTH_VAR="--body-scroll-freeze-scrollbar-width";var isClassName=function(a,b){return a.classList.contains(b)},addClassName=function(a,b){isClassName(a,b)||a.classList.add(b)},removeClassName=function(a,b){isClassName(a,b)&&a.classList.remove(b)},addCssVariable=function(a,b){document.documentElement.style.setProperty(a,b)},removeCssVariable=function(a){document.documentElement.style.removeProperty(a)},getScrollBarWidth=function(){return"undefined"==typeof window?0:window.innerWidth-document.documentElement.clientWidth},bodyAddStyles=function(){var a=getScrollBarWidth();addCssVariable(SCROLLBAR_WIDTH_VAR,"".concat(a,"px")),addClassName(document.documentElement,cnBodyScrollFreeze())},bodyRemoveStyles=function(){removeClassName(document.documentElement,cnBodyScrollFreeze()),removeCssVariable(SCROLLBAR_WIDTH_VAR)};export var useBodyScrollFreeze=function(a){var b=a.isActive;useEffect(function(){if(b)return"undefined"==typeof window?void 0:(bodyAddStyles(),bodyRemoveStyles)},[b])};
|
|
2
|
+
//# sourceMappingURL=useBodyScrollFreeze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBodyScrollFreeze.js","names":["useEffect","cn","cnBodyScrollFreeze","SCROLLBAR_WIDTH_VAR","isClassName","element","className","classList","contains","addClassName","add","removeClassName","remove","addCssVariable","variableName","value","document","documentElement","style","setProperty","removeCssVariable","removeProperty","getScrollBarWidth","window","innerWidth","clientWidth","bodyAddStyles","scrollBarWidth","bodyRemoveStyles","useBodyScrollFreeze","isActive"],"sources":["../../../../../src/hooks/useBodyScrollFreeze/useBodyScrollFreeze.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { cn } from '##/utils/bem';\n\nexport const cnBodyScrollFreeze = cn('BodyScrollFreeze');\nexport const SCROLLBAR_WIDTH_VAR = '--body-scroll-freeze-scrollbar-width';\n\nconst isClassName = (element: HTMLElement, className: string) => {\n return element.classList.contains(className);\n};\n\nconst addClassName = (element: HTMLElement, className: string) => {\n if (!isClassName(element, className)) {\n element.classList.add(className);\n }\n};\n\nconst removeClassName = (element: HTMLElement, className: string) => {\n if (isClassName(element, className)) {\n element.classList.remove(className);\n }\n};\n\nconst addCssVariable = (variableName: string, value: string) => {\n document.documentElement.style.setProperty(variableName, value);\n};\n\nconst removeCssVariable = (variableName: string) => {\n document.documentElement.style.removeProperty(variableName);\n};\n\nconst getScrollBarWidth = () =>\n typeof window !== 'undefined'\n ? window.innerWidth - document.documentElement.clientWidth\n : 0;\n\nconst bodyAddStyles = () => {\n const scrollBarWidth = getScrollBarWidth();\n\n addCssVariable(SCROLLBAR_WIDTH_VAR, `${scrollBarWidth}px`);\n\n addClassName(document.documentElement, cnBodyScrollFreeze());\n};\n\nconst bodyRemoveStyles = () => {\n removeClassName(document.documentElement, cnBodyScrollFreeze());\n\n removeCssVariable(SCROLLBAR_WIDTH_VAR);\n};\n\nexport type UseBodyScrollFreezeProps = {\n isActive?: boolean;\n};\n\nexport const useBodyScrollFreeze = ({\n isActive,\n}: UseBodyScrollFreezeProps): void => {\n useEffect(() => {\n if (!isActive) return;\n if (typeof window === 'undefined') return;\n\n bodyAddStyles();\n\n return bodyRemoveStyles;\n }, [isActive]);\n};\n"],"mappings":"AAAA,OAASA,SAAT,KAA0B,OAA1B,CAEA,OAASC,EAAT,uBAEA,MAAO,IAAMC,mBAAkB,CAAGD,EAAE,CAAC,kBAAD,CAA7B,CACP,MAAO,IAAME,oBAAmB,CAAG,sCAA5B,C,GAEDC,YAAW,CAAG,SAACC,CAAD,CAAuBC,CAAvB,CAA6C,CAC/D,MAAOD,EAAO,CAACE,SAAR,CAAkBC,QAAlB,CAA2BF,CAA3B,CACR,C,CAEKG,YAAY,CAAG,SAACJ,CAAD,CAAuBC,CAAvB,CAA6C,CAC3DF,WAAW,CAACC,CAAD,CAAUC,CAAV,CADgD,EAE9DD,CAAO,CAACE,SAAR,CAAkBG,GAAlB,CAAsBJ,CAAtB,CAEH,C,CAEKK,eAAe,CAAG,SAACN,CAAD,CAAuBC,CAAvB,CAA6C,CAC/DF,WAAW,CAACC,CAAD,CAAUC,CAAV,CADoD,EAEjED,CAAO,CAACE,SAAR,CAAkBK,MAAlB,CAAyBN,CAAzB,CAEH,C,CAEKO,cAAc,CAAG,SAACC,CAAD,CAAuBC,CAAvB,CAAyC,CAC9DC,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,WAA/B,CAA2CL,CAA3C,CAAyDC,CAAzD,CACD,C,CAEKK,iBAAiB,CAAG,SAACN,CAAD,CAA0B,CAClDE,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BG,cAA/B,CAA8CP,CAA9C,CACD,C,CAEKQ,iBAAiB,CAAG,iBACN,WAAlB,QAAOC,OAAP,CAEI,CAFJ,CACIA,MAAM,CAACC,UAAP,CAAoBR,QAAQ,CAACC,eAAT,CAAyBQ,WAFzB,C,CAKpBC,aAAa,CAAG,UAAM,CAC1B,GAAMC,EAAc,CAAGL,iBAAiB,EAAxC,CAEAT,cAAc,CAACV,mBAAD,WAAyBwB,CAAzB,OAHY,CAK1BlB,YAAY,CAACO,QAAQ,CAACC,eAAV,CAA2Bf,kBAAkB,EAA7C,CACb,C,CAEK0B,gBAAgB,CAAG,UAAM,CAC7BjB,eAAe,CAACK,QAAQ,CAACC,eAAV,CAA2Bf,kBAAkB,EAA7C,CADc,CAG7BkB,iBAAiB,CAACjB,mBAAD,CAClB,C,CAMD,MAAO,IAAM0B,oBAAmB,CAAG,WAEG,IADpCC,EACoC,GADpCA,QACoC,CACpC9B,SAAS,CAAC,UAAM,CACd,GAAK8B,CAAL,OACsB,WAAlB,QAAOP,OADX,SAGAG,aAAa,EAHb,CAKOE,gBALP,CAMD,CAPQ,CAON,CAACE,CAAD,CAPM,CAQV,CAXM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useHover';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/hooks/useHover/index.ts"],"sourcesContent":["export * from './useHover';\n"],"mappings":"AAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type UseHoverProps = {
|
|
2
|
+
isActive?: boolean | (() => boolean | undefined);
|
|
3
|
+
refs: React.RefObject<HTMLElement>[];
|
|
4
|
+
onHover?: (event: MouseEvent) => void;
|
|
5
|
+
onBlur?: (event: MouseEvent) => void;
|
|
6
|
+
blurDelay?: number;
|
|
7
|
+
hoverDelay?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const useHover: ({ refs, onHover, onBlur, blurDelay, hoverDelay, isActive, }: UseHoverProps) => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
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 e(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 e(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{useEffect,useRef}from"react";import{useMutableRef}from"../useMutableRef";export var useHover=function(a){var b=a.refs,c=a.onHover,d=a.onBlur,e=a.blurDelay,f=void 0===e?200:e,g=a.hoverDelay,h=void 0===g?0:g,i=a.isActive,j=useRef(null),k=useRef(null),l=useRef(!1),m=useMutableRef([c,d,i,f,h]),n=function(){return"function"==typeof m.current[2]?m.current[2]():m.current[2]},o=function(){k.current&&(clearTimeout(k.current),k.current=null),j.current&&(clearTimeout(j.current),j.current=null)};useEffect(function(){var a,c=function(a){n()&&(o(),k.current=setTimeout(function(){if(!l.current){var b,c;l.current=!0,null===(b=(c=m.current)[0])||void 0===b?void 0:b.call(c,a)}},m.current[4]))},d=function(a){n()&&(o(),j.current=setTimeout(function(){if(l.current){var b,c;l.current=!1,null===(b=(c=m.current)[1])||void 0===b?void 0:b.call(c,a)}},m.current[3]))},e=_createForOfIteratorHelper(b);try{for(e.s();!(a=e.n()).done;){var f,g,h=a.value;null===(f=h.current)||void 0===f?void 0:f.addEventListener("mouseenter",c),null===(g=h.current)||void 0===g?void 0:g.addEventListener("mouseleave",d)}}catch(a){e.e(a)}finally{e.f()}return function(){var a,e=_createForOfIteratorHelper(b);try{for(e.s();!(a=e.n()).done;){var f,g,h=a.value;null===(f=h.current)||void 0===f?void 0:f.removeEventListener("mouseenter",c),null===(g=h.current)||void 0===g?void 0:g.removeEventListener("mouseleave",d)}}catch(a){e.e(a)}finally{e.f()}o()}},[b])};
|
|
2
|
+
//# sourceMappingURL=useHover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHover.js","names":["useEffect","useRef","useMutableRef","useHover","refs","onHover","onBlur","blurDelay","hoverDelay","isActive","blurTimeoutId","hoverTimeoutId","isHovered","mutableRef","getActive","current","clearTimeouts","clearTimeout","handleMouseEnter","event","setTimeout","handleMouseLeave","element","addEventListener","removeEventListener"],"sources":["../../../../../src/hooks/useHover/useHover.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { useMutableRef } from '##/hooks/useMutableRef';\n\nexport type UseHoverProps = {\n isActive?: boolean | (() => boolean | undefined);\n refs: React.RefObject<HTMLElement>[];\n onHover?: (event: MouseEvent) => void;\n onBlur?: (event: MouseEvent) => void;\n blurDelay?: number;\n hoverDelay?: number;\n};\n\nexport const useHover = ({\n refs,\n onHover,\n onBlur,\n blurDelay = 200,\n hoverDelay = 0,\n isActive,\n}: UseHoverProps): void => {\n const blurTimeoutId = useRef<NodeJS.Timeout | null>(null);\n const hoverTimeoutId = useRef<NodeJS.Timeout | null>(null);\n const isHovered = useRef(false);\n const mutableRef = useMutableRef([\n onHover,\n onBlur,\n isActive,\n blurDelay,\n hoverDelay,\n ] as const);\n\n const getActive = () =>\n typeof mutableRef.current[2] === 'function'\n ? mutableRef.current[2]()\n : mutableRef.current[2];\n\n const clearTimeouts = () => {\n if (hoverTimeoutId.current) {\n clearTimeout(hoverTimeoutId.current);\n hoverTimeoutId.current = null;\n }\n if (blurTimeoutId.current) {\n clearTimeout(blurTimeoutId.current);\n blurTimeoutId.current = null;\n }\n };\n\n useEffect(() => {\n const handleMouseEnter = (event: MouseEvent) => {\n if (!getActive()) {\n return;\n }\n\n clearTimeouts();\n\n hoverTimeoutId.current = setTimeout(() => {\n if (!isHovered.current) {\n isHovered.current = true;\n mutableRef.current[0]?.(event);\n }\n }, mutableRef.current[4]);\n };\n\n const handleMouseLeave = (event: MouseEvent) => {\n if (!getActive()) {\n return;\n }\n\n clearTimeouts();\n\n blurTimeoutId.current = setTimeout(() => {\n if (isHovered.current) {\n isHovered.current = false;\n mutableRef.current[1]?.(event);\n }\n }, mutableRef.current[3]);\n };\n\n for (const element of refs) {\n element.current?.addEventListener('mouseenter', handleMouseEnter);\n element.current?.addEventListener('mouseleave', handleMouseLeave);\n }\n\n return () => {\n for (const element of refs) {\n element.current?.removeEventListener('mouseenter', handleMouseEnter);\n element.current?.removeEventListener('mouseleave', handleMouseLeave);\n }\n clearTimeouts();\n };\n }, [refs]);\n};\n"],"mappings":"qpCAAA,OAASA,SAAT,CAAoBC,MAApB,KAAkC,OAAlC,CAEA,OAASC,aAAT,wBAWA,MAAO,IAAMC,SAAQ,CAAG,WAOG,IANzBC,EAMyB,GANzBA,IAMyB,CALzBC,CAKyB,GALzBA,OAKyB,CAJzBC,CAIyB,GAJzBA,MAIyB,KAHzBC,SAGyB,CAHzBA,CAGyB,YAHb,GAGa,OAFzBC,UAEyB,CAFzBA,CAEyB,YAFZ,CAEY,GADzBC,CACyB,GADzBA,QACyB,CACnBC,CAAa,CAAGT,MAAM,CAAwB,IAAxB,CADH,CAEnBU,CAAc,CAAGV,MAAM,CAAwB,IAAxB,CAFJ,CAGnBW,CAAS,CAAGX,MAAM,IAHC,CAInBY,CAAU,CAAGX,aAAa,CAAC,CAC/BG,CAD+B,CAE/BC,CAF+B,CAG/BG,CAH+B,CAI/BF,CAJ+B,CAK/BC,CAL+B,CAAD,CAJP,CAYnBM,CAAS,CAAG,iBACiB,UAAjC,QAAOD,EAAU,CAACE,OAAX,CAAmB,CAAnB,CAAP,CACIF,CAAU,CAACE,OAAX,CAAmB,CAAnB,GADJ,CAEIF,CAAU,CAACE,OAAX,CAAmB,CAAnB,CAHY,CAZO,CAiBnBC,CAAa,CAAG,UAAM,CACtBL,CAAc,CAACI,OADO,GAExBE,YAAY,CAACN,CAAc,CAACI,OAAhB,CAFY,CAGxBJ,CAAc,CAACI,OAAf,CAAyB,IAHD,EAKtBL,CAAa,CAACK,OALQ,GAMxBE,YAAY,CAACP,CAAa,CAACK,OAAf,CANY,CAOxBL,CAAa,CAACK,OAAd,CAAwB,IAPA,CAS3B,CA1BwB,CA4BzBf,SAAS,CAAC,UAAM,OACRkB,CAAgB,CAAG,SAACC,CAAD,CAAuB,CACzCL,CAAS,EADgC,GAK9CE,CAAa,EALiC,CAO9CL,CAAc,CAACI,OAAf,CAAyBK,UAAU,CAAC,UAAM,CACxC,GAAI,CAACR,CAAS,CAACG,OAAf,CAAwB,SACtBH,CAAS,CAACG,OAAV,GADsB,WAEtB,GAAAF,CAAU,CAACE,OAAX,EAAmB,CAAnB,CAFsB,qBAEtB,SAAwBI,CAAxB,CACD,CACF,CALkC,CAKhCN,CAAU,CAACE,OAAX,CAAmB,CAAnB,CALgC,CAPW,CAa/C,CAda,CAgBRM,CAAgB,CAAG,SAACF,CAAD,CAAuB,CACzCL,CAAS,EADgC,GAK9CE,CAAa,EALiC,CAO9CN,CAAa,CAACK,OAAd,CAAwBK,UAAU,CAAC,UAAM,CACvC,GAAIR,CAAS,CAACG,OAAd,CAAuB,SACrBH,CAAS,CAACG,OAAV,GADqB,WAErB,GAAAF,CAAU,CAACE,OAAX,EAAmB,CAAnB,CAFqB,qBAErB,SAAwBI,CAAxB,CACD,CACF,CALiC,CAK/BN,CAAU,CAACE,OAAX,CAAmB,CAAnB,CAL+B,CAPY,CAa/C,CA7Ba,8BA+BQX,CA/BR,MA+Bd,2BAA4B,SAAjBkB,CAAiB,mBAC1BA,CAAO,CAACP,OADkB,qBAC1B,EAAiBQ,gBAAjB,CAAkC,YAAlC,CAAgDL,CAAhD,CAD0B,WAE1BI,CAAO,CAACP,OAFkB,qBAE1B,EAAiBQ,gBAAjB,CAAkC,YAAlC,CAAgDF,CAAhD,CACD,CAlCa,+BAoCd,MAAO,WAAM,oCACWjB,CADX,MACX,2BAA4B,SAAjBkB,CAAiB,mBAC1BA,CAAO,CAACP,OADkB,qBAC1B,EAAiBS,mBAAjB,CAAqC,YAArC,CAAmDN,CAAnD,CAD0B,WAE1BI,CAAO,CAACP,OAFkB,qBAE1B,EAAiBS,mBAAjB,CAAqC,YAArC,CAAmDH,CAAnD,CACD,CAJU,+BAKXL,CAAa,EACd,CACF,CA3CQ,CA2CN,CAACZ,CAAD,CA3CM,CA4CV,CA/EM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@consta/uikit",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.31.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"ui-kit",
|
|
6
6
|
"design-system",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@bem-react/classname": "^1.6.0",
|
|
18
18
|
"@bem-react/classnames": "^1.3.10",
|
|
19
|
-
"@consta/icons": "^1.
|
|
19
|
+
"@consta/icons": "^1.7.1",
|
|
20
20
|
"@consta/table": "^0.7.0",
|
|
21
21
|
"@reatom/core": "^3.10.1",
|
|
22
22
|
"@reatom/npm-react": "^3.10.6",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/hooks/useBodyScrollFreeze";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/hooks/useBodyScrollFreeze";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/hooks/useHover";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/hooks/useHover";
|