@consta/uikit 5.28.0 → 5.28.1
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/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
- package/__internal__/src/components/Sidebar/types.d.ts +2 -2
- package/__internal__/src/components/Sidebar/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClick","getItemAs","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId"];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 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"./ContextMenuLevel.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useEffect,useMemo}from"react";import{cnListBox,List,ListDivider,ListItem,mapIconSize,mapVerticalSpace}from"../../ListCanary";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";import{ContextMenuLevelWrapper}from"../ContextMenuLevelWrapper";import{contextMenuDefaultSize}from"../types";import{useMenuNavigation}from"../useMenuNavigation";export var cnContextMenuLevel=cn("ContextMenuLevel");var timers=[];export function clearTimers(){var a,b=_createForOfIteratorHelper(timers);try{for(b.s();!(a=b.n()).done;){var c=a.value;clearTimeout(c)}}catch(a){b.e(a)}finally{b.f()}timers=[]}var closeDelay=300,ContextMenuLevelRender=function(a,b){var c=a.size,d=void 0===c?contextMenuDefaultSize:c,f=a.items,g=a.groups,h=a.className,i=a.form,j=void 0===i?"default":i,k=a.animate,l=a.levelDepth,m=a.activeLevelDepth,n=a.activeItem,o=a.addLevel,p=a.deleteLevel,q=a.setHoveredParenLevel,r=a.hoveredParenLevel,s=a.sortGroup,t=a.onItemClick,u=a.onEsc,v=a.isOpen,w=a.parent,x=a.isMobile,y=a.direction,z=a.possibleDirections,A=a.offset,B=a.onSetDirection,C=a.spareDirection,D=a.anchorRef,E=a.getItemLabel,F=a.getItemRightSide,G=a.getItemLeftSide,H=a.getItemSubMenu,I=a.getItemStatus,J=a.getItemDisabled,K=a.getItemKey,L=a.getItemOnClick,M=a.getItemAs,N=a.getItemAttributes,O=a.getItemGroupId,P=a.getItemLeftIcon,Q=a.getItemRightIcon,R=a.getGroupLabel,S=a.getGroupId,T=_objectWithoutProperties(a,_excluded),U=0===l,V=useFlag(!1),W=_slicedToArray(V,2),X=W[0],Y=W[1],Z=function(a){return(K(a)||E(a)).toString()},$=function(a){var b=H(a),c=J(a);if(Array.isArray(b)&&!c){var d=Z(a);o({level:l+1,items:b,anchorRef:ha[d],activeItem:d,parent:a}),q(l+1)}else q(l)},_=useMenuNavigation({items:f,getItemSubMenu:H,addLevel:$,active:m===l,deleteLevel:function deleteLevel(){return p(l)},onEsc:function handleEscClick(a){var b;null===u||void 0===u?void 0:u(a),null===D||void 0===D||null===(b=D.current)||void 0===b?void 0:b.focus()},level:l,isMobile:x}),aa=_.refs,ba=_.onKeyDown,ca=_.activeIndex,da=_.setActiveIndex,ea=_.setDirection,fa=_.parentRef,ga=_.containerRef,ha=useMemo(function(){return f.map(function(a){return Z(a)}).reduce(function(b,a,c){return _objectSpread(_objectSpread({},b),{},_defineProperty({},a,aa[c]))},{})},[g,aa]),ia=useMemo(function(){var a=f[ca];return a?Z(a):void 0},[f,ca]),ja=x?void 0:function(a){return function(b){var c;$(a);var d=null===(c=N(a))||void 0===c?void 0:c.onMouseEnter;da(f.indexOf(a)),null===d||void 0===d?void 0:d(b)}},ka=L?function(a){return function(b){var c;return null===(c=L(a))||void 0===c?void 0:c(b)}}:void 0;return useEffect(function(){return 0!==l&&!X&&r<l&&(clearTimeout(timers[l]),timers[l]=setTimeout(function(){return p(l)},closeDelay)),function(){return clearTimeout(timers[l])}},[X,r]),useEffect(function(){v||clearTimeout(timers[l])},[v]),React.createElement(ContextMenuLevelWrapper,Object.assign({anchorRef:D,className:x?cnContextMenuLevel("Mobile",{animate:k},[h]):cnContextMenuLevel("Desktop",{firstLevel:U},[cnListBox({size:d,form:j,border:!0,shadow:!0}),cnMixSpace({pV:mapVerticalSpace[d]}),cnMixPopoverAnimate({animate:k}),
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClick","getItemAs","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId"];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 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"./ContextMenuLevel.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useEffect,useMemo}from"react";import{cnListBox,List,ListDivider,ListItem,mapIconSize,mapVerticalSpace}from"../../ListCanary";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";import{ContextMenuLevelWrapper}from"../ContextMenuLevelWrapper";import{contextMenuDefaultSize}from"../types";import{useMenuNavigation}from"../useMenuNavigation";export var cnContextMenuLevel=cn("ContextMenuLevel");var timers=[];export function clearTimers(){var a,b=_createForOfIteratorHelper(timers);try{for(b.s();!(a=b.n()).done;){var c=a.value;clearTimeout(c)}}catch(a){b.e(a)}finally{b.f()}timers=[]}var closeDelay=300,ContextMenuLevelRender=function(a,b){var c=a.size,d=void 0===c?contextMenuDefaultSize:c,f=a.items,g=a.groups,h=a.className,i=a.form,j=void 0===i?"default":i,k=a.animate,l=a.levelDepth,m=a.activeLevelDepth,n=a.activeItem,o=a.addLevel,p=a.deleteLevel,q=a.setHoveredParenLevel,r=a.hoveredParenLevel,s=a.sortGroup,t=a.onItemClick,u=a.onEsc,v=a.isOpen,w=a.parent,x=a.isMobile,y=a.direction,z=a.possibleDirections,A=a.offset,B=a.onSetDirection,C=a.spareDirection,D=a.anchorRef,E=a.getItemLabel,F=a.getItemRightSide,G=a.getItemLeftSide,H=a.getItemSubMenu,I=a.getItemStatus,J=a.getItemDisabled,K=a.getItemKey,L=a.getItemOnClick,M=a.getItemAs,N=a.getItemAttributes,O=a.getItemGroupId,P=a.getItemLeftIcon,Q=a.getItemRightIcon,R=a.getGroupLabel,S=a.getGroupId,T=_objectWithoutProperties(a,_excluded),U=0===l,V=useFlag(!1),W=_slicedToArray(V,2),X=W[0],Y=W[1],Z=function(a){return(K(a)||E(a)).toString()},$=function(a){var b=H(a),c=J(a);if(Array.isArray(b)&&!c){var d=Z(a);o({level:l+1,items:b,anchorRef:ha[d],activeItem:d,parent:a}),q(l+1)}else q(l)},_=useMenuNavigation({items:f,getItemSubMenu:H,addLevel:$,active:m===l,deleteLevel:function deleteLevel(){return p(l)},onEsc:function handleEscClick(a){var b;null===u||void 0===u?void 0:u(a),null===D||void 0===D||null===(b=D.current)||void 0===b?void 0:b.focus()},level:l,isMobile:x}),aa=_.refs,ba=_.onKeyDown,ca=_.activeIndex,da=_.setActiveIndex,ea=_.setDirection,fa=_.parentRef,ga=_.containerRef,ha=useMemo(function(){return f.map(function(a){return Z(a)}).reduce(function(b,a,c){return _objectSpread(_objectSpread({},b),{},_defineProperty({},a,aa[c]))},{})},[g,aa]),ia=useMemo(function(){var a=f[ca];return a?Z(a):void 0},[f,ca]),ja=x?void 0:function(a){return function(b){var c;$(a);var d=null===(c=N(a))||void 0===c?void 0:c.onMouseEnter;da(f.indexOf(a)),null===d||void 0===d?void 0:d(b)}},ka=L?function(a){return function(b){var c;return null===(c=L(a))||void 0===c?void 0:c(b)}}:void 0;return useEffect(function(){return 0!==l&&!X&&r<l&&(clearTimeout(timers[l]),timers[l]=setTimeout(function(){return p(l)},closeDelay)),function(){return clearTimeout(timers[l])}},[X,r]),useEffect(function(){v||clearTimeout(timers[l])},[v]),React.createElement(ContextMenuLevelWrapper,Object.assign({anchorRef:D,className:x?cnContextMenuLevel("Mobile",{animate:k,firstLevel:U,level:l.toString()},[h]):cnContextMenuLevel("Desktop",{firstLevel:U,level:l.toString()},[cnListBox({size:d,form:j,border:!0,shadow:!0}),cnMixSpace({pV:mapVerticalSpace[d]}),cnMixPopoverAnimate({animate:k}),h]),possibleDirections:z,spareDirection:C,direction:y,offset:A,tabIndex:0,onKeyDown:ba,onSetDirection:function onSetDirection(a){null===B||void 0===B?void 0:B(a),ea(a)},onMouseEnter:Y.on,onMouseLeave:function onMouseLeave(){Y.off(),da(-1)},ref:useForkRef([b,ga]),isMobile:x},T),w&&React.createElement(React.Fragment,null,React.createElement(ListItem,{label:E(w),size:d,tabIndex:0,ref:fa,leftIcon:IconArrowLeft,onClick:function onClick(){return p(l)},active:-1===ca,className:cnContextMenuLevel("Item",{active:-1===ca})}),React.createElement(ListDivider,{size:d,space:{mV:mapVerticalSpace[d]}})),React.createElement(List,{size:d,items:f,getItemLabel:E,onItemClick:function onItemClick(a,b){var c=b.e;x&&($(a),da(f.indexOf(a))),null===t||void 0===t?void 0:t(a,{e:c})},sortGroup:s?function(c,a){return s(c.key,a.key)}:void 0,getItemOnClick:ka,getItemAs:M,getItemAttributes:function getItemAttributes(a){return _objectSpread(_objectSpread({},N(a)),{},{tabIndex:0,onMouseEnter:null===ja||void 0===ja?void 0:ja(a)})},getItemGroupKey:O,getItemLeftIcon:P,getItemRightIcon:Q,getItemLeftSide:G,getItemRightSide:function getItemRightSide(a){var b=F(a);if(!H(a))return b;var c=Array.isArray(b)?b:[b];return c.push(React.createElement(IconArrowRight,{size:mapIconSize[d]})),c},getGroupKey:S,getGroupLabel:R,getItemDisabled:J,getItemStatus:I,getItemActive:function getItemActive(a){var b=Z(a);return b===n||b===ia},getItemAdditionalClassName:function getItemAdditionalClassName(a){return cnContextMenuLevel("Item",{active:Z(a)===n})},getItemRef:function getItemRef(a){return ha[Z(a)]},groups:g,innerOffset:"round"===j?"increased":"normal"}))};export var ContextMenuLevel=forwardRef(ContextMenuLevelRender);
|
|
2
2
|
//# sourceMappingURL=ContextMenuLevel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextMenuLevel.js","names":["IconArrowLeft","IconArrowRight","React","forwardRef","useEffect","useMemo","cnListBox","List","ListDivider","ListItem","mapIconSize","mapVerticalSpace","useFlag","useForkRef","cnMixPopoverAnimate","cnMixSpace","cn","ContextMenuLevelWrapper","contextMenuDefaultSize","useMenuNavigation","cnContextMenuLevel","timers","clearTimers","timer","clearTimeout","closeDelay","ContextMenuLevelRender","props","ref","size","items","groupsProp","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClickProp","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSideProp","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClickProp","getItemOnClick","getItemAs","getItemAttributesProp","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId","otherProps","firstLevel","hovered","setHovered","getKey","item","toString","addCurrentLevel","subMenu","disabled","Array","isArray","key","level","itemsRefs","active","handleEscClick","e","current","focus","refs","onKeyDown","activeIndex","setActiveIndex","setDirection","parentRef","containerRef","map","reduce","a","v","index","activeKey","onMouseEnter","indexOf","setTimeout","border","shadow","pV","on","onMouseLeave","off","mV","b","tabIndex","side","sides","push","getItemActive","ContextMenuLevel"],"sources":["../../../../../../src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.tsx"],"sourcesContent":["import './ContextMenuLevel.css';\n\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useEffect, useMemo } from 'react';\n\nimport {\n cnListBox,\n List,\n ListDivider,\n ListItem,\n ListPropOnItemClick,\n mapIconSize,\n mapVerticalSpace,\n} from '##/components/ListCanary';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cn } from '##/utils/bem';\nimport { AsAttributes, AsTagAttribute } from '##/utils/types/AsTags';\n\nimport { ContextMenuLevelWrapper } from '../ContextMenuLevelWrapper';\nimport {\n contextMenuDefaultSize,\n ContextMenuItemDefault,\n ContextMenuLevelComponent,\n ContextMenuLevelProps,\n} from '../types';\nimport { useMenuNavigation } from '../useMenuNavigation';\n\nexport const cnContextMenuLevel = cn('ContextMenuLevel');\n\nlet timers: ReturnType<typeof setTimeout>[] = [];\nexport function clearTimers() {\n for (const timer of timers) {\n clearTimeout(timer);\n }\n timers = [];\n}\n\nconst closeDelay = 300;\n\nconst ContextMenuLevelRender = (\n props: ContextMenuLevelProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = contextMenuDefaultSize,\n items,\n groups: groupsProp,\n className,\n form = 'default',\n animate,\n // Свойства относящиеся к меню\n levelDepth,\n activeLevelDepth,\n activeItem,\n addLevel,\n deleteLevel,\n setHoveredParenLevel,\n hoveredParenLevel,\n sortGroup,\n onItemClick: onItemClickProp,\n onEsc,\n isOpen,\n parent,\n isMobile,\n\n // Свойства для поповера\n direction,\n possibleDirections,\n offset,\n onSetDirection,\n spareDirection,\n anchorRef,\n // Геттеры для ITEM\n getItemLabel,\n getItemRightSide: getItemRightSideProp,\n getItemLeftSide,\n getItemSubMenu,\n getItemStatus,\n getItemDisabled,\n getItemKey,\n getItemOnClick: getItemOnClickProp,\n getItemAs,\n getItemAttributes: getItemAttributesProp,\n getItemGroupId,\n getItemLeftIcon,\n getItemRightIcon,\n // Геттеры для GROUP\n getGroupLabel,\n getGroupId,\n ...otherProps\n } = props;\n\n const firstLevel = levelDepth === 0;\n\n const [hovered, setHovered] = useFlag(false);\n\n const getKey = (item: ContextMenuItemDefault) =>\n (getItemKey(item) || getItemLabel(item)).toString();\n\n const addCurrentLevel = (item: ContextMenuItemDefault) => {\n const subMenu = getItemSubMenu(item);\n const disabled = getItemDisabled(item);\n\n if (Array.isArray(subMenu) && !disabled) {\n const key = getKey(item);\n addLevel({\n level: levelDepth + 1,\n items: subMenu,\n anchorRef: itemsRefs[key],\n activeItem: key,\n parent: item,\n });\n setHoveredParenLevel(levelDepth + 1);\n } else {\n setHoveredParenLevel(levelDepth);\n }\n };\n\n const handleEscClick: React.KeyboardEventHandler = (e) => {\n onEsc?.(e);\n anchorRef?.current?.focus();\n };\n\n const {\n refs,\n onKeyDown,\n activeIndex,\n setActiveIndex,\n setDirection,\n parentRef,\n containerRef,\n } = useMenuNavigation({\n items,\n getItemSubMenu,\n addLevel: addCurrentLevel,\n active: activeLevelDepth === levelDepth,\n deleteLevel: () => deleteLevel(levelDepth),\n onEsc: handleEscClick,\n level: levelDepth,\n isMobile,\n });\n\n const itemsRefs = useMemo(() => {\n return items\n .map((item) => getKey(item))\n .reduce((a, v, index) => ({ ...a, [v]: refs[index] }), {}) as Record<\n string,\n React.RefObject<HTMLDivElement>\n >;\n }, [groupsProp, refs]);\n\n const activeKey = useMemo(() => {\n const item = items[activeIndex];\n return item ? getKey(item) : undefined;\n }, [items, activeIndex]);\n\n const onMouseEnter = isMobile\n ? undefined\n : (item: ContextMenuItemDefault): AsTagAttribute<'div'>['onMouseEnter'] =>\n (e) => {\n addCurrentLevel(item);\n const onMouseEnter = getItemAttributesProp(item)\n ?.onMouseEnter as AsTagAttribute<'div'>['onMouseEnter'];\n setActiveIndex(items.indexOf(item));\n onMouseEnter?.(e);\n };\n\n // GETTERS\n\n const getItemOnClick = getItemOnClickProp\n ? (item: ContextMenuItemDefault) => (e: React.MouseEvent) =>\n getItemOnClickProp(item)?.(e as React.MouseEvent<HTMLDivElement>)\n : undefined;\n\n const getItemAttributes = (item: ContextMenuItemDefault) =>\n ({\n ...getItemAttributesProp(item),\n tabIndex: 0,\n onMouseEnter: onMouseEnter?.(item),\n } as AsAttributes);\n\n const getItemActive = (item: ContextMenuItemDefault) => {\n const key = getKey(item);\n return key === activeItem || key === activeKey;\n };\n\n const getItemRightSide = (item: ContextMenuItemDefault) => {\n const side = getItemRightSideProp(item);\n if (!getItemSubMenu(item)) {\n return side;\n }\n\n const sides: React.ReactNode[] = Array.isArray(side) ? side : [side];\n sides.push(<IconArrowRight size={mapIconSize[size]} />);\n return sides;\n };\n\n const onMouseLeave: React.MouseEventHandler = () => {\n setHovered.off();\n setActiveIndex(-1);\n };\n\n const onItemClick: ListPropOnItemClick<ContextMenuItemDefault> = (\n item,\n { e },\n ) => {\n if (isMobile) {\n addCurrentLevel(item);\n setActiveIndex(items.indexOf(item));\n }\n onItemClickProp?.(item, {\n e: e as React.MouseEvent<HTMLDivElement>,\n });\n };\n\n // EFFECTS\n\n useEffect(() => {\n if (levelDepth !== 0 && !hovered && hoveredParenLevel < levelDepth) {\n clearTimeout(timers[levelDepth]);\n timers[levelDepth] = setTimeout(\n () => deleteLevel(levelDepth),\n closeDelay,\n );\n }\n return () => clearTimeout(timers[levelDepth]);\n }, [hovered, hoveredParenLevel]);\n\n useEffect(() => {\n if (!isOpen) {\n clearTimeout(timers[levelDepth]);\n }\n }, [isOpen]);\n\n return (\n <ContextMenuLevelWrapper\n anchorRef={anchorRef}\n className={\n isMobile\n ? cnContextMenuLevel('Mobile', { animate }, [className])\n : cnContextMenuLevel('Desktop', { firstLevel }, [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixPopoverAnimate({ animate }),\n firstLevel ? className : undefined,\n ])\n }\n possibleDirections={possibleDirections}\n spareDirection={spareDirection}\n direction={direction}\n offset={offset}\n tabIndex={0}\n onKeyDown={onKeyDown}\n onSetDirection={(direction) => {\n onSetDirection?.(direction);\n setDirection(direction);\n }}\n onMouseEnter={setHovered.on}\n onMouseLeave={onMouseLeave}\n ref={useForkRef([ref, containerRef])}\n isMobile={isMobile}\n {...otherProps}\n >\n {parent && (\n <>\n <ListItem\n label={getItemLabel(parent)}\n size={size}\n tabIndex={0}\n ref={parentRef}\n leftIcon={IconArrowLeft}\n onClick={() => deleteLevel(levelDepth)}\n active={activeIndex === -1}\n className={cnContextMenuLevel('Item', {\n active: activeIndex === -1,\n })}\n />\n <ListDivider size={size} space={{ mV: mapVerticalSpace[size] }} />\n </>\n )}\n <List\n size={size}\n items={items}\n getItemLabel={getItemLabel}\n onItemClick={onItemClick}\n sortGroup={sortGroup ? (a, b) => sortGroup(a.key, b.key) : undefined}\n getItemOnClick={getItemOnClick}\n getItemAs={getItemAs}\n getItemAttributes={getItemAttributes}\n getItemGroupKey={getItemGroupId}\n getItemLeftIcon={getItemLeftIcon}\n getItemRightIcon={getItemRightIcon}\n getItemLeftSide={getItemLeftSide}\n getItemRightSide={getItemRightSide}\n getGroupKey={getGroupId}\n getGroupLabel={getGroupLabel}\n getItemDisabled={getItemDisabled}\n getItemStatus={getItemStatus}\n getItemActive={getItemActive}\n getItemAdditionalClassName={(item) =>\n cnContextMenuLevel('Item', {\n active: getKey(item) === activeItem,\n })\n }\n getItemRef={(item) => itemsRefs[getKey(item)]}\n groups={groupsProp}\n innerOffset={form === 'round' ? 'increased' : 'normal'}\n />\n </ContextMenuLevelWrapper>\n );\n};\n\nexport const ContextMenuLevel = forwardRef(\n ContextMenuLevelRender,\n) as ContextMenuLevelComponent;\n"],"mappings":"qhFAAA,+BAEA,OAASA,aAAT,KAA8B,6BAA9B,CACA,OAASC,cAAT,KAA+B,8BAA/B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,SAA5B,CAAuCC,OAAvC,KAAsD,OAAtD,CAEA,OACEC,SADF,CAEEC,IAFF,CAGEC,WAHF,CAIEC,QAJF,CAMEC,WANF,CAOEC,gBAPF,wBASA,OAASC,OAAT,sCACA,OAASC,UAAT,iCACA,OAASC,mBAAT,uCACA,OAASC,UAAT,8BACA,OAASC,EAAT,0BAGA,OAASC,uBAAT,kCACA,OACEC,sBADF,gBAMA,OAASC,iBAAT,4BAEA,MAAO,IAAMC,mBAAkB,CAAGJ,EAAE,CAAC,kBAAD,CAA7B,CAEP,GAAIK,OAAuC,CAAG,EAA9C,CACA,MAAO,SAASC,YAAT,EAAuB,oCACRD,MADQ,MAC5B,2BAA4B,IAAjBE,EAAiB,SAC1BC,YAAY,CAACD,CAAD,CACb,CAH2B,+BAI5BF,MAAM,CAAG,EACV,C,GAEKI,WAAU,CAAG,G,CAEbC,sBAAsB,CAAG,SAC7BC,CAD6B,CAE7BC,CAF6B,CAG1B,OAgDCD,CAhDD,CAEDE,IAFC,CAEDA,CAFC,YAEMX,sBAFN,GAGDY,CAHC,CAgDCH,CAhDD,CAGDG,KAHC,CAIOC,CAJP,CAgDCJ,CAhDD,CAIDK,MAJC,CAKDC,CALC,CAgDCN,CAhDD,CAKDM,SALC,GAgDCN,CAhDD,CAMDO,IANC,CAMDA,CANC,YAMM,SANN,GAODC,CAPC,CAgDCR,CAhDD,CAODQ,OAPC,CASDC,CATC,CAgDCT,CAhDD,CASDS,UATC,CAUDC,CAVC,CAgDCV,CAhDD,CAUDU,gBAVC,CAWDC,CAXC,CAgDCX,CAhDD,CAWDW,UAXC,CAYDC,CAZC,CAgDCZ,CAhDD,CAYDY,QAZC,CAaDC,CAbC,CAgDCb,CAhDD,CAaDa,WAbC,CAcDC,CAdC,CAgDCd,CAhDD,CAcDc,oBAdC,CAeDC,CAfC,CAgDCf,CAhDD,CAeDe,iBAfC,CAgBDC,CAhBC,CAgDChB,CAhDD,CAgBDgB,SAhBC,CAiBYC,CAjBZ,CAgDCjB,CAhDD,CAiBDkB,WAjBC,CAkBDC,CAlBC,CAgDCnB,CAhDD,CAkBDmB,KAlBC,CAmBDC,CAnBC,CAgDCpB,CAhDD,CAmBDoB,MAnBC,CAoBDC,CApBC,CAgDCrB,CAhDD,CAoBDqB,MApBC,CAqBDC,CArBC,CAgDCtB,CAhDD,CAqBDsB,QArBC,CAwBDC,CAxBC,CAgDCvB,CAhDD,CAwBDuB,SAxBC,CAyBDC,CAzBC,CAgDCxB,CAhDD,CAyBDwB,kBAzBC,CA0BDC,CA1BC,CAgDCzB,CAhDD,CA0BDyB,MA1BC,CA2BDC,CA3BC,CAgDC1B,CAhDD,CA2BD0B,cA3BC,CA4BDC,CA5BC,CAgDC3B,CAhDD,CA4BD2B,cA5BC,CA6BDC,CA7BC,CAgDC5B,CAhDD,CA6BD4B,SA7BC,CA+BDC,CA/BC,CAgDC7B,CAhDD,CA+BD6B,YA/BC,CAgCiBC,CAhCjB,CAgDC9B,CAhDD,CAgCD+B,gBAhCC,CAiCDC,CAjCC,CAgDChC,CAhDD,CAiCDgC,eAjCC,CAkCDC,CAlCC,CAgDCjC,CAhDD,CAkCDiC,cAlCC,CAmCDC,CAnCC,CAgDClC,CAhDD,CAmCDkC,aAnCC,CAoCDC,CApCC,CAgDCnC,CAhDD,CAoCDmC,eApCC,CAqCDC,CArCC,CAgDCpC,CAhDD,CAqCDoC,UArCC,CAsCeC,CAtCf,CAgDCrC,CAhDD,CAsCDsC,cAtCC,CAuCDC,CAvCC,CAgDCvC,CAhDD,CAuCDuC,SAvCC,CAwCkBC,CAxClB,CAgDCxC,CAhDD,CAwCDyC,iBAxCC,CAyCDC,CAzCC,CAgDC1C,CAhDD,CAyCD0C,cAzCC,CA0CDC,CA1CC,CAgDC3C,CAhDD,CA0CD2C,eA1CC,CA2CDC,CA3CC,CAgDC5C,CAhDD,CA2CD4C,gBA3CC,CA6CDC,CA7CC,CAgDC7C,CAhDD,CA6CD6C,aA7CC,CA8CDC,CA9CC,CAgDC9C,CAhDD,CA8CD8C,UA9CC,CA+CEC,CA/CF,0BAgDC/C,CAhDD,YAkDGgD,CAAU,CAAkB,CAAf,GAAAvC,CAlDhB,GAoD2BxB,OAAO,IApDlC,uBAoDIgE,CApDJ,MAoDaC,CApDb,MAsDGC,CAAM,CAAG,SAACC,CAAD,QACb,CAAChB,CAAU,CAACgB,CAAD,CAAV,EAAoBvB,CAAY,CAACuB,CAAD,CAAjC,EAAyCC,QAAzC,EADa,CAtDZ,CAyDGC,CAAe,CAAG,SAACF,CAAD,CAAkC,IAClDG,EAAO,CAAGtB,CAAc,CAACmB,CAAD,CAD0B,CAElDI,CAAQ,CAAGrB,CAAe,CAACiB,CAAD,CAFwB,CAIxD,GAAIK,KAAK,CAACC,OAAN,CAAcH,CAAd,GAA0B,CAACC,CAA/B,CAAyC,CACvC,GAAMG,EAAG,CAAGR,CAAM,CAACC,CAAD,CAAlB,CACAxC,CAAQ,CAAC,CACPgD,KAAK,CAAEnD,CAAU,CAAG,CADb,CAEPN,KAAK,CAAEoD,CAFA,CAGP3B,SAAS,CAAEiC,EAAS,CAACF,CAAD,CAHb,CAIPhD,UAAU,CAAEgD,CAJL,CAKPtC,MAAM,CAAE+B,CALD,CAAD,CAF+B,CASvCtC,CAAoB,CAACL,CAAU,CAAG,CAAd,CACrB,CAVD,IAWEK,EAAoB,CAACL,CAAD,CAEvB,CA1EE,GAyFCjB,iBAAiB,CAAC,CACpBW,KAAK,CAALA,CADoB,CAEpB8B,cAAc,CAAdA,CAFoB,CAGpBrB,QAAQ,CAAE0C,CAHU,CAIpBQ,MAAM,CAAEpD,CAAgB,GAAKD,CAJT,CAKpBI,WAAW,CAAE,6BAAMA,EAAW,CAACJ,CAAD,CAAjB,CALO,CAMpBU,KAAK,CAnB4C,QAA7C4C,eAA6C,CAACC,CAAD,CAAO,cACxD7C,CADwD,WACxDA,CADwD,QACxDA,CAAK,CAAG6C,CAAH,CADmD,QAExDpC,CAFwD,WAExDA,CAFwD,YAExDA,CAAS,CAAEqC,OAF6C,qBAExD,EAAoBC,KAApB,EACD,CAUqB,CAOpBN,KAAK,CAAEnD,CAPa,CAQpBa,QAAQ,CAARA,CARoB,CAAD,CAzFlB,CAkFD6C,EAlFC,GAkFDA,IAlFC,CAmFDC,EAnFC,GAmFDA,SAnFC,CAoFDC,EApFC,GAoFDA,WApFC,CAqFDC,EArFC,GAqFDA,cArFC,CAsFDC,EAtFC,GAsFDA,YAtFC,CAuFDC,EAvFC,GAuFDA,SAvFC,CAwFDC,EAxFC,GAwFDA,YAxFC,CAoGGZ,EAAS,CAAGnF,OAAO,CAAC,UAAM,CAC9B,MAAOyB,EAAK,CACTuE,GADI,CACA,SAACtB,CAAD,QAAUD,EAAM,CAACC,CAAD,CAAhB,CADA,EAEJuB,MAFI,CAEG,SAACC,CAAD,CAAIC,CAAJ,CAAOC,CAAP,wCAAuBF,CAAvB,wBAA2BC,CAA3B,CAA+BV,EAAI,CAACW,CAAD,CAAnC,GAFH,CAEkD,EAFlD,CAMR,CAPwB,CAOtB,CAAC1E,CAAD,CAAa+D,EAAb,CAPsB,CApGtB,CA6GGY,EAAS,CAAGrG,OAAO,CAAC,UAAM,CAC9B,GAAM0E,EAAI,CAAGjD,CAAK,CAACkE,EAAD,CAAlB,CACA,MAAOjB,EAAI,CAAGD,CAAM,CAACC,CAAD,CAAT,OACZ,CAHwB,CAGtB,CAACjD,CAAD,CAAQkE,EAAR,CAHsB,CA7GtB,CAkHGW,EAAY,CAAG1D,CAAQ,QAEzB,SAAC8B,CAAD,QACE,UAACY,CAAD,CAAO,OACLV,CAAe,CAACF,CAAD,CADV,CAEL,GAAM4B,EAAY,WAAGxC,CAAqB,CAACY,CAAD,CAAxB,qBAAG,EACjB4B,YADJ,CAEAV,EAAc,CAACnE,CAAK,CAAC8E,OAAN,CAAc7B,CAAd,CAAD,CAJT,QAKL4B,CALK,WAKLA,CALK,QAKLA,CAAY,CAAGhB,CAAH,CACb,CAPH,CApHD,CA+HG1B,EAAc,CAAGD,CAAkB,CACrC,SAACe,CAAD,QAAkC,UAACY,CAAD,yBAChC3B,CAAkB,CAACe,CAAD,CADc,qBAChC,EAA2BY,CAA3B,CADgC,CAAlC,CADqC,OA/HtC,CAgMH,MAjBAvF,UAAS,CAAC,UAAM,CAQd,MAPmB,EAAf,GAAAgC,CAAU,EAAU,CAACwC,CAArB,EAAgClC,CAAiB,CAAGN,CAOxD,GANEZ,YAAY,CAACH,MAAM,CAACe,CAAD,CAAP,CAMd,CALEf,MAAM,CAACe,CAAD,CAAN,CAAqByE,UAAU,CAC7B,iBAAMrE,EAAW,CAACJ,CAAD,CAAjB,CAD6B,CAE7BX,UAF6B,CAKjC,EAAO,iBAAMD,aAAY,CAACH,MAAM,CAACe,CAAD,CAAP,CAAlB,CACR,CATQ,CASN,CAACwC,CAAD,CAAUlC,CAAV,CATM,CAiBT,CANAtC,SAAS,CAAC,UAAM,CACT2C,CADS,EAEZvB,YAAY,CAACH,MAAM,CAACe,CAAD,CAAP,CAEf,CAJQ,CAIN,CAACW,CAAD,CAJM,CAMT,CACE,oBAAC,uBAAD,gBACE,SAAS,CAAEQ,CADb,CAEE,SAAS,CACPN,CAAQ,CACJ7B,kBAAkB,CAAC,QAAD,CAAW,CAAEe,OAAO,CAAPA,CAAF,CAAX,CAAwB,CAACF,CAAD,CAAxB,CADd,CAEJb,kBAAkB,CAAC,SAAD,CAAY,CAAEuD,UAAU,CAAVA,CAAF,CAAZ,CAA4B,CAC5CrE,SAAS,CAAC,CAAEuB,IAAI,CAAJA,CAAF,CAAQK,IAAI,CAAJA,CAAR,CAAc4E,MAAM,GAApB,CAA4BC,MAAM,GAAlC,CAAD,CADmC,CAE5ChG,UAAU,CAAC,CACTiG,EAAE,CAAErG,gBAAgB,CAACkB,CAAD,CADX,CAAD,CAFkC,CAK5Cf,mBAAmB,CAAC,CAAEqB,OAAO,CAAPA,CAAF,CAAD,CALyB,CAM5CwC,CAAU,CAAG1C,CAAH,OANkC,CAA5B,CAL1B,CAcE,kBAAkB,CAAEkB,CAdtB,CAeE,cAAc,CAAEG,CAflB,CAgBE,SAAS,CAAEJ,CAhBb,CAiBE,MAAM,CAAEE,CAjBV,CAkBE,QAAQ,CAAE,CAlBZ,CAmBE,SAAS,CAAE2C,EAnBb,CAoBE,cAAc,CAAE,wBAAC7C,CAAD,CAAe,QAC7BG,CAD6B,WAC7BA,CAD6B,QAC7BA,CAAc,CAAGH,CAAH,CADe,CAE7BgD,EAAY,CAAChD,CAAD,CACb,CAvBH,CAwBE,YAAY,CAAE2B,CAAU,CAACoC,EAxB3B,CAyBE,YAAY,CA/D8B,QAAxCC,aAAwC,EAAM,CAClDrC,CAAU,CAACsC,GAAX,EADkD,CAElDlB,EAAc,CAAC,CAAC,CAAF,CACf,CAmCC,CA0BE,GAAG,CAAEpF,UAAU,CAAC,CAACe,CAAD,CAAMwE,EAAN,CAAD,CA1BjB,CA2BE,QAAQ,CAAEnD,CA3BZ,EA4BMyB,CA5BN,EA8BG1B,CAAM,EACL,wCACE,oBAAC,QAAD,EACE,KAAK,CAAEQ,CAAY,CAACR,CAAD,CADrB,CAEE,IAAI,CAAEnB,CAFR,CAGE,QAAQ,CAAE,CAHZ,CAIE,GAAG,CAAEsE,EAJP,CAKE,QAAQ,CAAEnG,aALZ,CAME,OAAO,CAAE,yBAAMwC,EAAW,CAACJ,CAAD,CAAjB,CANX,CAOE,MAAM,CAAkB,CAAC,CAAjB,GAAA4D,EAPV,CAQE,SAAS,CAAE5E,kBAAkB,CAAC,MAAD,CAAS,CACpCqE,MAAM,CAAkB,CAAC,CAAjB,GAAAO,EAD4B,CAAT,CAR/B,EADF,CAaE,oBAAC,WAAD,EAAa,IAAI,CAAEnE,CAAnB,CAAyB,KAAK,CAAE,CAAEuF,EAAE,CAAEzG,gBAAgB,CAACkB,CAAD,CAAtB,CAAhC,EAbF,CA/BJ,CA+CE,oBAAC,IAAD,EACE,IAAI,CAAEA,CADR,CAEE,KAAK,CAAEC,CAFT,CAGE,YAAY,CAAE0B,CAHhB,CAIE,WAAW,CApFgD,QAA3DX,YAA2D,CAC/DkC,CAD+D,GAG5D,IADDY,EACC,GADDA,CACC,CACC1C,CADD,GAEDgC,CAAe,CAACF,CAAD,CAFd,CAGDkB,EAAc,CAACnE,CAAK,CAAC8E,OAAN,CAAc7B,CAAd,CAAD,CAHb,SAKHnC,CALG,WAKHA,CALG,QAKHA,CAAe,CAAGmC,CAAH,CAAS,CACtBY,CAAC,CAAEA,CADmB,CAAT,CAGhB,CAqEG,CAKE,SAAS,CAAEhD,CAAS,CAAG,SAAC4D,CAAD,CAAIc,CAAJ,QAAU1E,EAAS,CAAC4D,CAAC,CAACjB,GAAH,CAAQ+B,CAAC,CAAC/B,GAAV,CAAnB,CAAH,OALtB,CAME,cAAc,CAAErB,EANlB,CAOE,SAAS,CAAEC,CAPb,CAQE,iBAAiB,CApHG,QAApBE,kBAAoB,CAACW,CAAD,wCAEnBZ,CAAqB,CAACY,CAAD,CAFF,MAGtBuC,QAAQ,CAAE,CAHY,CAItBX,YAAY,QAAEA,EAAF,WAAEA,EAAF,QAAEA,EAAY,CAAG5B,CAAH,CAJJ,GA4GtB,CASE,eAAe,CAAEV,CATnB,CAUE,eAAe,CAAEC,CAVnB,CAWE,gBAAgB,CAAEC,CAXpB,CAYE,eAAe,CAAEZ,CAZnB,CAaE,gBAAgB,CA7GG,QAAnBD,iBAAmB,CAACqB,CAAD,CAAkC,CACzD,GAAMwC,EAAI,CAAG9D,CAAoB,CAACsB,CAAD,CAAjC,CACA,GAAI,CAACnB,CAAc,CAACmB,CAAD,CAAnB,CACE,MAAOwC,EAAP,CAGF,GAAMC,EAAwB,CAAGpC,KAAK,CAACC,OAAN,CAAckC,CAAd,EAAsBA,CAAtB,CAA6B,CAACA,CAAD,CAA9D,CAEA,MADAC,EAAK,CAACC,IAAN,CAAW,oBAAC,cAAD,EAAgB,IAAI,CAAE/G,WAAW,CAACmB,CAAD,CAAjC,EAAX,CACA,CAAO2F,CACR,CAuFG,CAcE,WAAW,CAAE/C,CAdf,CAeE,aAAa,CAAED,CAfjB,CAgBE,eAAe,CAAEV,CAhBnB,CAiBE,aAAa,CAAED,CAjBjB,CAkBE,aAAa,CAvHG,QAAhB6D,cAAgB,CAAC3C,CAAD,CAAkC,CACtD,GAAMO,EAAG,CAAGR,CAAM,CAACC,CAAD,CAAlB,CACA,MAAOO,EAAG,GAAKhD,CAAR,EAAsBgD,CAAG,GAAKoB,EACtC,CAkGG,CAmBE,0BAA0B,CAAE,oCAAC3B,CAAD,QAC1B3D,mBAAkB,CAAC,MAAD,CAAS,CACzBqE,MAAM,CAAEX,CAAM,CAACC,CAAD,CAAN,GAAiBzC,CADA,CAAT,CADQ,CAnB9B,CAwBE,UAAU,CAAE,oBAACyC,CAAD,QAAUS,GAAS,CAACV,CAAM,CAACC,CAAD,CAAP,CAAnB,CAxBd,CAyBE,MAAM,CAAEhD,CAzBV,CA0BE,WAAW,CAAW,OAAT,GAAAG,CAAI,CAAe,WAAf,CAA6B,QA1BhD,EA/CF,CA6EH,C,CAED,MAAO,IAAMyF,iBAAgB,CAAGxH,UAAU,CACxCuB,sBADwC,CAAnC"}
|
|
1
|
+
{"version":3,"file":"ContextMenuLevel.js","names":["IconArrowLeft","IconArrowRight","React","forwardRef","useEffect","useMemo","cnListBox","List","ListDivider","ListItem","mapIconSize","mapVerticalSpace","useFlag","useForkRef","cnMixPopoverAnimate","cnMixSpace","cn","ContextMenuLevelWrapper","contextMenuDefaultSize","useMenuNavigation","cnContextMenuLevel","timers","clearTimers","timer","clearTimeout","closeDelay","ContextMenuLevelRender","props","ref","size","items","groupsProp","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClickProp","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSideProp","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClickProp","getItemOnClick","getItemAs","getItemAttributesProp","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId","otherProps","firstLevel","hovered","setHovered","getKey","item","toString","addCurrentLevel","subMenu","disabled","Array","isArray","key","level","itemsRefs","active","handleEscClick","e","current","focus","refs","onKeyDown","activeIndex","setActiveIndex","setDirection","parentRef","containerRef","map","reduce","a","v","index","activeKey","onMouseEnter","indexOf","setTimeout","border","shadow","pV","on","onMouseLeave","off","mV","b","tabIndex","side","sides","push","getItemActive","ContextMenuLevel"],"sources":["../../../../../../src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.tsx"],"sourcesContent":["import './ContextMenuLevel.css';\n\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useEffect, useMemo } from 'react';\n\nimport {\n cnListBox,\n List,\n ListDivider,\n ListItem,\n ListPropOnItemClick,\n mapIconSize,\n mapVerticalSpace,\n} from '##/components/ListCanary';\nimport { useFlag } from '##/hooks/useFlag/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cn } from '##/utils/bem';\nimport { AsAttributes, AsTagAttribute } from '##/utils/types/AsTags';\n\nimport { ContextMenuLevelWrapper } from '../ContextMenuLevelWrapper';\nimport {\n contextMenuDefaultSize,\n ContextMenuItemDefault,\n ContextMenuLevelComponent,\n ContextMenuLevelProps,\n} from '../types';\nimport { useMenuNavigation } from '../useMenuNavigation';\n\nexport const cnContextMenuLevel = cn('ContextMenuLevel');\n\nlet timers: ReturnType<typeof setTimeout>[] = [];\nexport function clearTimers() {\n for (const timer of timers) {\n clearTimeout(timer);\n }\n timers = [];\n}\n\nconst closeDelay = 300;\n\nconst ContextMenuLevelRender = (\n props: ContextMenuLevelProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n size = contextMenuDefaultSize,\n items,\n groups: groupsProp,\n className,\n form = 'default',\n animate,\n // Свойства относящиеся к меню\n levelDepth,\n activeLevelDepth,\n activeItem,\n addLevel,\n deleteLevel,\n setHoveredParenLevel,\n hoveredParenLevel,\n sortGroup,\n onItemClick: onItemClickProp,\n onEsc,\n isOpen,\n parent,\n isMobile,\n\n // Свойства для поповера\n direction,\n possibleDirections,\n offset,\n onSetDirection,\n spareDirection,\n anchorRef,\n // Геттеры для ITEM\n getItemLabel,\n getItemRightSide: getItemRightSideProp,\n getItemLeftSide,\n getItemSubMenu,\n getItemStatus,\n getItemDisabled,\n getItemKey,\n getItemOnClick: getItemOnClickProp,\n getItemAs,\n getItemAttributes: getItemAttributesProp,\n getItemGroupId,\n getItemLeftIcon,\n getItemRightIcon,\n // Геттеры для GROUP\n getGroupLabel,\n getGroupId,\n ...otherProps\n } = props;\n\n const firstLevel = levelDepth === 0;\n\n const [hovered, setHovered] = useFlag(false);\n\n const getKey = (item: ContextMenuItemDefault) =>\n (getItemKey(item) || getItemLabel(item)).toString();\n\n const addCurrentLevel = (item: ContextMenuItemDefault) => {\n const subMenu = getItemSubMenu(item);\n const disabled = getItemDisabled(item);\n\n if (Array.isArray(subMenu) && !disabled) {\n const key = getKey(item);\n addLevel({\n level: levelDepth + 1,\n items: subMenu,\n anchorRef: itemsRefs[key],\n activeItem: key,\n parent: item,\n });\n setHoveredParenLevel(levelDepth + 1);\n } else {\n setHoveredParenLevel(levelDepth);\n }\n };\n\n const handleEscClick: React.KeyboardEventHandler = (e) => {\n onEsc?.(e);\n anchorRef?.current?.focus();\n };\n\n const {\n refs,\n onKeyDown,\n activeIndex,\n setActiveIndex,\n setDirection,\n parentRef,\n containerRef,\n } = useMenuNavigation({\n items,\n getItemSubMenu,\n addLevel: addCurrentLevel,\n active: activeLevelDepth === levelDepth,\n deleteLevel: () => deleteLevel(levelDepth),\n onEsc: handleEscClick,\n level: levelDepth,\n isMobile,\n });\n\n const itemsRefs = useMemo(() => {\n return items\n .map((item) => getKey(item))\n .reduce((a, v, index) => ({ ...a, [v]: refs[index] }), {}) as Record<\n string,\n React.RefObject<HTMLDivElement>\n >;\n }, [groupsProp, refs]);\n\n const activeKey = useMemo(() => {\n const item = items[activeIndex];\n return item ? getKey(item) : undefined;\n }, [items, activeIndex]);\n\n const onMouseEnter = isMobile\n ? undefined\n : (item: ContextMenuItemDefault): AsTagAttribute<'div'>['onMouseEnter'] =>\n (e) => {\n addCurrentLevel(item);\n const onMouseEnter = getItemAttributesProp(item)\n ?.onMouseEnter as AsTagAttribute<'div'>['onMouseEnter'];\n setActiveIndex(items.indexOf(item));\n onMouseEnter?.(e);\n };\n\n // GETTERS\n\n const getItemOnClick = getItemOnClickProp\n ? (item: ContextMenuItemDefault) => (e: React.MouseEvent) =>\n getItemOnClickProp(item)?.(e as React.MouseEvent<HTMLDivElement>)\n : undefined;\n\n const getItemAttributes = (item: ContextMenuItemDefault) =>\n ({\n ...getItemAttributesProp(item),\n tabIndex: 0,\n onMouseEnter: onMouseEnter?.(item),\n } as AsAttributes);\n\n const getItemActive = (item: ContextMenuItemDefault) => {\n const key = getKey(item);\n return key === activeItem || key === activeKey;\n };\n\n const getItemRightSide = (item: ContextMenuItemDefault) => {\n const side = getItemRightSideProp(item);\n if (!getItemSubMenu(item)) {\n return side;\n }\n\n const sides: React.ReactNode[] = Array.isArray(side) ? side : [side];\n sides.push(<IconArrowRight size={mapIconSize[size]} />);\n return sides;\n };\n\n const onMouseLeave: React.MouseEventHandler = () => {\n setHovered.off();\n setActiveIndex(-1);\n };\n\n const onItemClick: ListPropOnItemClick<ContextMenuItemDefault> = (\n item,\n { e },\n ) => {\n if (isMobile) {\n addCurrentLevel(item);\n setActiveIndex(items.indexOf(item));\n }\n onItemClickProp?.(item, {\n e: e as React.MouseEvent<HTMLDivElement>,\n });\n };\n\n // EFFECTS\n\n useEffect(() => {\n if (levelDepth !== 0 && !hovered && hoveredParenLevel < levelDepth) {\n clearTimeout(timers[levelDepth]);\n timers[levelDepth] = setTimeout(\n () => deleteLevel(levelDepth),\n closeDelay,\n );\n }\n return () => clearTimeout(timers[levelDepth]);\n }, [hovered, hoveredParenLevel]);\n\n useEffect(() => {\n if (!isOpen) {\n clearTimeout(timers[levelDepth]);\n }\n }, [isOpen]);\n\n return (\n <ContextMenuLevelWrapper\n anchorRef={anchorRef}\n className={\n isMobile\n ? cnContextMenuLevel(\n 'Mobile',\n { animate, firstLevel, level: levelDepth.toString() },\n [className],\n )\n : cnContextMenuLevel(\n 'Desktop',\n { firstLevel, level: levelDepth.toString() },\n [\n cnListBox({ size, form, border: true, shadow: true }),\n cnMixSpace({\n pV: mapVerticalSpace[size],\n }),\n cnMixPopoverAnimate({ animate }),\n className,\n ],\n )\n }\n possibleDirections={possibleDirections}\n spareDirection={spareDirection}\n direction={direction}\n offset={offset}\n tabIndex={0}\n onKeyDown={onKeyDown}\n onSetDirection={(direction) => {\n onSetDirection?.(direction);\n setDirection(direction);\n }}\n onMouseEnter={setHovered.on}\n onMouseLeave={onMouseLeave}\n ref={useForkRef([ref, containerRef])}\n isMobile={isMobile}\n {...otherProps}\n >\n {parent && (\n <>\n <ListItem\n label={getItemLabel(parent)}\n size={size}\n tabIndex={0}\n ref={parentRef}\n leftIcon={IconArrowLeft}\n onClick={() => deleteLevel(levelDepth)}\n active={activeIndex === -1}\n className={cnContextMenuLevel('Item', {\n active: activeIndex === -1,\n })}\n />\n <ListDivider size={size} space={{ mV: mapVerticalSpace[size] }} />\n </>\n )}\n <List\n size={size}\n items={items}\n getItemLabel={getItemLabel}\n onItemClick={onItemClick}\n sortGroup={sortGroup ? (a, b) => sortGroup(a.key, b.key) : undefined}\n getItemOnClick={getItemOnClick}\n getItemAs={getItemAs}\n getItemAttributes={getItemAttributes}\n getItemGroupKey={getItemGroupId}\n getItemLeftIcon={getItemLeftIcon}\n getItemRightIcon={getItemRightIcon}\n getItemLeftSide={getItemLeftSide}\n getItemRightSide={getItemRightSide}\n getGroupKey={getGroupId}\n getGroupLabel={getGroupLabel}\n getItemDisabled={getItemDisabled}\n getItemStatus={getItemStatus}\n getItemActive={getItemActive}\n getItemAdditionalClassName={(item) =>\n cnContextMenuLevel('Item', {\n active: getKey(item) === activeItem,\n })\n }\n getItemRef={(item) => itemsRefs[getKey(item)]}\n groups={groupsProp}\n innerOffset={form === 'round' ? 'increased' : 'normal'}\n />\n </ContextMenuLevelWrapper>\n );\n};\n\nexport const ContextMenuLevel = forwardRef(\n ContextMenuLevelRender,\n) as ContextMenuLevelComponent;\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AsTagAttribute } from '../../utils/types/AsTags';
|
|
2
|
-
import {
|
|
2
|
+
import { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';
|
|
3
3
|
declare const sidebarPropPosition: readonly ["right", "bottom", "left", "top"];
|
|
4
4
|
export type SidebarPropPosition = typeof sidebarPropPosition[number];
|
|
5
5
|
export declare const sidebarPropSize: readonly ["s", "m", "l", "full", "none", "1/2", "1/3", "1/4", "2/3", "3/4"];
|
|
6
6
|
export type SidebarPropSize = typeof sidebarPropSize[number];
|
|
7
|
-
export type SidebarProps =
|
|
7
|
+
export type SidebarProps = PropsWithHTMLAttributesAndRef<{
|
|
8
8
|
isOpen?: boolean;
|
|
9
9
|
onClose?: () => void;
|
|
10
10
|
onOpen?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["sidebarPropPosition","sidebarPropSize"],"sources":["../../../../../src/components/Sidebar/types.ts"],"sourcesContent":["import { AsTagAttribute } from '##/utils/types/AsTags';\nimport {
|
|
1
|
+
{"version":3,"file":"types.js","names":["sidebarPropPosition","sidebarPropSize"],"sources":["../../../../../src/components/Sidebar/types.ts"],"sourcesContent":["import { AsTagAttribute } from '##/utils/types/AsTags';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nconst sidebarPropPosition = ['right', 'bottom', 'left', 'top'] as const;\nexport type SidebarPropPosition = typeof sidebarPropPosition[number];\n\nexport const sidebarPropSize = [\n 's',\n 'm',\n 'l',\n 'full',\n 'none',\n '1/2',\n '1/3',\n '1/4',\n '2/3',\n '3/4',\n] as const;\n\nexport type SidebarPropSize = typeof sidebarPropSize[number];\n\nexport type SidebarProps = PropsWithHTMLAttributesAndRef<\n {\n isOpen?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n hasOverlay?: boolean;\n onClickOutside?: (event: MouseEvent) => void;\n onEsc?: (event: KeyboardEvent) => void;\n position?: SidebarPropPosition;\n size?: SidebarPropSize;\n rootClassName?: string;\n children?: React.ReactNode;\n container?: HTMLDivElement | React.RefObject<HTMLDivElement>;\n afterClose?: () => void;\n ignoreOutsideClicksRefs?: React.RefObject<HTMLElement>[];\n border?: boolean;\n scrollContainerRef?: React.RefObject<HTMLDivElement>;\n },\n HTMLDivElement\n>;\n\n/**\n * @deprecated\n */\nexport type SidebarContentProps = {\n className?: string;\n children: React.ReactNode;\n};\n\n/**\n * @deprecated\n */\nexport type SidebarActionsProps = {\n className?: string;\n children: React.ReactNode;\n};\n\nexport interface SidebarComponent\n extends React.ForwardRefExoticComponent<SidebarProps>,\n AsTagAttribute<'div'> {\n /**\n * @deprecated\n */\n Content: React.FC<SidebarContentProps>;\n /**\n * @deprecated\n */\n Actions: React.FC<SidebarActionsProps>;\n}\n"],"mappings":"AAGA,GAAMA,oBAAmB,CAAG,CAAC,OAAD,CAAU,QAAV,CAAoB,MAApB,CAA4B,KAA5B,CAA5B,CAGA,MAAO,IAAMC,gBAAe,CAAG,CAC7B,GAD6B,CAE7B,GAF6B,CAG7B,GAH6B,CAI7B,MAJ6B,CAK7B,MAL6B,CAM7B,KAN6B,CAO7B,KAP6B,CAQ7B,KAR6B,CAS7B,KAT6B,CAU7B,KAV6B,CAAxB"}
|