@consta/uikit 5.8.2-beta.2 → 5.9.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/SelectComponents/useSelect/useSelect.js +1 -1
- package/__internal__/src/components/SelectComponents/useSelect/useSelect.js.map +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeDropdownWrapper/useFittingItems.js +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeDropdownWrapper/useFittingItems.js.map +1 -1
- package/__internal__/src/components/UserSelect/helpers.d.ts +1 -1
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js.map +1 -1
- package/package.json +1 -1
|
@@ -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{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useDebounce}from"../../../hooks/useDebounce";import{useKeys}from"../../../hooks/useKeysDepricated";import{useMutableRef}from"../../../hooks/useMutableRef";import{usePrevious}from"../../../hooks/usePrevious";import{useRefs}from"../../../hooks/useRefs";import{getCountedGroups,getGroups}from"../../../utils/getGroups";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 isNotOptionForCreate=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.onDropdownOpen,w=a.onSearchValueChange,x=a.dropdownOpen,y=a.ignoreOutsideClicksRefs,z=useRef(null),A=useState(!1),B=_slicedToArray(A,2),C=B[0],D=B[1],E=useMemo(function(){return a.value&&(Array.isArray(a.value)?a.value:[a.value])||[]},[a.value]),F=useHoistedState(initialState),G=_slicedToArray(F,2),H=G[0],I=H.searchValue,J=H.isOpen,K=H.highlightedIndex,L=H.resolvedSearchValue,M=H.scrollToHighlighted,N=G[1],O=useMutableRef(w),P=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},Q=useMemo(function(){if(L&&""!==L){var c=b.filter(function(a){return k?k(a,L):P(a,L)});return[c,a.onCreate&&!c.length?{label:I,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,L]),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useMemo(function(){var b=getCountedGroups(getGroups(S,null!==m&&void 0!==m&&m.length?l:void 0,m,p,q),isMultipleParams(a)?a.value:[],o,j,r);return T?[T].concat(_toConsumableArray(b)):b},[E,o,S,m,l,r,p,q,T]),V=S.length+(T?1:0)+(o?U.length:0),W=useRefs(V,[J]),X=useMemo(function(){var b=!1;return 0<I.length&&(b=0===U.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[U]),Y=0!==b.length,Z=useMemo(function(){return!isNotMultipleParams(a)&&!!o&&b.filter(function(a){return E.find(function(b){return j(b)===j(a)})}).length===b.length},[o,h,E,b]),$=function(){var a=0;if(0<E.length){var b,c=_createForOfIteratorHelper(U);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(E[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},aa=useCallback(function(a){N(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[N]),ba=useDebounce(function(a){N(function(b){return b.resolvedSearchValue===a?b:_objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),ca=useCallback(function(a){N(function(b){return b.searchValue===a?b:_objectSpread(_objectSpread({},b),{},{searchValue:a||""})},actions.setSearch),ba(a||"")},[N,ba]),da=usePrevious(J),ea=useCallback(function(a,b){N(function(c){var d=Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),V-1);return c.highlightedIndex===d?c:_objectSpread(_objectSpread({},c),{},{highlightedIndex:d,scrollToHighlighted:b})},actions.highlightIndex)},[S,N,T]);useLayoutEffect(function(){if(null!==E&&!da&&J){var a=$();0<S.length&&scrollToIndex(a,c,W,function(){return ea(0,!1)})}});var fa=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)}),f=null!==e&&void 0!==e&&e.length?e:null;a.onChange(f,{e:b})}},ga=function(b,c){if(!(r&&r(c))){if(isMultipleParams(a)){var d=E.some(function(a){return j(a)===j(c)})?E.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(E),[c]),e=null!==d&&void 0!==d&&d.length?d:null;a.onChange(e,{e:b})}isNotMultipleParams(a)&&(a.onChange(c,{e:b}),aa(!1),ca(""))}},ha=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=[];if(E.forEach(function(a){e.find(function(b){return j(a)===j(b)})?f.push(a):g.push(a)}),f.length===e.length)a.onChange(g,{e:c});else{var h=[].concat(g,_toConsumableArray(e));a.onChange(h,{e:c})}}},ia=function(b,c){a.onCreate&&a.onCreate(c,{e:b,label:c}),aa(!1),ca("")},ja=function(b){if(isMultipleParams(a)){var c=null===E||void 0===E?void 0:E.filter(function(a){return null===r||void 0===r?void 0:r(a)}),d=c&&0<c.length?c:null;a.onChange(d,{e:b})}isNotMultipleParams(a)&&a.onChange(null,{e:b}),ca("")},ka=function(a,b){b.preventDefault(),f||aa(!0),ea(function(a){return a-1},!0)},la=function(a,b){b.preventDefault(),f||aa(!0),ea(function(a){return a+1},!0)},ma=useKeys({ArrowUp:ka,ArrowDown:la,PageUp:ka,PageDown:la,Home:ka,End:la,Enter:function Enter(a,b){if(J){(I||S[K])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(U);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(K),e=_slicedToArray(d,2),f=e[0],g=e[1];if(isOptionForCreate(g))return void ia(b,g.label);if(isOptionForSelectAll(g)){var h;return void ha({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&&ga(b,g)}else aa(!0)},Escape:function Escape(){aa(!1)},Tab:function Tab(a,b){J&&(b.preventDefault(),aa(!1))},Backspace:function Backspace(a,b){I||(h?fa(b,E[E.length-1]):ja(b))}});useClickOutside({isActive:J,ignoreClicksInsideRefs:[c,d].concat(_toConsumableArray(y||[])),handler:function handler(){aa(!1)}}),useEffect(function(){f&&aa(!1)},[f]),useEffect(function(){var a=$();ea(a,!0)},[ea]),useEffect(function(){0<S.length&&M&&scrollToIndex(K,c,W,function(){return ea(0,!1)})},[K]);return useEffect(function(){ca(u)},[u]),useEffect(function(){var a;null===(a=c.current)||void 0===a?void 0:a.scrollTo({top:0})},[L]),useEffect(function(){null===v||void 0===v?void 0:v(J)},[J]),useEffect(function(){var a;null===(a=O.current)||void 0===a?void 0:a.call(O,I)},[I]),useEffect(function(){aa(x||!1)},[x]),{isOpen:J,isFocused:C,highlightedIndex:K,visibleItems:U,highlightIndex:ea,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=a.keyPrefix;if(isOptionForCreate(c))return{onClick:function onClick(a){ia(a,c.label)},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForCreate")};if(isOptionForSelectAll(c)){var f=function(){var a,b=_createForOfIteratorHelper(U);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){ha({e:a,items:f()})},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForSelectAll")}}var e=j(c);return{onClick:function onClick(a){ga(a,c)},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!!E.find(function(a){return j(a)===e}),hovered:b===K,key:"".concat(d).concat(e)}},handleInputFocus:function handleInputFocus(a){f||(!C&&D(!0),"function"==typeof s&&s(a))},handleInputBlur:function handleInputBlur(a){if(J){var b;return void(null===(b=z.current)||void 0===b?void 0:b.focus())}C&&D(!1),"function"==typeof t&&t(a)},handleToggleDropdown:function handleToggleDropdown(){if(J)aa(!1),D(!1);else{var a;aa(!0),D(!0),null===(a=z.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||aa(!J),h){var a;null===(a=z.current)||void 0===a?void 0:a.focus()}},inputRef:z,getKeyProps:ma,handleInputChange:function handleInputChange(a){f||!h&&0<E.length||(ca(a.target.value),aa(!0))},searchValue:I,clearValue:ja,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return fa(b,a)}},notFound:X,hasItems:Y,allItemsSelected:Z,optionsRefs:W}}
|
|
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{useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useDebounce}from"../../../hooks/useDebounce";import{useKeys}from"../../../hooks/useKeysDepricated";import{useMutableRef}from"../../../hooks/useMutableRef";import{usePrevious}from"../../../hooks/usePrevious";import{useRefs}from"../../../hooks/useRefs";import{getCountedGroups,getGroups}from"../../../utils/getGroups";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 isNotOptionForCreate=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.onDropdownOpen,w=a.onSearchValueChange,x=a.dropdownOpen,y=a.ignoreOutsideClicksRefs,z=useRef(null),A=useState(!1),B=_slicedToArray(A,2),C=B[0],D=B[1],E=useMemo(function(){return a.value&&(Array.isArray(a.value)?a.value:[a.value])||[]},[a.value]),F=useHoistedState(initialState),G=_slicedToArray(F,2),H=G[0],I=H.searchValue,J=H.isOpen,K=H.highlightedIndex,L=H.resolvedSearchValue,M=H.scrollToHighlighted,N=G[1],O=useMutableRef(w),P=function(a,b){return-1!==i(a).toLocaleLowerCase().indexOf(b.toLocaleLowerCase())},Q=useMemo(function(){if(L&&""!==L){var c=b.filter(function(a){return k?k(a,L):P(a,L)});return[c,a.onCreate&&!c.length?{label:I,__optionForCreate:!0}:void 0]}return[b,void 0]},[b,L,a.onCreate]),R=_slicedToArray(Q,2),S=R[0],T=R[1],U=useMemo(function(){var b=getCountedGroups(getGroups(S,null!==m&&void 0!==m&&m.length?l:void 0,m,p,q),isMultipleParams(a)?a.value:[],o,j,r);return T?[T].concat(_toConsumableArray(b)):b},[E,o,S,m,l,r,p,q,T]),V=S.length+(T?1:0)+(o?U.length:0),W=useRefs(V,[J]),X=useMemo(function(){var b=!1;return 0<I.length&&(b=0===U.filter(function(a){return isOptionForCreate(a)||0<a.items.length||a.group}).length&&!a.onCreate),b},[U]),Y=0!==b.length,Z=useMemo(function(){return!isNotMultipleParams(a)&&!!o&&b.filter(function(a){return E.find(function(b){return j(b)===j(a)})}).length===b.length},[o,h,E,b]),$=function(){var a=0;if(0<E.length){var b,c=_createForOfIteratorHelper(U);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(E[0]))return a;a++}}catch(a){e.e(a)}finally{e.f()}}}catch(a){c.e(a)}finally{c.f()}}return 0},aa=useCallback(function(a){N(function(b){return _objectSpread(_objectSpread({},b),{},{isOpen:a})},actions.setOpen)},[N]),ba=useDebounce(function(a){N(function(b){return b.resolvedSearchValue===a?b:_objectSpread(_objectSpread({},b),{},{resolvedSearchValue:a})},actions.setSearch)},300),ca=useCallback(function(a){N(function(b){return b.searchValue===a?b:_objectSpread(_objectSpread({},b),{},{searchValue:a||""})},actions.setSearch),ba(a||"")},[N,ba]),da=usePrevious(J),ea=useCallback(function(a,b){N(function(c){var d=Math.min(Math.max(0,"function"==typeof a?a(c.highlightedIndex):a),V-1);return c.highlightedIndex===d?c:_objectSpread(_objectSpread({},c),{},{highlightedIndex:d,scrollToHighlighted:b})},actions.highlightIndex)},[S,N,T]);useLayoutEffect(function(){if(null!==E&&!da&&J){var a=$();0<S.length&&scrollToIndex(a,c,W,function(){return ea(0,!1)})}});var fa=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)}),f=null!==e&&void 0!==e&&e.length?e:null;a.onChange(f,{e:b})}},ga=function(b,c){if(!(r&&r(c))){if(isMultipleParams(a)){var d=E.some(function(a){return j(a)===j(c)})?E.filter(function(a){return j(a)!==j(c)}):[].concat(_toConsumableArray(E),[c]),e=null!==d&&void 0!==d&&d.length?d:null;a.onChange(e,{e:b})}isNotMultipleParams(a)&&(a.onChange(c,{e:b}),aa(!1),ca(""))}},ha=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=[];if(E.forEach(function(a){e.find(function(b){return j(a)===j(b)})?f.push(a):g.push(a)}),f.length===e.length)a.onChange(g,{e:c});else{var h=[].concat(g,_toConsumableArray(e));a.onChange(h,{e:c})}}},ia=function(b,c){a.onCreate&&a.onCreate(c,{e:b,label:c}),aa(!1),ca("")},ja=function(b){if(isMultipleParams(a)){var c=null===E||void 0===E?void 0:E.filter(function(a){return null===r||void 0===r?void 0:r(a)}),d=c&&0<c.length?c:null;a.onChange(d,{e:b})}isNotMultipleParams(a)&&a.onChange(null,{e:b}),ca("")},ka=function(a,b){b.preventDefault(),f||aa(!0),ea(function(a){return a-1},!0)},la=function(a,b){b.preventDefault(),f||aa(!0),ea(function(a){return a+1},!0)},ma=useKeys({ArrowUp:ka,ArrowDown:la,PageUp:ka,PageDown:la,Home:ka,End:la,Enter:function Enter(a,b){if(J){(I||S[K])&&b.preventDefault();var c=function(a){var b,c=0,d=_createForOfIteratorHelper(U);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(K),e=_slicedToArray(d,2),f=e[0],g=e[1];if(isOptionForCreate(g))return void ia(b,g.label);if(isOptionForSelectAll(g)){var h;return void ha({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&&ga(b,g)}else aa(!0)},Escape:function Escape(){aa(!1)},Tab:function Tab(a,b){J&&(b.preventDefault(),aa(!1))},Backspace:function Backspace(a,b){I||(h?fa(b,E[E.length-1]):ja(b))}});useClickOutside({isActive:J,ignoreClicksInsideRefs:[c,d].concat(_toConsumableArray(y||[])),handler:function handler(){aa(!1)}}),useEffect(function(){f&&aa(!1)},[f]),useEffect(function(){var a=$();ea(a,!0)},[ea]),useEffect(function(){0<S.length&&M&&scrollToIndex(K,c,W,function(){return ea(0,!1)})},[K]);return useEffect(function(){ca(u)},[u]),useEffect(function(){var a;null===(a=c.current)||void 0===a?void 0:a.scrollTo({top:0})},[L]),useEffect(function(){null===v||void 0===v?void 0:v(J)},[J]),useEffect(function(){var a;null===(a=O.current)||void 0===a?void 0:a.call(O,I)},[I]),useEffect(function(){aa(x||!1)},[x]),{isOpen:J,isFocused:C,highlightedIndex:K,visibleItems:U,highlightIndex:ea,getOptionProps:function getOptionProps(a){var b=a.index,c=a.item,d=a.keyPrefix;if(isOptionForCreate(c))return{onClick:function onClick(a){ia(a,c.label)},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForCreate")};if(isOptionForSelectAll(c)){var f=function(){var a,b=_createForOfIteratorHelper(U);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){ha({e:a,items:f()})},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!1,hovered:b===K,key:"".concat(d,"__optionForSelectAll")}}var e=j(c);return{onClick:function onClick(a){ga(a,c)},onMouseEnter:function onMouseEnter(){ea(b,!1)},active:!!E.find(function(a){return j(a)===e}),hovered:b===K,key:"".concat(d).concat(e)}},handleInputFocus:function handleInputFocus(a){f||(!C&&D(!0),"function"==typeof s&&s(a))},handleInputBlur:function handleInputBlur(a){if(J){var b;return void(null===(b=z.current)||void 0===b?void 0:b.focus())}C&&D(!1),"function"==typeof t&&t(a)},handleToggleDropdown:function handleToggleDropdown(){if(J)aa(!1),D(!1);else{var a;aa(!0),D(!0),null===(a=z.current)||void 0===a?void 0:a.focus()}},handleInputClick:function handleInputClick(){if(f||aa(!J),h){var a;null===(a=z.current)||void 0===a?void 0:a.focus()}},inputRef:z,getKeyProps:ma,handleInputChange:function handleInputChange(a){f||!h&&0<E.length||(ca(a.target.value),aa(!0))},searchValue:I,clearValue:ja,getHandleRemoveValue:function getHandleRemoveValue(a){return function(b){return fa(b,a)}},notFound:X,hasItems:Y,allItemsSelected:Z,optionsRefs:W}}
|
|
2
2
|
//# sourceMappingURL=useSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelect.js","names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useClickOutside","useDebounce","useKeys","useMutableRef","usePrevious","useRefs","getCountedGroups","getGroups","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","onSearchValueChangeRef","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","onCreate","length","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","maxHighlightIndex","optionsRefs","notFound","flag","group","hasItems","allItemsSelected","el","find","getSelectedOptionIndex","index","newIsOpen","old","setResolvedSearch","prevIsOpen","indexForHighlight","newIndex","Math","min","max","currentHighlightIndex","removeValue","e","valueItem","stopPropagation","newValue","val","onChange","some","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","current","scrollTo","top","getOptionProps","keyPrefix","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","handleInputFocus","handleInputBlur","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../../src/components/SelectComponents/useSelect/useSelect.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { KeyHandler, useKeys } from '##/hooks/useKeysDepricated';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { usePrevious } from '##/hooks/usePrevious';\nimport { useRefs } from '##/hooks/useRefs';\nimport {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} from '##/utils/getGroups';\n\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> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\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?: (\n label: string,\n props: { e: React.SyntheticEvent; label: string },\n ) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n onSearchValueChange?: (value: string) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | SelectAllItem;\n keyPrefix: string | number;\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 isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM>(\n params: SelectAllItem | 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 onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [isFocused, setIsFocused] = useState(false);\n\n const value = useMemo(\n () =>\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [],\n [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 onSearchValueChangeRef = useMutableRef(onSearchValueChange);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = 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 optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !fiteredOptions.length ? 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 maxHighlightIndex =\n // колличество опций\n filteredOptions.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0);\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, [isOpen]);\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 allItemsSelected = useMemo(() => {\n if (isNotMultipleParams(params)) {\n return false;\n }\n if (selectAll) {\n return (\n items.filter((el) =>\n value.find((item) => getItemKey(item) === getItemKey(el)),\n ).length === items.length\n );\n }\n\n return false;\n }, [selectAll, multiple, value, items]);\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 = 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((old) => {\n if (old.resolvedSearchValue === value) {\n return old;\n }\n return {\n ...old,\n resolvedSearchValue: value,\n };\n }, actions.setSearch);\n }, 300);\n\n const setSearch = useCallback(\n (value: string | undefined) => {\n setState((old) => {\n if (old.searchValue === value) {\n return old;\n }\n return {\n ...old,\n searchValue: value || '',\n };\n }, actions.setSearch);\n setResolvedSearch(value || '');\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n maxHighlightIndex - 1,\n );\n\n if (old.highlightedIndex === newIndex) {\n return old;\n }\n\n return {\n ...old,\n highlightedIndex: newIndex,\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }\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 const val = newValue?.length ? newValue : null;\n params.onChange(val, {\n e,\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 const val = newValue?.length ? newValue : null;\n params.onChange(val, { e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(item, { e });\n setOpen(false);\n setSearch('');\n }\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(withoutGroupValues, { e });\n } else {\n const val = [...withoutGroupValues, ...nonDisabledItems];\n params.onChange(val, {\n e,\n });\n }\n }\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate(label, { e, label });\n setOpen(false);\n 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 if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n const val = results && results.length > 0 ? results : null;\n params.onChange(val, {\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(null, { e });\n }\n setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const 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 } else {\n setOpen(true);\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setOpen(false);\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setOpen(false);\n }\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 keyPrefix,\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: `${keyPrefix}__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: `${keyPrefix}__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: `${keyPrefix}${key}`,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: () => {\n setOpen(false);\n },\n });\n\n useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\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 useEffect(() => {\n dropdownRef.current?.scrollTo({ top: 0 });\n }, [resolvedSearchValue]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n onSearchValueChangeRef.current?.(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n setOpen(dropdownOpen || false);\n }, [dropdownOpen]);\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 allItemsSelected,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelect.js","names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useClickOutside","useDebounce","useKeys","useMutableRef","usePrevious","useRefs","getCountedGroups","getGroups","scrollToIndex","useHoistedState","isMultipleParams","params","multiple","isNotMultipleParams","actions","setOpen","setSearch","highlightIndex","initialState","searchValue","resolvedSearchValue","isOpen","highlightedIndex","scrollToHighlighted","isOptionForCreate","Object","prototype","hasOwnProperty","call","isNotOptionForCreate","isOptionForSelectAll","useSelect","items","dropdownRef","controlRef","disabled","getItemLabel","getItemKey","searchFunction","getItemGroupKey","groups","selectAll","getGroupKey","sortGroups","getItemDisabled","onFocus","onBlur","searchValueProp","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","inputRef","isFocused","setIsFocused","value","Array","isArray","setState","onSearchValueChangeRef","searchFunctionDefault","item","toLocaleLowerCase","indexOf","fiteredOptions","filter","onCreate","length","label","__optionForCreate","filteredOptions","optionForCreate","visibleItems","resultGroups","maxHighlightIndex","optionsRefs","notFound","flag","group","hasItems","allItemsSelected","el","find","getSelectedOptionIndex","index","newIsOpen","old","setResolvedSearch","prevIsOpen","indexForHighlight","newIndex","Math","min","max","currentHighlightIndex","removeValue","e","valueItem","stopPropagation","newValue","val","onChange","some","onChangeAll","parametrs","nonDisabledItems","currentGroupValues","withoutGroupValues","forEach","push","clearValue","results","ArrowUp","_","preventDefault","ArrowDown","getKeyProps","PageUp","PageDown","Home","End","Enter","getData","couter","Escape","Tab","Backspace","isActive","ignoreClicksInsideRefs","handler","current","scrollTo","top","getOptionProps","keyPrefix","onClick","onMouseEnter","active","hovered","key","getItems","groupKey","handleInputFocus","handleInputBlur","focus","handleToggleDropdown","handleInputClick","handleInputChange","target","getHandleRemoveValue"],"sources":["../../../../../../src/components/SelectComponents/useSelect/useSelect.ts"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { KeyHandler, useKeys } from '##/hooks/useKeysDepricated';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { usePrevious } from '##/hooks/usePrevious';\nimport { useRefs } from '##/hooks/useRefs';\nimport {\n CountedGroup,\n getCountedGroups,\n getGroups,\n SelectAllItem,\n} from '##/utils/getGroups';\n\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> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\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?: (\n label: string,\n props: { e: React.SyntheticEvent; label: string },\n ) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n multiple: boolean;\n searchValue?: string;\n onChange: OnChangeProp<ITEM, MULTIPLE>;\n value: ValueProp<ITEM, MULTIPLE>;\n dropdownOpen?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n onSearchValueChange?: (value: string) => void;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n};\n\nexport type OptionProps<ITEM> = {\n index: number;\n item: ITEM | OptionForCreate | SelectAllItem;\n keyPrefix: string | number;\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 isNotOptionForCreate = <ITEM, GROUP>(\n params: OptionForCreate | Group<ITEM, GROUP>,\n): params is Group<ITEM, GROUP> => {\n return (\n params && !Object.prototype.hasOwnProperty.call(params, '__optionForCreate')\n );\n};\n\nexport const isOptionForSelectAll = <ITEM>(\n params: SelectAllItem | 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 onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n } = params;\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [isFocused, setIsFocused] = useState(false);\n\n const value = useMemo(\n () =>\n (params.value &&\n (Array.isArray(params.value) ? params.value : [params.value])) ||\n [],\n [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 onSearchValueChangeRef = useMutableRef(onSearchValueChange);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string) =>\n getItemLabel(item)\n .toLocaleLowerCase()\n .indexOf(searchValue.toLocaleLowerCase()) !== -1;\n\n const [filteredOptions, optionForCreate] = 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 optionForCreate: OptionForCreate = {\n label: searchValue,\n __optionForCreate: true,\n };\n\n return [\n fiteredOptions,\n params.onCreate && !fiteredOptions.length ? optionForCreate : undefined,\n ] as const;\n }\n return [items, undefined] as const;\n }, [items, resolvedSearchValue, params.onCreate]);\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 maxHighlightIndex =\n // колличество опций\n filteredOptions.length +\n // кнопка для создания\n (optionForCreate ? 1 : 0) +\n // кнопки выбрать все\n (selectAll ? visibleItems.length : 0);\n\n const optionsRefs = useRefs<HTMLDivElement>(maxHighlightIndex, [isOpen]);\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 allItemsSelected = useMemo(() => {\n if (isNotMultipleParams(params)) {\n return false;\n }\n if (selectAll) {\n return (\n items.filter((el) =>\n value.find((item) => getItemKey(item) === getItemKey(el)),\n ).length === items.length\n );\n }\n\n return false;\n }, [selectAll, multiple, value, items]);\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 = 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((old) => {\n if (old.resolvedSearchValue === value) {\n return old;\n }\n return {\n ...old,\n resolvedSearchValue: value,\n };\n }, actions.setSearch);\n }, 300);\n\n const setSearch = useCallback(\n (value: string | undefined) => {\n setState((old) => {\n if (old.searchValue === value) {\n return old;\n }\n return {\n ...old,\n searchValue: value || '',\n };\n }, actions.setSearch);\n setResolvedSearch(value || '');\n },\n [setState, setResolvedSearch],\n );\n\n const prevIsOpen = usePrevious(isOpen);\n\n const highlightIndex = useCallback(\n (indexForHighlight: IndexForHighlight, scrollToHighlighted: boolean) => {\n setState((old) => {\n const newIndex = Math.min(\n Math.max(\n 0,\n typeof indexForHighlight === 'function'\n ? indexForHighlight(old.highlightedIndex)\n : indexForHighlight,\n ),\n maxHighlightIndex - 1,\n );\n\n if (old.highlightedIndex === newIndex) {\n return old;\n }\n\n return {\n ...old,\n highlightedIndex: newIndex,\n scrollToHighlighted,\n };\n }, actions.highlightIndex);\n },\n [filteredOptions, setState, optionForCreate],\n );\n\n useLayoutEffect(() => {\n if (value !== null && !prevIsOpen && isOpen) {\n const currentHighlightIndex = getSelectedOptionIndex();\n if (filteredOptions.length > 0) {\n scrollToIndex(currentHighlightIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\n }\n }\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 const val = newValue?.length ? newValue : null;\n params.onChange(val, {\n e,\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 const val = newValue?.length ? newValue : null;\n params.onChange(val, { e });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(item, { e });\n setOpen(false);\n setSearch('');\n }\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(withoutGroupValues, { e });\n } else {\n const val = [...withoutGroupValues, ...nonDisabledItems];\n params.onChange(val, {\n e,\n });\n }\n }\n };\n\n const onCreate = (e: React.SyntheticEvent, label: string) => {\n params.onCreate && params.onCreate(label, { e, label });\n setOpen(false);\n 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 if (isMultipleParams(params)) {\n const results = value?.filter((item) => getItemDisabled?.(item));\n const val = results && results.length > 0 ? results : null;\n params.onChange(val, {\n e,\n });\n }\n if (isNotMultipleParams(params)) {\n params.onChange(null, { e });\n }\n setSearch('');\n };\n\n const getHandleRemoveValue = (item: ITEM) => (e: React.SyntheticEvent) =>\n removeValue(e, item);\n\n // Prop Getters\n\n const ArrowUp: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old - 1, true);\n };\n\n const ArrowDown: KeyHandler = (_, e): void => {\n e.preventDefault();\n !disabled && setOpen(true);\n highlightIndex((old) => old + 1, true);\n };\n\n const Enter: KeyHandler = (_, e): void => {\n if (isOpen) {\n if (searchValue || filteredOptions[highlightedIndex]) {\n e.preventDefault();\n }\n\n const 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 } else {\n setOpen(true);\n }\n };\n\n const Escape: KeyHandler = (): void => {\n setOpen(false);\n };\n\n const Tab: KeyHandler = (_, e): void => {\n if (isOpen) {\n e.preventDefault();\n setOpen(false);\n }\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 keyPrefix,\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: `${keyPrefix}__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: `${keyPrefix}__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: `${keyPrefix}${key}`,\n };\n };\n\n useClickOutside({\n isActive: isOpen,\n ignoreClicksInsideRefs: [\n dropdownRef,\n controlRef,\n ...(ignoreOutsideClicksRefs || []),\n ],\n handler: () => {\n setOpen(false);\n },\n });\n\n useEffect(() => {\n if (disabled) {\n setOpen(false);\n }\n }, [disabled]);\n\n useEffect(() => {\n const currentHighlightIndex = getSelectedOptionIndex();\n highlightIndex(currentHighlightIndex, true);\n }, [highlightIndex]);\n\n useEffect(() => {\n if (filteredOptions.length > 0 && scrollToHighlighted) {\n scrollToIndex(highlightedIndex, dropdownRef, optionsRefs, () =>\n highlightIndex(0, false),\n );\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 useEffect(() => {\n dropdownRef.current?.scrollTo({ top: 0 });\n }, [resolvedSearchValue]);\n\n useEffect(() => {\n onDropdownOpen?.(isOpen);\n }, [isOpen]);\n\n useEffect(() => {\n onSearchValueChangeRef.current?.(searchValue);\n }, [searchValue]);\n\n useEffect(() => {\n setOpen(dropdownOpen || false);\n }, [dropdownOpen]);\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 allItemsSelected,\n optionsRefs,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";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 React,{useMemo}from"react";import{useComponentSize}from"../../../hooks/useComponentSize/useComponentSize";export var useFittingItems=function(a){var b=a.tabsDimensions,c=a.containerRef,d=a.moreItemsRef,e=a.activeIndex,f=useComponentSize(c),g=f.width,h=useComponentSize(d),i=h.width,j=useMemo(function(){return getFittingItems(b,g,i,e)},[b,g,i,e]);return{visibleIndexes:j,isItemHidden:React.useCallback(function(a){return!j.includes(a)},[j])}};export var getFittingItems=function(a,b,c,d){if(!b)return Array.from({length:a.length}).map(function(a,b){return b});var e,f=
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";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 React,{useMemo}from"react";import{useComponentSize}from"../../../hooks/useComponentSize/useComponentSize";export var useFittingItems=function(a){var b=a.tabsDimensions,c=a.containerRef,d=a.moreItemsRef,e=a.activeIndex,f=useComponentSize(c),g=f.width,h=useComponentSize(d),i=h.width,j=useMemo(function(){return getFittingItems(b,g,i,e)},[b,g,i,e]);return{visibleIndexes:j,isItemHidden:React.useCallback(function(a){return!j.includes(a)},[j])}};export var getFittingItems=function(a,b,c,d){if(!b)return Array.from({length:a.length}).map(function(a,b){return b});var e,f=a[null!==d&&void 0!==d?d:-1],g=f?f.size+f.gap:0,h=[],i=_createForOfIteratorHelper(a.entries());try{for(i.s();!(e=i.n()).done;){var j=_slicedToArray(e.value,2),k=j[0],l=j[1];if(k!==d){var m=k===a.length-1;if(g+=l.size+(m?0:l.gap),g+c>b)return d&&!h.includes(d)&&h.push(d),h;h.push(k)}else h.push(d)}}catch(a){i.e(a)}finally{i.f()}return Array.from({length:a.length}).map(function(a,b){return b})};
|
|
2
2
|
//# sourceMappingURL=useFittingItems.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFittingItems.js","names":["React","useMemo","useComponentSize","useFittingItems","tabsDimensions","containerRef","moreItemsRef","activeIndex","containerWidth","width","moreItemsWidth","visibleIndexes","getFittingItems","isItemHidden","useCallback","idx","includes","totalWidth","Array","from","length","map","_el","index","size","gap","arr","entries","tabDimensions","isLastItem","push"],"sources":["../../../../../../src/components/Tabs/TabsFitModeDropdownWrapper/useFittingItems.ts"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useComponentSize } from '../../../hooks/useComponentSize/useComponentSize';\nimport { TabDimensions } from '../types';\n\nexport const useFittingItems = ({\n tabsDimensions,\n containerRef,\n moreItemsRef,\n activeIndex,\n}: {\n tabsDimensions: TabDimensions[];\n containerRef: React.RefObject<HTMLElement>;\n moreItemsRef: React.RefObject<HTMLElement>;\n activeIndex?: number;\n}): {\n visibleIndexes: number[];\n isItemHidden: (idx: number) => boolean;\n} => {\n const { width: containerWidth } = useComponentSize(containerRef);\n const { width: moreItemsWidth } = useComponentSize(moreItemsRef);\n\n const visibleIndexes = useMemo(\n () =>\n getFittingItems(\n tabsDimensions,\n containerWidth,\n moreItemsWidth,\n activeIndex,\n ),\n [tabsDimensions, containerWidth, moreItemsWidth, activeIndex],\n );\n\n return {\n visibleIndexes,\n isItemHidden: React.useCallback(\n (idx) => !visibleIndexes.includes(idx),\n [visibleIndexes],\n ),\n };\n};\n\nexport const getFittingItems = (\n tabsDimensions: TabDimensions[],\n totalWidth: number,\n moreItemsWidth: number,\n activeIndex?: number,\n): number[] => {\n if (!totalWidth) {\n return Array.from<number>({ length: tabsDimensions.length }).map(\n (_el, index) => index,\n );\n }\n
|
|
1
|
+
{"version":3,"file":"useFittingItems.js","names":["React","useMemo","useComponentSize","useFittingItems","tabsDimensions","containerRef","moreItemsRef","activeIndex","containerWidth","width","moreItemsWidth","visibleIndexes","getFittingItems","isItemHidden","useCallback","idx","includes","totalWidth","Array","from","length","map","_el","index","dimension","size","gap","arr","entries","tabDimensions","isLastItem","push"],"sources":["../../../../../../src/components/Tabs/TabsFitModeDropdownWrapper/useFittingItems.ts"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useComponentSize } from '../../../hooks/useComponentSize/useComponentSize';\nimport { TabDimensions } from '../types';\n\nexport const useFittingItems = ({\n tabsDimensions,\n containerRef,\n moreItemsRef,\n activeIndex,\n}: {\n tabsDimensions: TabDimensions[];\n containerRef: React.RefObject<HTMLElement>;\n moreItemsRef: React.RefObject<HTMLElement>;\n activeIndex?: number;\n}): {\n visibleIndexes: number[];\n isItemHidden: (idx: number) => boolean;\n} => {\n const { width: containerWidth } = useComponentSize(containerRef);\n const { width: moreItemsWidth } = useComponentSize(moreItemsRef);\n\n const visibleIndexes = useMemo(\n () =>\n getFittingItems(\n tabsDimensions,\n containerWidth,\n moreItemsWidth,\n activeIndex,\n ),\n [tabsDimensions, containerWidth, moreItemsWidth, activeIndex],\n );\n\n return {\n visibleIndexes,\n isItemHidden: React.useCallback(\n (idx) => !visibleIndexes.includes(idx),\n [visibleIndexes],\n ),\n };\n};\n\nexport const getFittingItems = (\n tabsDimensions: TabDimensions[],\n totalWidth: number,\n moreItemsWidth: number,\n activeIndex?: number,\n): number[] => {\n if (!totalWidth) {\n return Array.from<number>({ length: tabsDimensions.length }).map(\n (_el, index) => index,\n );\n }\n const dimension = tabsDimensions[activeIndex ?? -1];\n let width = dimension ? dimension.size + dimension.gap : 0;\n const arr: number[] = [];\n for (const [idx, tabDimensions] of tabsDimensions.entries()) {\n if (idx !== activeIndex) {\n const isLastItem = idx === tabsDimensions.length - 1;\n width += tabDimensions.size + (isLastItem ? 0 : tabDimensions.gap);\n if (width + moreItemsWidth > totalWidth) {\n if (activeIndex && !arr.includes(activeIndex)) {\n arr.push(activeIndex);\n }\n return arr;\n }\n arr.push(idx);\n } else {\n arr.push(activeIndex);\n }\n }\n\n return Array.from<number>({ length: tabsDimensions.length }).map(\n (_el, index) => index,\n );\n};\n"],"mappings":"stCAAA,MAAOA,MAAP,EAAgBC,OAAhB,KAA+B,OAA/B,CAEA,OAASC,gBAAT,wDAGA,MAAO,IAAMC,gBAAe,CAAG,WAa1B,IAZHC,EAYG,GAZHA,cAYG,CAXHC,CAWG,GAXHA,YAWG,CAVHC,CAUG,GAVHA,YAUG,CATHC,CASG,GATHA,WASG,GAC+BL,gBAAgB,CAACG,CAAD,CAD/C,CACYG,CADZ,GACKC,KADL,GAE+BP,gBAAgB,CAACI,CAAD,CAF/C,CAEYI,CAFZ,GAEKD,KAFL,CAIGE,CAAc,CAAGV,OAAO,CAC5B,iBACEW,gBAAe,CACbR,CADa,CAEbI,CAFa,CAGbE,CAHa,CAIbH,CAJa,CADjB,CAD4B,CAQ5B,CAACH,CAAD,CAAiBI,CAAjB,CAAiCE,CAAjC,CAAiDH,CAAjD,CAR4B,CAJ3B,CAeH,MAAO,CACLI,cAAc,CAAdA,CADK,CAELE,YAAY,CAAEb,KAAK,CAACc,WAAN,CACZ,SAACC,CAAD,QAAS,CAACJ,CAAc,CAACK,QAAf,CAAwBD,CAAxB,CAAV,CADY,CAEZ,CAACJ,CAAD,CAFY,CAFT,CAOR,CAnCM,CAqCP,MAAO,IAAMC,gBAAe,CAAG,SAC7BR,CAD6B,CAE7Ba,CAF6B,CAG7BP,CAH6B,CAI7BH,CAJ6B,CAKhB,CACb,GAAI,CAACU,CAAL,CACE,MAAOC,MAAK,CAACC,IAAN,CAAmB,CAAEC,MAAM,CAAEhB,CAAc,CAACgB,MAAzB,CAAnB,EAAsDC,GAAtD,CACL,SAACC,CAAD,CAAMC,CAAN,QAAgBA,EAAhB,CADK,CAAP,CAFW,MAMPC,CAAS,CAAGpB,CAAc,QAACG,CAAD,WAACA,CAAD,CAACA,CAAD,CAAgB,CAAC,CAAjB,CANnB,CAOTE,CAAK,CAAGe,CAAS,CAAGA,CAAS,CAACC,IAAV,CAAiBD,CAAS,CAACE,GAA9B,CAAoC,CAP5C,CAQPC,CAAa,CAAG,EART,8BASsBvB,CAAc,CAACwB,OAAf,EATtB,MASb,2BAA6D,iCAAjDb,CAAiD,MAA5Cc,CAA4C,MAC3D,GAAId,CAAG,GAAKR,CAAZ,CAAyB,CACvB,GAAMuB,EAAU,CAAGf,CAAG,GAAKX,CAAc,CAACgB,MAAf,CAAwB,CAAnD,CAEA,GADAX,CAAK,EAAIoB,CAAa,CAACJ,IAAd,EAAsBK,CAAU,CAAG,CAAH,CAAOD,CAAa,CAACH,GAArD,CACT,CAAIjB,CAAK,CAAGC,CAAR,CAAyBO,CAA7B,CAIE,MAHIV,EAAW,EAAI,CAACoB,CAAG,CAACX,QAAJ,CAAaT,CAAb,CAGpB,EAFEoB,CAAG,CAACI,IAAJ,CAASxB,CAAT,CAEF,CAAOoB,CAAP,CAEFA,CAAG,CAACI,IAAJ,CAAShB,CAAT,CACD,CAVD,IAWEY,EAAG,CAACI,IAAJ,CAASxB,CAAT,CAEH,CAvBY,+BAyBb,MAAOW,MAAK,CAACC,IAAN,CAAmB,CAAEC,MAAM,CAAEhB,CAAc,CAACgB,MAAzB,CAAnB,EAAsDC,GAAtD,CACL,SAACC,CAAD,CAAMC,CAAN,QAAgBA,EAAhB,CADK,CAGR,CAjCM"}
|
|
@@ -26,7 +26,7 @@ export declare type UserSelectPropGetItemGroupKey<ITEM> = (item: ITEM) => string
|
|
|
26
26
|
export declare type UserSelectPropGetItemDisabled<ITEM> = (item: ITEM) => boolean | undefined;
|
|
27
27
|
export declare type UserSelectPropGetGroupKey<GROUP> = (group: GROUP) => string | number;
|
|
28
28
|
export declare type UserSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;
|
|
29
|
-
declare type UserSelectPropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;
|
|
29
|
+
export declare type UserSelectPropSearchFunction<ITEM> = (item: ITEM, searchValue: string) => boolean;
|
|
30
30
|
declare type UserSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (value: (MULTIPLE extends true ? ITEM[] : ITEM) | null, props: {
|
|
31
31
|
e: React.SyntheticEvent;
|
|
32
32
|
}) => void;
|
|
@@ -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","xs","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\
|
|
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","xs","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.ReactElement | null;\nexport type UserSelectPropRenderValue<ITEM> = (\n props: UserSelectRenderValueProps<ITEM>,\n) => React.ReactElement | null;\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?: Exclude<PropSize, 'xs'>;\n view?: PropView;\n dropdownForm?: 'default' | 'brick' | 'round';\n placeholder?: string;\n ariaLabel?: string;\n dropdownClassName?: string;\n status?: PropStatus;\n dropdownRef?: React.RefObject<HTMLDivElement>;\n name?: string;\n items: ITEM[];\n required?: boolean;\n isLoading?: boolean;\n renderItem?: 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?: (lenght: number) => void;\n onSearchValueChange?: (value: string) => void;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<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.ReactElement | 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<PropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 's',\n l: 'm',\n};\n\nexport const iconSizeMap: Record<PropSize, IconPropSize> = {\n xs: 'xs',\n s: 's',\n m: 'm',\n l: 'm',\n};\n"],"mappings":"qqBAqJA,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,aAA4C,CAAG,CAC1DC,EAAE,CAAE,IADsD,CAE1DC,CAAC,CAAE,GAFuD,CAG1DC,CAAC,CAAE,GAHuD,CAI1DC,CAAC,CAAE,GAJuD,CAArD,CAOP,MAAO,IAAMC,YAA2C,CAAG,CACzDJ,EAAE,CAAE,IADqD,CAEzDC,CAAC,CAAE,GAFsD,CAGzDC,CAAC,CAAE,GAHsD,CAIzDC,CAAC,CAAE,GAJsD,CAApD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["tooltipProps"],_excluded2=["mode","tooltipContent","content","closeOnClickOutside","appearTimeout","exitTimeout"];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}import React,{useCallback,useRef}from"react";import{Tooltip}from"../../components/Tooltip";import{useDebounce}from"../../hooks/useDebounce";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useMutableRef}from"../../hooks/useMutableRef";export var withTooltipPropMode=["mouseover","click"];export var withTooltipPropModeDefault=withTooltipPropMode[0];export var appearTimeoutDefault=400;export var exitTimeoutDefault=200;export function withTooltip(a){return function(b){return React.forwardRef(function(c,d){var e=c.tooltipProps,f=void 0===e?{}:e,g=_objectWithoutProperties(c,_excluded),h=_objectSpread(_objectSpread({},a),f),i=h.mode,j=void 0===i?"mouseover":i,k=h.tooltipContent,l=h.content,m=h.closeOnClickOutside,n=!(void 0!==m)||m,o=h.appearTimeout,p=void 0===o?appearTimeoutDefault:o,q=h.exitTimeout,r=void 0===q?exitTimeoutDefault:q,s=_objectWithoutProperties(h,_excluded2),t=null!==k&&void 0!==k?k:l,u=useFlag(),v=_slicedToArray(u,2),w=v[0],x=v[1],y=useRef(null),z=useRef({tooltip:!1,
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["tooltipProps"],_excluded2=["mode","tooltipContent","content","closeOnClickOutside","appearTimeout","exitTimeout"];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}import React,{useCallback,useRef}from"react";import{Tooltip}from"../../components/Tooltip";import{useDebounce}from"../../hooks/useDebounce";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{useMutableRef}from"../../hooks/useMutableRef";export var withTooltipPropMode=["mouseover","click"];export var withTooltipPropModeDefault=withTooltipPropMode[0];export var appearTimeoutDefault=400;export var exitTimeoutDefault=200;export function withTooltip(a){return function(b){return React.forwardRef(function(c,d){var e=c.tooltipProps,f=void 0===e?{}:e,g=_objectWithoutProperties(c,_excluded),h=_objectSpread(_objectSpread({},a),f),i=h.mode,j=void 0===i?"mouseover":i,k=h.tooltipContent,l=h.content,m=h.closeOnClickOutside,n=!(void 0!==m)||m,o=h.appearTimeout,p=void 0===o?appearTimeoutDefault:o,q=h.exitTimeout,r=void 0===q?exitTimeoutDefault:q,s=_objectWithoutProperties(h,_excluded2),t=null!==k&&void 0!==k?k:l,u=useFlag(),v=_slicedToArray(u,2),w=v[0],x=v[1],y=useRef(null),z=useRef({tooltip:!1,anchor:!1}),A=useMutableRef([g.onMouseEnter,g.onMouseLeave,s.onMouseEnter,s.onMouseLeave,g.onClick,j,n]),B=useDebounce(useCallback(function(){"mouseover"===A.current[5]&&(z.current.anchor||z.current.tooltip)&&x.on()},[]),p),C=useDebounce(useCallback(function(){"mouseover"!==A.current[5]||z.current.anchor||z.current.tooltip||x.off()},[]),r),D=useCallback(function(a){var b,c;z.current.anchor=!0,B(),null===(b=(c=A.current)[0])||void 0===b?void 0:b.call(c,a)},[]),E=useCallback(function(a){var b,c;z.current.anchor=!1,C(),null===(b=(c=A.current)[1])||void 0===b?void 0:b.call(c,a)},[]),F=useCallback(function(a){var b,c;z.current.tooltip=!0,B(),null===(b=(c=A.current)[2])||void 0===b?void 0:b.call(c,a)},[]),G=useCallback(function(a){var b,c;z.current.tooltip=!1,C(),null===(b=(c=A.current)[3])||void 0===b?void 0:b.call(c,a)},[]),H=useCallback(function(){"click"===A.current[5]&&A.current[6]&&x.off()},[j,n]),I=useCallback(function(a){var b,c;"click"===A.current[5]&&x.toggle(),null===(b=(c=A.current)[4])||void 0===b?void 0:b.call(c,a)},[]);return React.createElement(React.Fragment,null,React.createElement(b,Object.assign({},g,{onClick:I,onMouseEnter:D,onMouseLeave:E,ref:useForkRef([y,d])})),React.createElement(Tooltip,Object.assign({},s,{isOpen:w&&!!t,className:s.className,anchorRef:y,onClickOutside:H,onMouseEnter:F,onMouseLeave:G}),t))})}}
|
|
2
2
|
//# sourceMappingURL=withTooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withTooltip.js","names":["React","useCallback","useRef","Tooltip","useDebounce","useFlag","useForkRef","useMutableRef","withTooltipPropMode","withTooltipPropModeDefault","appearTimeoutDefault","exitTimeoutDefault","withTooltip","hocProps","Component","forwardRef","props","ref","tooltipProps","componentProps","mode","tooltipContent","content","closeOnClickOutside","appearTimeout","exitTimeout","otherTooltipProps","resultContent","visible","setVisible","
|
|
1
|
+
{"version":3,"file":"withTooltip.js","names":["React","useCallback","useRef","Tooltip","useDebounce","useFlag","useForkRef","useMutableRef","withTooltipPropMode","withTooltipPropModeDefault","appearTimeoutDefault","exitTimeoutDefault","withTooltip","hocProps","Component","forwardRef","props","ref","tooltipProps","componentProps","mode","tooltipContent","content","closeOnClickOutside","appearTimeout","exitTimeout","otherTooltipProps","resultContent","visible","setVisible","anchorRef","hoverStateRef","tooltip","anchor","mutablePropsRef","onMouseEnter","onMouseLeave","onClick","mouseEnterController","current","on","mouseLeaveController","off","anchorOnMouseEnter","e","anchorOnMouseLeave","tooltipOnMouseEnter","tooltipOnMouseLeave","tooltipOnClickOutside","anchorOnClick","toggle","className"],"sources":["../../../../../src/hocs/withTooltip/withTooltip.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react';\n\nimport {\n Tooltip,\n TooltipProps as TooltipComponentProps,\n} from '##/components/Tooltip';\nimport { useDebounce } from '##/hooks/useDebounce';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { useMutableRef } from '##/hooks/useMutableRef';\n\nexport const withTooltipPropMode = ['mouseover', 'click'] as const;\nexport const withTooltipPropModeDefault = withTooltipPropMode[0];\ntype WithTooltipPropMode = typeof withTooltipPropMode[number];\n\nexport const appearTimeoutDefault = 400;\nexport const exitTimeoutDefault = 200;\n\ntype ComponentProps = {\n onClick?: React.MouseEventHandler;\n onMouseEnter?: React.MouseEventHandler;\n onMouseLeave?: React.MouseEventHandler;\n};\n\nexport type TooltipProps = Omit<TooltipComponentProps, 'children' | 'ref'> & {\n tooltipContent?: React.ReactNode;\n /** @deprecated use tooltipContent */\n content?: React.ReactNode;\n mode?: WithTooltipPropMode;\n closeOnClickOutside?: boolean;\n appearTimeout?: number;\n exitTimeout?: number;\n};\n\nexport type WithTooltipProps<Props> = Omit<Props, 'tooltipProps'> & {\n tooltipProps?: TooltipProps;\n};\n\ntype HoverState = {\n tooltip: boolean;\n anchor: boolean;\n};\n\nexport function withTooltip(hocProps?: TooltipProps) {\n return function <COMPONENT_TYPE, COMPONENT_PROPS extends ComponentProps>(\n Component: COMPONENT_TYPE,\n ) {\n return React.forwardRef<HTMLElement, WithTooltipProps<COMPONENT_PROPS>>(\n (props, ref) => {\n const { tooltipProps = {}, ...componentProps } = props;\n\n const {\n mode = 'mouseover',\n tooltipContent,\n content,\n closeOnClickOutside = true,\n appearTimeout = appearTimeoutDefault,\n exitTimeout = exitTimeoutDefault,\n ...otherTooltipProps\n } = {\n ...hocProps,\n ...tooltipProps,\n };\n\n const resultContent = tooltipContent ?? content;\n\n const [visible, setVisible] = useFlag();\n const anchorRef = useRef<HTMLElement>(null);\n\n const hoverStateRef = useRef<HoverState>({\n tooltip: false,\n anchor: false,\n });\n\n const mutablePropsRef = useMutableRef([\n componentProps.onMouseEnter,\n componentProps.onMouseLeave,\n otherTooltipProps.onMouseEnter,\n otherTooltipProps.onMouseLeave,\n componentProps.onClick,\n mode,\n closeOnClickOutside,\n ] as const);\n\n const mouseEnterController = useDebounce(\n useCallback(() => {\n mutablePropsRef.current[5] === 'mouseover' &&\n (hoverStateRef.current.anchor || hoverStateRef.current.tooltip) &&\n setVisible.on();\n }, []),\n appearTimeout,\n );\n\n const mouseLeaveController = useDebounce(\n useCallback(() => {\n mutablePropsRef.current[5] === 'mouseover' &&\n !hoverStateRef.current.anchor &&\n !hoverStateRef.current.tooltip &&\n setVisible.off();\n }, []),\n exitTimeout,\n );\n\n const anchorOnMouseEnter: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n hoverStateRef.current.anchor = true;\n mouseEnterController();\n mutablePropsRef.current[0]?.(e);\n }, []);\n\n const anchorOnMouseLeave: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n hoverStateRef.current.anchor = false;\n mouseLeaveController();\n mutablePropsRef.current[1]?.(e);\n }, []);\n\n const tooltipOnMouseEnter: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n hoverStateRef.current.tooltip = true;\n mouseEnterController();\n mutablePropsRef.current[2]?.(e);\n }, []);\n\n const tooltipOnMouseLeave: React.MouseEventHandler<HTMLDivElement> =\n useCallback((e) => {\n hoverStateRef.current.tooltip = false;\n mouseLeaveController();\n mutablePropsRef.current[3]?.(e);\n }, []);\n\n const tooltipOnClickOutside = useCallback(() => {\n mutablePropsRef.current[5] === 'click' &&\n mutablePropsRef.current[6] &&\n setVisible.off();\n }, [mode, closeOnClickOutside]);\n\n const anchorOnClick: React.MouseEventHandler = useCallback((e) => {\n mutablePropsRef.current[5] === 'click' && setVisible.toggle();\n mutablePropsRef.current[4]?.(e);\n }, []);\n\n const Anchor =\n Component as unknown as React.ComponentType<COMPONENT_PROPS>;\n\n return (\n <>\n <Anchor\n {...(componentProps as COMPONENT_PROPS)}\n onClick={anchorOnClick}\n onMouseEnter={anchorOnMouseEnter}\n onMouseLeave={anchorOnMouseLeave}\n ref={useForkRef([anchorRef, ref])}\n />\n <Tooltip\n {...otherTooltipProps}\n isOpen={visible && !!resultContent}\n className={otherTooltipProps.className}\n anchorRef={anchorRef}\n onClickOutside={tooltipOnClickOutside}\n onMouseEnter={tooltipOnMouseEnter}\n onMouseLeave={tooltipOnMouseLeave}\n >\n {resultContent}\n </Tooltip>\n </>\n );\n // привел к типам, так как прокинутый компонент может иметь джененрики и они потеряются за хоком\n },\n ) as unknown as\n | COMPONENT_TYPE\n | React.ComponentType<{\n tooltipProps?: TooltipProps;\n }>;\n };\n}\n"],"mappings":"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"}
|