@consta/header 0.1.0 → 0.3.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.
Files changed (107) hide show
  1. package/Badges/Badges.js +1 -1
  2. package/Badges/Badges.js.map +1 -1
  3. package/ButtonMenu/ButtonMenu.css +1 -0
  4. package/ButtonMenu/ButtonMenu.d.ts +5 -0
  5. package/ButtonMenu/ButtonMenu.js +2 -0
  6. package/ButtonMenu/ButtonMenu.js.map +1 -0
  7. package/ButtonMenu/helpers.d.ts +43 -0
  8. package/ButtonMenu/helpers.js +2 -0
  9. package/ButtonMenu/helpers.js.map +1 -0
  10. package/ButtonMenu/index.d.ts +1 -0
  11. package/ButtonMenu/index.js +2 -0
  12. package/ButtonMenu/index.js.map +1 -0
  13. package/ButtonMenu/types.d.ts +38 -0
  14. package/ButtonMenu/types.js +2 -0
  15. package/ButtonMenu/types.js.map +1 -0
  16. package/Header/Header.css +1 -1
  17. package/Header/Header.js +1 -1
  18. package/Header/Header.js.map +1 -1
  19. package/Header/HeaderSearch/HeaderSearch.css +1 -0
  20. package/Header/HeaderSearch/HeaderSearch.d.ts +15 -0
  21. package/Header/HeaderSearch/HeaderSearch.js +2 -0
  22. package/Header/HeaderSearch/HeaderSearch.js.map +1 -0
  23. package/Header/HeaderSearch/index.d.ts +1 -0
  24. package/Header/HeaderSearch/index.js +2 -0
  25. package/Header/HeaderSearch/index.js.map +1 -0
  26. package/Header/helpers.d.ts +9 -0
  27. package/Header/helpers.js +2 -0
  28. package/Header/helpers.js.map +1 -0
  29. package/Header/types.d.ts +99 -13
  30. package/Languages/Languages.d.ts +3 -0
  31. package/Languages/Languages.js +2 -0
  32. package/Languages/Languages.js.map +1 -0
  33. package/Languages/helpers.d.ts +20 -0
  34. package/Languages/helpers.js +2 -0
  35. package/Languages/helpers.js.map +1 -0
  36. package/Languages/index.d.ts +1 -0
  37. package/Languages/index.js +2 -0
  38. package/Languages/index.js.map +1 -0
  39. package/Languages/types.d.ts +23 -0
  40. package/Languages/types.js +2 -0
  41. package/Languages/types.js.map +1 -0
  42. package/Layout/Layout.js +1 -1
  43. package/Layout/Layout.js.map +1 -1
  44. package/Menu/Menu.js +1 -1
  45. package/Menu/Menu.js.map +1 -1
  46. package/Menu/helpers.d.ts +29 -16
  47. package/Menu/helpers.js +1 -1
  48. package/Menu/helpers.js.map +1 -1
  49. package/Menu/types.d.ts +5 -5
  50. package/MobileMenu/MobileMenu.js +1 -1
  51. package/MobileMenu/MobileMenu.js.map +1 -1
  52. package/MobileMenu/types.d.ts +5 -2
  53. package/MobileMenu/types.js +1 -1
  54. package/MobileMenu/types.js.map +1 -1
  55. package/Notifications/Notifications.js +1 -1
  56. package/Notifications/Notifications.js.map +1 -1
  57. package/Notifications/types.d.ts +3 -3
  58. package/NotificationsList/helpers.d.ts +15 -15
  59. package/NotificationsList/helpers.js.map +1 -1
  60. package/NotificationsList/types.d.ts +11 -11
  61. package/SelectMenu/SelectMenu.css +1 -0
  62. package/SelectMenu/SelectMenu.d.ts +5 -0
  63. package/SelectMenu/SelectMenu.js +2 -0
  64. package/SelectMenu/SelectMenu.js.map +1 -0
  65. package/SelectMenu/helpers.d.ts +40 -0
  66. package/SelectMenu/helpers.js +2 -0
  67. package/SelectMenu/helpers.js.map +1 -0
  68. package/SelectMenu/index.d.ts +1 -0
  69. package/SelectMenu/index.js +2 -0
  70. package/SelectMenu/index.js.map +1 -0
  71. package/SelectMenu/types.d.ts +33 -0
  72. package/SelectMenu/types.js +2 -0
  73. package/SelectMenu/types.js.map +1 -0
  74. package/TileMenu/TileMenu.js +1 -1
  75. package/TileMenu/TileMenu.js.map +1 -1
  76. package/TileMenu/TileMenuList/TileMenuList.js +1 -1
  77. package/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
  78. package/TileMenu/helpers.d.ts +11 -11
  79. package/TileMenu/helpers.js +1 -1
  80. package/TileMenu/helpers.js.map +1 -1
  81. package/TileMenu/types.d.ts +10 -10
  82. package/TileMenu/types.js.map +1 -1
  83. package/VerticalMenu/VerticalMenu.js +1 -1
  84. package/VerticalMenu/VerticalMenu.js.map +1 -1
  85. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js +1 -1
  86. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
  87. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.css +1 -1
  88. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js +1 -1
  89. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
  90. package/VerticalMenu/helpers.d.ts +6 -3
  91. package/VerticalMenu/helpers.js +1 -1
  92. package/VerticalMenu/helpers.js.map +1 -1
  93. package/VerticalMenu/types.d.ts +8 -0
  94. package/__private__/AnimatedContextMenu/AnimatedContextMenu.css +1 -1
  95. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js +1 -1
  96. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js.map +1 -1
  97. package/__private__/helpers/getItemClick.d.ts +7 -0
  98. package/__private__/helpers/getItemClick.js +2 -0
  99. package/__private__/helpers/getItemClick.js.map +1 -0
  100. package/package.json +2 -2
  101. package/__private__/hooks/useHideElementsLine.d.ts +0 -8
  102. package/__private__/hooks/useHideElementsLine.js +0 -2
  103. package/__private__/hooks/useHideElementsLine.js.map +0 -1
  104. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.css +0 -1
  105. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +0 -4
  106. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js +0 -2
  107. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js.map +0 -1
@@ -3,15 +3,15 @@ import { PropsWithHTMLAttributesAndRef, PropsWithHTMLAttributes } from "../__pri
3
3
  export declare const tileMenuPropView: readonly ["lines", "twoLines", "cards"];
4
4
  export declare type TileMenuPropView = typeof tileMenuPropView[number];
5
5
  export declare const tileMenuPropViewDefault: "lines";
6
- export declare type DefaultItem = {
7
- title: string;
6
+ export declare type TileMenuDefaultItem = {
7
+ label: string;
8
8
  image?: string;
9
9
  description?: string;
10
10
  href?: string;
11
11
  onClick?: React.MouseEventHandler<HTMLAnchorElement>;
12
12
  };
13
13
  export declare type TileMenuPropGetItemImage<ITEM> = (item: ITEM) => string | React.FC | undefined;
14
- export declare type TileMenuPropGetItemTitle<ITEM> = (item: ITEM) => string;
14
+ export declare type TileMenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
15
15
  export declare type TileMenuPropGetItemDescription<ITEM> = (item: ITEM) => string | undefined;
16
16
  export declare type TileMenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;
17
17
  export declare type TileMenuPropGetItemOnClick<ITEM> = (item: ITEM) => React.MouseEventHandler<HTMLAnchorElement> | undefined;
@@ -29,20 +29,20 @@ declare type CommonProps<ITEM> = {
29
29
  isMobile?: boolean;
30
30
  onItemClick?: TileMenuOnItemClick<ITEM>;
31
31
  getItemImage?: TileMenuPropGetItemImage<ITEM>;
32
- getItemTitle?: TileMenuPropGetItemTitle<ITEM>;
32
+ getItemLabel?: TileMenuPropGetItemLabel<ITEM>;
33
33
  getItemDescription?: TileMenuPropGetItemDescription<ITEM>;
34
34
  getItemHref?: TileMenuPropGetItemHref<ITEM>;
35
35
  getItemOnClick?: TileMenuPropGetItemOnClick<ITEM>;
36
36
  };
37
- export declare type TileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<CommonProps<ITEM> & {
37
+ export declare type TileMenuProps<ITEM = TileMenuDefaultItem> = PropsWithHTMLAttributesAndRef<CommonProps<ITEM> & {
38
38
  listClassName?: string;
39
39
  title?: string;
40
40
  }, HTMLButtonElement> & (ITEM extends {
41
- title: DefaultItem['title'];
41
+ label: TileMenuDefaultItem['label'];
42
42
  } ? {} : {
43
- getItemTitle: TileMenuPropGetItemTitle<ITEM>;
43
+ getItemLabel: TileMenuPropGetItemLabel<ITEM>;
44
44
  });
45
- export declare type TileMenuListProps<ITEM = DefaultItem> = PropsWithHTMLAttributes<CommonProps<ITEM>, HTMLDivElement>;
46
- export declare type TileMenuListComponent = <ITEM = DefaultItem>(props: TileMenuListProps<ITEM>) => React.ReactElement | null;
47
- export declare type TileMenuComponent = <ITEM = DefaultItem>(props: TileMenuProps<ITEM>) => React.ReactElement | null;
45
+ export declare type TileMenuListProps<ITEM = TileMenuDefaultItem> = PropsWithHTMLAttributes<CommonProps<ITEM>, HTMLDivElement>;
46
+ export declare type TileMenuListComponent = <ITEM = TileMenuDefaultItem>(props: TileMenuListProps<ITEM>) => React.ReactElement | null;
47
+ export declare type TileMenuComponent = <ITEM = TileMenuDefaultItem>(props: TileMenuProps<ITEM>) => React.ReactElement | null;
48
48
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TileMenu/types.ts"],"names":["tileMenuPropView","tileMenuPropViewDefault"],"mappings":"AAKA,MAAO,MAAMA,CAAAA,gBAAgB,CAAG,CAAC,OAAD,CAAU,UAAV,CAAsB,OAAtB,CAAzB,CAEP,MAAO,MAAMC,CAAAA,uBAAuB,CAAGD,gBAAgB,CAAC,CAAD,CAAhD","sourcesContent":["import {\n PropsWithHTMLAttributesAndRef,\n PropsWithHTMLAttributes,\n} from '@/__private__/utils/types/PropsWithHTMLAttributes'\n\nexport const tileMenuPropView = ['lines', 'twoLines', 'cards'] as const\nexport type TileMenuPropView = typeof tileMenuPropView[number]\nexport const tileMenuPropViewDefault = tileMenuPropView[0]\n\nexport type DefaultItem = {\n title: string\n image?: string\n description?: string\n href?: string\n onClick?: React.MouseEventHandler<HTMLAnchorElement>\n}\n\nexport type TileMenuPropGetItemImage<ITEM> = (item: ITEM) => string | React.FC | undefined\nexport type TileMenuPropGetItemTitle<ITEM> = (item: ITEM) => string\nexport type TileMenuPropGetItemDescription<ITEM> = (item: ITEM) => string | undefined\nexport type TileMenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined\nexport type TileMenuPropGetItemOnClick<ITEM> = (\n item: ITEM\n) => React.MouseEventHandler<HTMLAnchorElement> | undefined\nexport type TileMenuPropOnItemClick<ITEM> = (props: {\n e: React.MouseEvent<HTMLAnchorElement>\n item: ITEM\n}) => void\nexport type TileMenuOnItemClick<ITEM> = (props: {\n e: React.MouseEvent<HTMLAnchorElement>\n item: ITEM\n}) => void\n\ntype CommonProps<ITEM> = {\n view?: TileMenuPropView\n items: ITEM[]\n isMobile?: boolean\n onItemClick?: TileMenuOnItemClick<ITEM>\n getItemImage?: TileMenuPropGetItemImage<ITEM>\n getItemTitle?: TileMenuPropGetItemTitle<ITEM>\n getItemDescription?: TileMenuPropGetItemDescription<ITEM>\n getItemHref?: TileMenuPropGetItemHref<ITEM>\n getItemOnClick?: TileMenuPropGetItemOnClick<ITEM>\n}\n\nexport type TileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<\n CommonProps<ITEM> & { listClassName?: string; title?: string },\n HTMLButtonElement\n> &\n (ITEM extends { title: DefaultItem['title'] }\n ? {}\n : { getItemTitle: TileMenuPropGetItemTitle<ITEM> })\n\nexport type TileMenuListProps<ITEM = DefaultItem> = PropsWithHTMLAttributes<\n CommonProps<ITEM>,\n HTMLDivElement\n>\n\nexport type TileMenuListComponent = <ITEM = DefaultItem>(\n props: TileMenuListProps<ITEM>\n) => React.ReactElement | null\n\nexport type TileMenuComponent = <ITEM = DefaultItem>(\n props: TileMenuProps<ITEM>\n) => React.ReactElement | null\n"],"file":"types.js"}
1
+ {"version":3,"sources":["../../src/TileMenu/types.ts"],"names":["tileMenuPropView","tileMenuPropViewDefault"],"mappings":"AAKA,MAAO,MAAMA,CAAAA,gBAAgB,CAAG,CAAC,OAAD,CAAU,UAAV,CAAsB,OAAtB,CAAzB,CAEP,MAAO,MAAMC,CAAAA,uBAAuB,CAAGD,gBAAgB,CAAC,CAAD,CAAhD","sourcesContent":["import {\n PropsWithHTMLAttributesAndRef,\n PropsWithHTMLAttributes,\n} from '@/__private__/utils/types/PropsWithHTMLAttributes'\n\nexport const tileMenuPropView = ['lines', 'twoLines', 'cards'] as const\nexport type TileMenuPropView = typeof tileMenuPropView[number]\nexport const tileMenuPropViewDefault = tileMenuPropView[0]\n\nexport type TileMenuDefaultItem = {\n label: string\n image?: string\n description?: string\n href?: string\n onClick?: React.MouseEventHandler<HTMLAnchorElement>\n}\n\nexport type TileMenuPropGetItemImage<ITEM> = (item: ITEM) => string | React.FC | undefined\nexport type TileMenuPropGetItemLabel<ITEM> = (item: ITEM) => string\nexport type TileMenuPropGetItemDescription<ITEM> = (item: ITEM) => string | undefined\nexport type TileMenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined\nexport type TileMenuPropGetItemOnClick<ITEM> = (\n item: ITEM\n) => React.MouseEventHandler<HTMLAnchorElement> | undefined\nexport type TileMenuPropOnItemClick<ITEM> = (props: {\n e: React.MouseEvent<HTMLAnchorElement>\n item: ITEM\n}) => void\nexport type TileMenuOnItemClick<ITEM> = (props: {\n e: React.MouseEvent<HTMLAnchorElement>\n item: ITEM\n}) => void\n\ntype CommonProps<ITEM> = {\n view?: TileMenuPropView\n items: ITEM[]\n isMobile?: boolean\n onItemClick?: TileMenuOnItemClick<ITEM>\n getItemImage?: TileMenuPropGetItemImage<ITEM>\n getItemLabel?: TileMenuPropGetItemLabel<ITEM>\n getItemDescription?: TileMenuPropGetItemDescription<ITEM>\n getItemHref?: TileMenuPropGetItemHref<ITEM>\n getItemOnClick?: TileMenuPropGetItemOnClick<ITEM>\n}\n\nexport type TileMenuProps<ITEM = TileMenuDefaultItem> = PropsWithHTMLAttributesAndRef<\n CommonProps<ITEM> & { listClassName?: string; title?: string },\n HTMLButtonElement\n> &\n (ITEM extends { label: TileMenuDefaultItem['label'] }\n ? {}\n : { getItemLabel: TileMenuPropGetItemLabel<ITEM> })\n\nexport type TileMenuListProps<ITEM = TileMenuDefaultItem> = PropsWithHTMLAttributes<\n CommonProps<ITEM>,\n HTMLDivElement\n>\n\nexport type TileMenuListComponent = <ITEM = TileMenuDefaultItem>(\n props: TileMenuListProps<ITEM>\n) => React.ReactElement | null\n\nexport type TileMenuComponent = <ITEM = TileMenuDefaultItem>(\n props: TileMenuProps<ITEM>\n) => React.ReactElement | null\n"],"file":"types.js"}
@@ -1,2 +1,2 @@
1
- import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{useState,useCallback}from"react";import{cn}from"../__private__/utils/bem";import{withDefaultGetters,getItemClick}from"./helpers";import"./VerticalMenu.css";import{VerticalMenuLevel}from"./VerticalMenuLevel/VerticalMenuLevel";import{TransitionGroup,CSSTransition}from"react-transition-group";import{cnForCssTransition}from"@consta/uikit/__internal__/src/utils/cnForCssTransition";import{useDebounce}from"@consta/uikit/useDebounce";export const cnVerticalMenu=cn("VerticalMenu");const transitionCn=cnForCssTransition(cnVerticalMenu,"Level");export const VerticalMenu=a=>{const b=withDefaultGetters(a),{items:c,className:d,getItemActive:e,getItemHref:f,getItemLabel:g,getItemOnClick:h,getItemTarget:i,getItemSubMenu:j,header:k,onItemClick:l}=b,m=_objectWithoutProperties(b,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick"]),[n,o]=useState([{items:c}]),[p,q]=useState(!1),r=useDebounce(()=>q(!1),250),s=useCallback(a=>o(b=>{const c=Array.from(b);return c.push(a),c}),[]),t=useCallback(()=>{q(!0),o(a=>{const b=Array.from(a);return b.pop(),b}),r()},[]);return React.createElement("div",Object.assign({},m,{className:cnVerticalMenu({animationBack:p},[d])}),_jsx(TransitionGroup,{enter:!0,exit:!0,className:cnVerticalMenu("Levels")},void 0,n.map((a,b)=>{const c=b+1;if(c>=n.length)return _jsx(CSSTransition,{classNames:transitionCn,timeout:250},c,_jsx(VerticalMenuLevel,{items:a.items,label:a.label,addLevel:s,removeLevel:t,className:cnVerticalMenu("Level",{current:c===n.length}),header:0===b&&k,getItemActive:e,getItemHref:f,getItemLabel:g,getItemOnClick:a=>getItemClick(a,h,l),getItemTarget:i,getItemSubMenu:j},c))})))};export*from"./types";
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{useState,useCallback,forwardRef,useEffect}from"react";import{cn}from"../__private__/utils/bem";import{withDefaultGetters}from"./helpers";import{getItemClick}from"../__private__/helpers/getItemClick";import"./VerticalMenu.css";import{VerticalMenuLevel}from"./VerticalMenuLevel/VerticalMenuLevel";import{TransitionGroup,CSSTransition}from"react-transition-group";import{cnForCssTransition}from"@consta/uikit/__internal__/src/utils/cnForCssTransition";import{useDebounce}from"@consta/uikit/useDebounce";import{useMutableRef}from"@consta/uikit/useMutableRef";import{useRefs}from"@consta/uikit/useRefs";export const cnVerticalMenu=cn("VerticalMenu");const transitionCn=cnForCssTransition(cnVerticalMenu,"Level"),VerticalMenuRender=(a,b)=>{const c=withDefaultGetters(a),{items:d,className:e,getItemActive:f,getItemHref:g,getItemLabel:h,getItemOnClick:i,getItemTarget:j,getItemSubMenu:k,header:l,onItemClick:m,getItemGroup:n,footer:o}=c,p=_objectWithoutProperties(c,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","getItemGroup","footer"]),[q,r]=useState([{items:d,id:"0"}]),[s,t]=useState(!1),u=useRefs(q.length),v=useDebounce(()=>t(!1),250),w=useCallback(a=>r(b=>{const c=Array.from(b);return c.push(a),c}),[]),x=useCallback(()=>{t(!0),r(a=>{const b=Array.from(a);return b.pop(),b}),v()},[]),y=useMutableRef(k),z=useMutableRef(h);return useEffect(()=>{const a=q[q.length-1].id.split("-").slice(1);let b="0";const c=[{items:d,id:b}];a.forEach(a=>{const d=c[c.length-1].items[+a];if(!d)return;const e=y.current(d),f=z.current(d);b=`${b}-${a}`,e&&c.push({items:e,label:f,id:b})}),r(c)},[d]),React.createElement("div",Object.assign({},p,{className:cnVerticalMenu({animationBack:s},[e]),ref:b}),_jsx(TransitionGroup,{enter:!0,exit:!0,className:cnVerticalMenu("Levels")},void 0,q.map((a,b)=>{const c=b+1;if(c>=q.length)return _jsx(CSSTransition,{classNames:transitionCn,timeout:250,nodeRef:u[b]},c,React.createElement(VerticalMenuLevel,{ref:u[b],id:a.id,items:a.items,label:a.label,addLevel:w,removeLevel:x,className:cnVerticalMenu("Level",{current:c===q.length}),key:c,header:0===b&&l,footer:0===b&&o,getItemActive:f,getItemHref:g,getItemLabel:h,getItemOnClick:a=>getItemClick(a,i,m),getItemTarget:j,getItemSubMenu:k,getItemGroup:n}))})))};export const VerticalMenu=forwardRef(VerticalMenuRender);export*from"./types";
2
2
  //# sourceMappingURL=VerticalMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/VerticalMenu/VerticalMenu.tsx"],"names":["React","useState","useCallback","cn","withDefaultGetters","getItemClick","VerticalMenuLevel","TransitionGroup","CSSTransition","cnForCssTransition","useDebounce","cnVerticalMenu","transitionCn","VerticalMenu","props","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","otherProps","levels","setLevels","animationBack","setAnimationBack","disableAnimationBack","addLevel","level","l","newLevels","Array","from","push","removeLevel","pop","map","index","levelNum","length","label","current","menuItem"],"mappings":"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","sourcesContent":["import React, { useState, useCallback } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { withDefaultGetters, getItemClick } from './helpers'\nimport { VerticalMenuComponent, Level } from './types'\nimport './VerticalMenu.css'\nimport { VerticalMenuLevel } from './VerticalMenuLevel/VerticalMenuLevel'\nimport { TransitionGroup, CSSTransition } from 'react-transition-group'\nimport { cnForCssTransition } from '@consta/uikit/__internal__/src/utils/cnForCssTransition'\nimport { useDebounce } from '@consta/uikit/useDebounce'\n\nexport const cnVerticalMenu = cn('VerticalMenu')\n\nconst transitionCn = cnForCssTransition(cnVerticalMenu, 'Level')\n\nexport const VerticalMenu: VerticalMenuComponent = props => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n header,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n const [levels, setLevels] = useState<Array<Level<typeof items[number]>>>([{ items }])\n\n const [animationBack, setAnimationBack] = useState<boolean>(false)\n\n const disableAnimationBack = useDebounce(() => setAnimationBack(false), 250)\n\n const addLevel = useCallback(\n (level: Level<typeof items[number]>) =>\n setLevels(l => {\n const newLevels = Array.from(l)\n newLevels.push(level)\n return newLevels\n }),\n []\n )\n\n const removeLevel = useCallback(() => {\n setAnimationBack(true)\n setLevels(l => {\n const newLevels = Array.from(l)\n newLevels.pop()\n return newLevels\n })\n disableAnimationBack()\n }, [])\n\n return (\n <div {...otherProps} className={cnVerticalMenu({ animationBack }, [className])}>\n <TransitionGroup enter exit className={cnVerticalMenu('Levels')}>\n {levels.map((level, index) => {\n const levelNum = index + 1\n if (levelNum >= levels.length) {\n return (\n <CSSTransition classNames={transitionCn} key={levelNum} timeout={250}>\n <VerticalMenuLevel\n items={level.items}\n label={level.label}\n addLevel={addLevel}\n removeLevel={removeLevel}\n className={cnVerticalMenu('Level', {\n current: levelNum === levels.length,\n })}\n key={levelNum}\n header={index === 0 && header}\n getItemActive={getItemActive}\n getItemHref={getItemHref}\n getItemLabel={getItemLabel}\n getItemOnClick={menuItem => getItemClick(menuItem, getItemOnClick, onItemClick)}\n getItemTarget={getItemTarget}\n getItemSubMenu={getItemSubMenu}\n />\n </CSSTransition>\n )\n }\n })}\n </TransitionGroup>\n </div>\n )\n}\n\nexport * from './types'\n"],"file":"VerticalMenu.js"}
1
+ {"version":3,"sources":["../../src/VerticalMenu/VerticalMenu.tsx"],"names":["React","useState","useCallback","forwardRef","useEffect","cn","withDefaultGetters","getItemClick","VerticalMenuLevel","TransitionGroup","CSSTransition","cnForCssTransition","useDebounce","useMutableRef","useRefs","cnVerticalMenu","transitionCn","VerticalMenuRender","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","header","onItemClick","getItemGroup","footer","otherProps","levels","setLevels","id","animationBack","setAnimationBack","levelRefs","length","disableAnimationBack","addLevel","level","l","newLevels","Array","from","push","removeLevel","pop","getItemSubMenuRef","getItemLabelRef","keys","split","slice","forEach","index","item","levelItems","current","levelLabel","label","map","levelNum","menuItem","VerticalMenu"],"mappings":"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","sourcesContent":["import React, { useState, useCallback, forwardRef, useEffect } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { withDefaultGetters } from './helpers'\nimport { getItemClick } from '@/__private__/helpers/getItemClick'\nimport { VerticalMenuComponent, Level, VerticalMenuProps, DefaultItem } from './types'\nimport './VerticalMenu.css'\nimport { VerticalMenuLevel } from './VerticalMenuLevel/VerticalMenuLevel'\nimport { TransitionGroup, CSSTransition } from 'react-transition-group'\nimport { cnForCssTransition } from '@consta/uikit/__internal__/src/utils/cnForCssTransition'\nimport { useDebounce } from '@consta/uikit/useDebounce'\nimport { useMutableRef } from '@consta/uikit/useMutableRef'\nimport { useRefs } from '@consta/uikit/useRefs'\n\nexport const cnVerticalMenu = cn('VerticalMenu')\n\nconst transitionCn = cnForCssTransition(cnVerticalMenu, 'Level')\n\nconst VerticalMenuRender = (props: VerticalMenuProps, ref: React.Ref<HTMLDivElement>) => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n header,\n onItemClick,\n getItemGroup,\n footer,\n ...otherProps\n } = withDefaultGetters(props)\n\n const [levels, setLevels] = useState<Array<Level<DefaultItem>>>([{ items, id: '0' }])\n const [animationBack, setAnimationBack] = useState<boolean>(false)\n\n const levelRefs = useRefs<HTMLDivElement>(levels.length)\n\n const disableAnimationBack = useDebounce(() => setAnimationBack(false), 250)\n\n const addLevel = useCallback(\n (level: Level<typeof items[number]>) =>\n setLevels(l => {\n const newLevels = Array.from(l)\n newLevels.push(level)\n return newLevels\n }),\n []\n )\n\n const removeLevel = useCallback(() => {\n setAnimationBack(true)\n setLevels(l => {\n const newLevels = Array.from(l)\n newLevels.pop()\n return newLevels\n })\n disableAnimationBack()\n }, [])\n\n const getItemSubMenuRef = useMutableRef(getItemSubMenu)\n const getItemLabelRef = useMutableRef(getItemLabel)\n\n useEffect(() => {\n // обновляем оровни при смене items\n const keys = levels[levels.length - 1].id.split('-').slice(1)\n\n let id = '0'\n\n const newLevels: Array<Level<DefaultItem>> = [{ items, id }]\n\n keys.forEach(index => {\n const item = newLevels[newLevels.length - 1].items[Number(index)]\n\n if (!item) {\n return\n }\n\n const levelItems = getItemSubMenuRef.current(item)\n const levelLabel = getItemLabelRef.current(item)\n id = `${id}-${index}`\n\n if (!levelItems) {\n return\n }\n\n newLevels.push({ items: levelItems, label: levelLabel, id })\n })\n\n setLevels(newLevels)\n }, [items])\n\n return (\n <div {...otherProps} className={cnVerticalMenu({ animationBack }, [className])} ref={ref}>\n <TransitionGroup enter exit className={cnVerticalMenu('Levels')}>\n {levels.map((level, index) => {\n const levelNum = index + 1\n if (levelNum >= levels.length) {\n return (\n <CSSTransition\n classNames={transitionCn}\n key={levelNum}\n timeout={250}\n nodeRef={levelRefs[index]}\n >\n <VerticalMenuLevel\n ref={levelRefs[index]}\n id={level.id}\n items={level.items}\n label={level.label}\n addLevel={addLevel}\n removeLevel={removeLevel}\n className={cnVerticalMenu('Level', {\n current: levelNum === levels.length,\n })}\n key={levelNum}\n header={index === 0 && header}\n footer={index === 0 && footer}\n getItemActive={getItemActive}\n getItemHref={getItemHref}\n getItemLabel={getItemLabel}\n getItemOnClick={menuItem => getItemClick(menuItem, getItemOnClick, onItemClick)}\n getItemTarget={getItemTarget}\n getItemSubMenu={getItemSubMenu}\n getItemGroup={getItemGroup}\n />\n </CSSTransition>\n )\n }\n })}\n </TransitionGroup>\n </div>\n )\n}\n\nexport const VerticalMenu = forwardRef(VerticalMenuRender) as VerticalMenuComponent\n\nexport * from './types'\n"],"file":"VerticalMenu.js"}
@@ -1,2 +1,2 @@
1
- import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React from"react";import{cn}from"../../__private__/utils/bem";import{IconArrowRight}from"@consta/uikit/IconArrowRight";import"./VerticalMenuItem.css";import{Text}from"@consta/uikit/Text";import{cnMixSpace}from"@consta/uikit/MixSpace";export const cnVerticalMenuItem=cn("VerticalMenuItem");export const VerticalMenuItem=a=>{const{className:b,label:c,href:d,target:e,active:f,onClick:g,withSubMenu:h}=a,i=_objectWithoutProperties(a,["className","label","href","target","active","onClick","withSubMenu"]),j=d?{as:"a",href:d,target:e}:{as:"span"};return React.createElement(Text,Object.assign({},i,j,{className:cnVerticalMenuItem({active:f},[cnMixSpace({p:"s",pL:"xl"}),b]),onClick:g}),c,h&&_jsx(IconArrowRight,{className:cnVerticalMenuItem("Icon"),size:"xs"}))};
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React from"react";import{cn}from"../../__private__/utils/bem";import{IconArrowRight}from"@consta/uikit/IconArrowRight";import"./VerticalMenuItem.css";import{Text}from"@consta/uikit/Text";export const cnVerticalMenuItem=cn("VerticalMenuItem");export const VerticalMenuItem=a=>{const{className:b,label:c,href:d,target:e,active:f,onClick:g,withSubMenu:h}=a,i=_objectWithoutProperties(a,["className","label","href","target","active","onClick","withSubMenu"]),j=d?{as:"a",href:d,target:e}:{as:"span"};return React.createElement(Text,Object.assign({},i,j,{className:cnVerticalMenuItem({active:f},[b]),onClick:g}),c,h&&_jsx(IconArrowRight,{className:cnVerticalMenuItem("Icon"),size:"xs"}))};
2
2
  //# sourceMappingURL=VerticalMenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/VerticalMenu/VerticalMenuItem/VerticalMenuItem.tsx"],"names":["React","cn","IconArrowRight","Text","cnMixSpace","cnVerticalMenuItem","VerticalMenuItem","props","className","label","href","target","active","onClick","withSubMenu","otherProps","propsLink","as","p","pL"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAGA,OAASC,cAAT,KAA+B,8BAA/B,CACA,+BACA,OAASC,IAAT,KAAqB,oBAArB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,MAAO,MAAMC,CAAAA,kBAAkB,CAAGJ,EAAE,CAAC,kBAAD,CAA7B,CAEP,MAAO,MAAMK,CAAAA,gBAA2C,CAAGC,CAAK,EAAI,MAC5D,CAAEC,SAAS,CAATA,CAAF,CAAaC,KAAK,CAALA,CAAb,CAAoBC,IAAI,CAAJA,CAApB,CAA0BC,MAAM,CAANA,CAA1B,CAAkCC,MAAM,CAANA,CAAlC,CAA0CC,OAAO,CAAPA,CAA1C,CAAmDC,WAAW,CAAXA,CAAnD,EAAkFP,CADtB,CACOQ,CADP,0BACsBR,CADtB,yEAG5DS,CAAS,CAAGN,CAAI,CACjB,CACCO,EAAE,CAAE,GADL,CAECP,IAAI,CAAJA,CAFD,CAGCC,MAAM,CAANA,CAHD,CADiB,CAMjB,CACCM,EAAE,CAAE,MADL,CAT6D,CAalE,MACE,qBAAC,IAAD,kBACMF,CADN,CAEMC,CAFN,EAGE,SAAS,CAAEX,kBAAkB,CAAC,CAAEO,MAAM,CAANA,CAAF,CAAD,CAAa,CAACR,UAAU,CAAC,CAAEc,CAAC,CAAE,GAAL,CAAUC,EAAE,CAAE,IAAd,CAAD,CAAX,CAAmCX,CAAnC,CAAb,CAH/B,CAIE,OAAO,CAAEK,CAJX,GAMGJ,CANH,CAOGK,CAAW,EAAI,KAAC,cAAD,EAAgB,SAAS,CAAET,kBAAkB,CAAC,MAAD,CAA7C,CAAuD,IAAI,CAAC,IAA5D,EAPlB,CAUH,CAxBM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { VerticalMenuItemComponent } from '../types'\nimport { IconArrowRight } from '@consta/uikit/IconArrowRight'\nimport './VerticalMenuItem.css'\nimport { Text } from '@consta/uikit/Text'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\n\nexport const cnVerticalMenuItem = cn('VerticalMenuItem')\n\nexport const VerticalMenuItem: VerticalMenuItemComponent = props => {\n const { className, label, href, target, active, onClick, withSubMenu, ...otherProps } = props\n\n const propsLink = href\n ? ({\n as: 'a',\n href,\n target,\n } as const)\n : ({\n as: 'span',\n } as const)\n\n return (\n <Text\n {...otherProps}\n {...propsLink}\n className={cnVerticalMenuItem({ active }, [cnMixSpace({ p: 's', pL: 'xl' }), className])}\n onClick={onClick}\n >\n {label}\n {withSubMenu && <IconArrowRight className={cnVerticalMenuItem('Icon')} size=\"xs\" />}\n </Text>\n )\n}\n"],"file":"VerticalMenuItem.js"}
1
+ {"version":3,"sources":["../../../src/VerticalMenu/VerticalMenuItem/VerticalMenuItem.tsx"],"names":["React","cn","IconArrowRight","Text","cnVerticalMenuItem","VerticalMenuItem","props","className","label","href","target","active","onClick","withSubMenu","otherProps","propsLink","as"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAGA,OAASC,cAAT,KAA+B,8BAA/B,CACA,+BACA,OAASC,IAAT,KAAqB,oBAArB,CAEA,MAAO,MAAMC,CAAAA,kBAAkB,CAAGH,EAAE,CAAC,kBAAD,CAA7B,CAEP,MAAO,MAAMI,CAAAA,gBAA2C,CAAGC,CAAK,EAAI,MAC5D,CAAEC,SAAS,CAATA,CAAF,CAAaC,KAAK,CAALA,CAAb,CAAoBC,IAAI,CAAJA,CAApB,CAA0BC,MAAM,CAANA,CAA1B,CAAkCC,MAAM,CAANA,CAAlC,CAA0CC,OAAO,CAAPA,CAA1C,CAAmDC,WAAW,CAAXA,CAAnD,EAAkFP,CADtB,CACOQ,CADP,0BACsBR,CADtB,yEAG5DS,CAAS,CAAGN,CAAI,CACjB,CACCO,EAAE,CAAE,GADL,CAECP,IAAI,CAAJA,CAFD,CAGCC,MAAM,CAANA,CAHD,CADiB,CAMjB,CACCM,EAAE,CAAE,MADL,CAT6D,CAalE,MACE,qBAAC,IAAD,kBACMF,CADN,CAEMC,CAFN,EAGE,SAAS,CAAEX,kBAAkB,CAAC,CAAEO,MAAM,CAANA,CAAF,CAAD,CAAa,CAACJ,CAAD,CAAb,CAH/B,CAIE,OAAO,CAAEK,CAJX,GAMGJ,CANH,CAOGK,CAAW,EAAI,KAAC,cAAD,EAAgB,SAAS,CAAET,kBAAkB,CAAC,MAAD,CAA7C,CAAuD,IAAI,CAAC,IAA5D,EAPlB,CAUH,CAxBM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { VerticalMenuItemComponent } from '../types'\nimport { IconArrowRight } from '@consta/uikit/IconArrowRight'\nimport './VerticalMenuItem.css'\nimport { Text } from '@consta/uikit/Text'\n\nexport const cnVerticalMenuItem = cn('VerticalMenuItem')\n\nexport const VerticalMenuItem: VerticalMenuItemComponent = props => {\n const { className, label, href, target, active, onClick, withSubMenu, ...otherProps } = props\n\n const propsLink = href\n ? ({\n as: 'a',\n href,\n target,\n } as const)\n : ({\n as: 'span',\n } as const)\n\n return (\n <Text\n {...otherProps}\n {...propsLink}\n className={cnVerticalMenuItem({ active }, [className])}\n onClick={onClick}\n >\n {label}\n {withSubMenu && <IconArrowRight className={cnVerticalMenuItem('Icon')} size=\"xs\" />}\n </Text>\n )\n}\n"],"file":"VerticalMenuItem.js"}
@@ -1 +1 @@
1
- .che--VerticalMenuLevel-Header{display:flex;align-items:center;flex:none;border-bottom:1px solid var(--color-bg-border)}
1
+ .che--VerticalMenuLevel{display:flex;flex-direction:column}.che--VerticalMenuLevel-Label{display:flex;align-items:center;flex:none;border-bottom:1px solid var(--color-bg-border)}.che--VerticalMenuLevel-Divider{height:var(--control-border-width);background:var(--color-control-bg-border-default)}.che--VerticalMenuLevel-Nav{flex:1}.che--VerticalMenuLevel-Footer{flex:none}
@@ -1,2 +1,2 @@
1
- import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React from"react";import{cn}from"../../__private__/utils/bem";import"./VerticalMenuLevel.css";import{VerticalMenuItem}from"../VerticalMenuItem/VerticalMenuItem";import{Text}from"@consta/uikit/Text";import{IconArrowLeft}from"@consta/uikit/IconArrowLeft";import{Button}from"@consta/uikit/Button";import{cnMixSpace}from"@consta/uikit/MixSpace";import"./VerticalMenuLevel.css";export const cnVerticalMenuLevel=cn("VerticalMenuLevel");export const VerticalMenuLevel=a=>{const{items:b,className:c,getItemActive:d,getItemHref:e,getItemLabel:f,getItemOnClick:g,getItemTarget:h,getItemSubMenu:i,addLevel:j,removeLevel:k,label:l,header:m}=a,n=_objectWithoutProperties(a,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","addLevel","removeLevel","label","header"]);return React.createElement("div",Object.assign({},n,{className:cnVerticalMenuLevel(null,[c])}),l&&_jsx("div",{className:cnVerticalMenuLevel("Header",[cnMixSpace({p:"s",pL:"xl"})])},void 0,_jsx(Button,{iconLeft:IconArrowLeft,view:"clear",size:"s",onClick:k}),_jsx(Text,{className:cnMixSpace({mL:"s"}),truncate:!0},void 0,l)),m,_jsx("nav",{className:cnVerticalMenuLevel("Nav")},void 0,b.map((a,b)=>{const c=i(a),k=c&&0<c.length||!1,l=g(a),m=f(a),n=k?a=>{null===l||void 0===l?void 0:l(a),c&&j({items:c,label:m})}:l;return _jsx(VerticalMenuItem,{label:m,href:e(a),active:d(a),onClick:n,target:h(a),withSubMenu:k},b)})))};
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef}from"react";import{cn}from"../../__private__/utils/bem";import"./VerticalMenuLevel.css";import{VerticalMenuItem}from"../VerticalMenuItem/VerticalMenuItem";import{Text}from"@consta/uikit/Text";import{IconArrowLeft}from"@consta/uikit/IconArrowLeft";import{Button}from"@consta/uikit/Button";import{cnMixSpace}from"@consta/uikit/MixSpace";import{getGroups}from"@consta/uikit/__internal__/src/utils/getGroups";import{fabricIndex}from"@consta/uikit/__internal__/src/utils/fabricIndex";import"./VerticalMenuLevel.css";export const cnVerticalMenuLevel=cn("VerticalMenuLevel");export const VerticalMenuLevel=forwardRef((a,b)=>{const{items:c,className:d,getItemActive:e,getItemHref:f,getItemLabel:g,getItemOnClick:h,getItemTarget:i,getItemSubMenu:j,addLevel:k,removeLevel:l,label:m,header:n,getItemGroup:o,id:p,footer:q}=a,r=_objectWithoutProperties(a,["items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","addLevel","removeLevel","label","header","getItemGroup","id","footer"]),s=getGroups(c,o,void 0,void 0,void 0),t=fabricIndex(-1);return React.createElement("div",Object.assign({},r,{ref:b,className:cnVerticalMenuLevel(null,[d])}),m&&_jsx("div",{className:cnVerticalMenuLevel("Label",[cnMixSpace({pV:"s",pH:"xl"})])},void 0,_jsx(Button,{iconLeft:IconArrowLeft,view:"clear",size:"s",onClick:l}),_jsx(Text,{className:cnMixSpace({mL:"s"}),truncate:!0},void 0,m)),n&&_jsx("div",{className:cnVerticalMenuLevel("Header")},void 0,n),_jsx("nav",{className:cnVerticalMenuLevel("Nav")},void 0,s.map((a,b)=>React.createElement(React.Fragment,null,b?_jsx("div",{className:cnVerticalMenuLevel("Divider",[cnMixSpace({mV:"s",mH:"xl"})])}):void 0,a.items.map((a,c)=>{const d=t(),l=j(a),m=l&&0<l.length||!1,n=h(a),o=g(a),q=m?a=>{null===n||void 0===n?void 0:n(a),l&&k({items:l,label:o,id:`${p}-${d}`})}:n;return _jsx(VerticalMenuItem,{label:o,href:f(a),active:e(a),onClick:q,target:i(a),withSubMenu:m,className:cnMixSpace({pV:"s",pH:"xl"})},cnVerticalMenuLevel("Item",{groupIndex:b,index:c}))})))),q&&_jsx("div",{className:cnVerticalMenuLevel("Footer")},void 0,_jsx("div",{className:cnVerticalMenuLevel("Divider",[cnMixSpace({mV:"s",mH:"xl"})])}),q))});
2
2
  //# sourceMappingURL=VerticalMenuLevel.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.tsx"],"names":["React","cn","VerticalMenuItem","Text","IconArrowLeft","Button","cnMixSpace","cnVerticalMenuLevel","VerticalMenuLevel","props","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","addLevel","removeLevel","label","levelLabel","header","otherProps","p","pL","mL","map","item","index","subMenu","withSubMenu","length","itemClick","onClick","e"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAGA,gCACA,OAASC,gBAAT,4CACA,OAASC,IAAT,KAAqB,oBAArB,CACA,OAASC,aAAT,KAA8B,6BAA9B,CACA,OAASC,MAAT,KAAuB,sBAAvB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,gCAEA,MAAO,MAAMC,CAAAA,mBAAmB,CAAGN,EAAE,CAAC,mBAAD,CAA9B,CAEP,MAAO,MAAMO,CAAAA,iBAA6C,CAAGC,CAAK,EAAI,CACpE,KAAM,CACJC,KAAK,CAALA,CADI,CAEJC,SAAS,CAATA,CAFI,CAGJC,aAAa,CAAbA,CAHI,CAIJC,WAAW,CAAXA,CAJI,CAKJC,YAAY,CAAZA,CALI,CAMJC,cAAc,CAAdA,CANI,CAOJC,aAAa,CAAbA,CAPI,CAQJC,cAAc,CAAdA,CARI,CASJC,QAAQ,CAARA,CATI,CAUJC,WAAW,CAAXA,CAVI,CAWJC,KAAK,CAAEC,CAXH,CAYJC,MAAM,CAANA,CAZI,EAcFb,CAdJ,CAaKc,CAbL,0BAcId,CAdJ,iKAgBA,MACE,4CAASc,CAAT,EAAqB,SAAS,CAAEhB,mBAAmB,CAAC,IAAD,CAAO,CAACI,CAAD,CAAP,CAAnD,GACGU,CAAU,EACT,YAAK,SAAS,CAAEd,mBAAmB,CAAC,QAAD,CAAW,CAACD,UAAU,CAAC,CAAEkB,CAAC,CAAE,GAAL,CAAUC,EAAE,CAAE,IAAd,CAAD,CAAX,CAAX,CAAnC,SACE,KAAC,MAAD,EAAQ,QAAQ,CAAErB,aAAlB,CAAiC,IAAI,CAAC,OAAtC,CAA8C,IAAI,CAAC,GAAnD,CAAuD,OAAO,CAAEe,CAAhE,EADF,CAEE,KAAC,IAAD,EAAM,SAAS,CAAEb,UAAU,CAAC,CAAEoB,EAAE,CAAE,GAAN,CAAD,CAA3B,CAA0C,QAAQ,GAAlD,SACGL,CADH,CAFF,CAFJ,CASGC,CATH,CAUE,YAAK,SAAS,CAAEf,mBAAmB,CAAC,KAAD,CAAnC,SACGG,CAAK,CAACiB,GAAN,CAAU,CAACC,CAAD,CAAOC,CAAP,GAAiB,MACpBC,CAAAA,CAAO,CAAGb,CAAc,CAACW,CAAD,CADJ,CAEpBG,CAAW,CAAID,CAAO,EAAqB,CAAjB,CAAAA,CAAO,CAACE,MAApB,IAFM,CAGpBC,CAAS,CAAGlB,CAAc,CAACa,CAAD,CAHN,CAIpBR,CAAK,CAAGN,CAAY,CAACc,CAAD,CAJA,CAKpBM,CAAO,CAAGH,CAAW,CACtBI,CAAD,EAA8C,QAC5CF,CAD4C,WAC5CA,CAD4C,QAC5CA,CAAS,CAAGE,CAAH,CADmC,CAE5CL,CAAO,EAAIZ,CAAQ,CAAC,CAAER,KAAK,CAAEoB,CAAT,CAAkBV,KAAK,CAALA,CAAlB,CAAD,CACpB,CAJsB,CAKvBa,CAVsB,CAW1B,MACE,MAAC,gBAAD,EAEE,KAAK,CAAEb,CAFT,CAGE,IAAI,CAAEP,CAAW,CAACe,CAAD,CAHnB,CAIE,MAAM,CAAEhB,CAAa,CAACgB,CAAD,CAJvB,CAKE,OAAO,CAAEM,CALX,CAME,MAAM,CAAElB,CAAa,CAACY,CAAD,CANvB,CAOE,WAAW,CAAEG,CAPf,EACOF,CADP,CAUH,CAtBA,CADH,CAVF,CAqCH,CAvDM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { VerticalMenuLevelComponent } from '../types'\nimport './VerticalMenuLevel.css'\nimport { VerticalMenuItem } from '../VerticalMenuItem/VerticalMenuItem'\nimport { Text } from '@consta/uikit/Text'\nimport { IconArrowLeft } from '@consta/uikit/IconArrowLeft'\nimport { Button } from '@consta/uikit/Button'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\n\nimport './VerticalMenuLevel.css'\n\nexport const cnVerticalMenuLevel = cn('VerticalMenuLevel')\n\nexport const VerticalMenuLevel: VerticalMenuLevelComponent = props => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n addLevel,\n removeLevel,\n label: levelLabel,\n header,\n ...otherProps\n } = props\n\n return (\n <div {...otherProps} className={cnVerticalMenuLevel(null, [className])}>\n {levelLabel && (\n <div className={cnVerticalMenuLevel('Header', [cnMixSpace({ p: 's', pL: 'xl' })])}>\n <Button iconLeft={IconArrowLeft} view=\"clear\" size=\"s\" onClick={removeLevel} />\n <Text className={cnMixSpace({ mL: 's' })} truncate>\n {levelLabel}\n </Text>\n </div>\n )}\n {header}\n <nav className={cnVerticalMenuLevel('Nav')}>\n {items.map((item, index) => {\n const subMenu = getItemSubMenu(item)\n const withSubMenu = (subMenu && subMenu.length > 0) || false\n const itemClick = getItemOnClick(item)\n const label = getItemLabel(item)\n const onClick = withSubMenu\n ? (e: React.MouseEvent<Element, MouseEvent>) => {\n itemClick?.(e)\n subMenu && addLevel({ items: subMenu, label })\n }\n : itemClick\n return (\n <VerticalMenuItem\n key={index}\n label={label}\n href={getItemHref(item)}\n active={getItemActive(item)}\n onClick={onClick}\n target={getItemTarget(item)}\n withSubMenu={withSubMenu}\n />\n )\n })}\n </nav>\n </div>\n )\n}\n"],"file":"VerticalMenuLevel.js"}
1
+ {"version":3,"sources":["../../../src/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.tsx"],"names":["React","forwardRef","cn","VerticalMenuItem","Text","IconArrowLeft","Button","cnMixSpace","getGroups","fabricIndex","cnVerticalMenuLevel","VerticalMenuLevel","props","ref","items","className","getItemActive","getItemHref","getItemLabel","getItemOnClick","getItemTarget","getItemSubMenu","addLevel","removeLevel","label","levelLabel","header","getItemGroup","id","footer","otherProps","groups","getIndex","pV","pH","mL","map","group","groupIndex","mV","mH","item","index","levelId","subMenu","withSubMenu","length","itemClick","onClick","e"],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { VerticalMenuLevelComponent } from '../types'\nimport './VerticalMenuLevel.css'\nimport { VerticalMenuItem } from '../VerticalMenuItem/VerticalMenuItem'\nimport { Text } from '@consta/uikit/Text'\nimport { IconArrowLeft } from '@consta/uikit/IconArrowLeft'\nimport { Button } from '@consta/uikit/Button'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\nimport { getGroups } from '@consta/uikit/__internal__/src/utils/getGroups'\nimport { fabricIndex } from '@consta/uikit/__internal__/src/utils/fabricIndex'\n\nimport './VerticalMenuLevel.css'\n\nexport const cnVerticalMenuLevel = cn('VerticalMenuLevel')\n\nexport const VerticalMenuLevel: VerticalMenuLevelComponent = forwardRef((props, ref) => {\n const {\n items,\n className,\n getItemActive,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n getItemSubMenu,\n addLevel,\n removeLevel,\n label: levelLabel,\n header,\n getItemGroup,\n id,\n footer,\n ...otherProps\n } = props\n\n const groups = getGroups(items, getItemGroup, undefined, undefined, undefined)\n const getIndex = fabricIndex(-1)\n\n return (\n <div {...otherProps} ref={ref} className={cnVerticalMenuLevel(null, [className])}>\n {levelLabel && (\n <div className={cnVerticalMenuLevel('Label', [cnMixSpace({ pV: 's', pH: 'xl' })])}>\n <Button iconLeft={IconArrowLeft} view=\"clear\" size=\"s\" onClick={removeLevel} />\n <Text className={cnMixSpace({ mL: 's' })} truncate>\n {levelLabel}\n </Text>\n </div>\n )}\n {header && <div className={cnVerticalMenuLevel('Header')}>{header}</div>}\n <nav className={cnVerticalMenuLevel('Nav')}>\n {groups.map((group, groupIndex) => {\n return (\n <>\n {groupIndex ? (\n <div\n className={cnVerticalMenuLevel('Divider', [cnMixSpace({ mV: 's', mH: 'xl' })])}\n />\n ) : (\n undefined\n )}\n {group.items.map((item, index) => {\n const levelId = getIndex()\n const subMenu = getItemSubMenu(item)\n const withSubMenu = (subMenu && subMenu.length > 0) || false\n const itemClick = getItemOnClick(item)\n const label = getItemLabel(item)\n const onClick = withSubMenu\n ? (e: React.MouseEvent<Element, MouseEvent>) => {\n itemClick?.(e)\n subMenu && addLevel({ items: subMenu, label, id: `${id}-${levelId}` })\n }\n : itemClick\n return (\n <VerticalMenuItem\n key={cnVerticalMenuLevel('Item', { groupIndex, index })}\n label={label}\n href={getItemHref(item)}\n active={getItemActive(item)}\n onClick={onClick}\n target={getItemTarget(item)}\n withSubMenu={withSubMenu}\n className={cnMixSpace({ pV: 's', pH: 'xl' })}\n />\n )\n })}\n </>\n )\n })}\n </nav>\n {footer && (\n <div className={cnVerticalMenuLevel('Footer')}>\n <div className={cnVerticalMenuLevel('Divider', [cnMixSpace({ mV: 's', mH: 'xl' })])} />\n {footer}\n </div>\n )}\n </div>\n )\n})\n"],"file":"VerticalMenuLevel.js"}
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
- import { DefaultItem, VerticalMenuProps, VerticalMenuPropGetItemActive, VerticalMenuPropGetItemHref, VerticalMenuPropGetItemLabel, VerticalMenuPropGetItemOnClick, VerticalMenuPropGetItemSubMenu, VerticalMenuPropGetItemTarget, VerticalMenuPropOnItemClick } from "./types";
2
+ import { DefaultItem, VerticalMenuProps, VerticalMenuPropGetItemActive, VerticalMenuPropGetItemHref, VerticalMenuPropGetItemLabel, VerticalMenuPropGetItemOnClick, VerticalMenuPropGetItemSubMenu, VerticalMenuPropGetItemTarget, VerticalMenuPropGetItemGroup } from "./types";
3
3
  export declare const defaultGetItemLabel: VerticalMenuPropGetItemLabel<DefaultItem>;
4
4
  export declare const defaultGetItemActive: VerticalMenuPropGetItemActive<DefaultItem>;
5
5
  export declare const defaultGetItemHref: VerticalMenuPropGetItemHref<DefaultItem>;
6
6
  export declare const defaultGetItemOnClick: VerticalMenuPropGetItemOnClick<DefaultItem>;
7
7
  export declare const defaultGetItemTarget: VerticalMenuPropGetItemTarget<DefaultItem>;
8
8
  export declare const defaultGetItemSubMenu: VerticalMenuPropGetItemSubMenu<DefaultItem>;
9
+ export declare const defaultGetItemGroup: VerticalMenuPropGetItemGroup<DefaultItem>;
9
10
  export declare function withDefaultGetters<ITEM>(props: VerticalMenuProps<ITEM>): {
10
11
  items: ITEM[];
11
12
  getItemHref?: VerticalMenuPropGetItemHref<ITEM> | undefined;
@@ -14,8 +15,10 @@ export declare function withDefaultGetters<ITEM>(props: VerticalMenuProps<ITEM>)
14
15
  getItemActive?: VerticalMenuPropGetItemActive<ITEM> | undefined;
15
16
  getItemOnClick?: VerticalMenuPropGetItemOnClick<ITEM> | undefined;
16
17
  getItemSubMenu?: VerticalMenuPropGetItemSubMenu<ITEM> | undefined;
17
- onItemClick?: VerticalMenuPropOnItemClick<ITEM> | undefined;
18
+ onItemClick?: import("./types").VerticalMenuPropOnItemClick<ITEM> | undefined;
19
+ getItemGroup?: VerticalMenuPropGetItemGroup<ITEM> | undefined;
18
20
  header?: import("react").ReactNode;
21
+ footer?: import("react").ReactNode;
19
22
  } & Pick<import("react").HTMLAttributes<HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & (ITEM extends {
20
23
  label: string;
21
24
  } ? {} : {
@@ -27,5 +30,5 @@ export declare function withDefaultGetters<ITEM>(props: VerticalMenuProps<ITEM>)
27
30
  getItemOnClick: VerticalMenuPropGetItemOnClick<DefaultItem> | VerticalMenuPropGetItemOnClick<ITEM>;
28
31
  getItemTarget: VerticalMenuPropGetItemTarget<DefaultItem> | VerticalMenuPropGetItemTarget<ITEM>;
29
32
  getItemSubMenu: VerticalMenuPropGetItemSubMenu<DefaultItem> | VerticalMenuPropGetItemSubMenu<ITEM>;
33
+ getItemGroup: VerticalMenuPropGetItemGroup<DefaultItem> | VerticalMenuPropGetItemGroup<ITEM>;
30
34
  };
31
- export declare function getItemClick<ITEM>(item: ITEM, getItemOnClick: VerticalMenuPropGetItemOnClick<ITEM>, onItemClick?: VerticalMenuPropOnItemClick<ITEM>): React.MouseEventHandler;
@@ -1,2 +1,2 @@
1
- import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemLabel=a=>a.label;export const defaultGetItemActive=a=>a.active;export const defaultGetItemHref=a=>a.href;export const defaultGetItemOnClick=a=>a.onClick;export const defaultGetItemTarget=a=>a.target;export const defaultGetItemSubMenu=a=>a.subMenu;export function withDefaultGetters(a){return _objectSpread({},a,{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemActive:a.getItemActive||defaultGetItemActive,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemTarget:a.getItemTarget||defaultGetItemTarget,getItemSubMenu:a.getItemSubMenu||defaultGetItemSubMenu})}export function getItemClick(a,b,c){return d=>{var e;null===c||void 0===c?void 0:c({e:d,item:a}),null===(e=b(a))||void 0===e?void 0:e(d)}}
1
+ import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemLabel=a=>a.label;export const defaultGetItemActive=a=>a.active;export const defaultGetItemHref=a=>a.href;export const defaultGetItemOnClick=a=>a.onClick;export const defaultGetItemTarget=a=>a.target;export const defaultGetItemSubMenu=a=>a.subMenu;export const defaultGetItemGroup=a=>a.groupId;export function withDefaultGetters(a){return _objectSpread({},a,{getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemActive:a.getItemActive||defaultGetItemActive,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemTarget:a.getItemTarget||defaultGetItemTarget,getItemSubMenu:a.getItemSubMenu||defaultGetItemSubMenu,getItemGroup:a.getItemGroup||defaultGetItemGroup})}
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/VerticalMenu/helpers.ts"],"names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","withDefaultGetters","props","getItemLabel","getItemActive","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","getItemClick","onItemClick","e"],"mappings":"+DAYA,MAAO,MAAMA,CAAAA,mBAA8D,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAApF,CACP,MAAO,MAAMC,CAAAA,oBAAgE,CAAGF,CAAI,EAAIA,CAAI,CAACG,MAAtF,CACP,MAAO,MAAMC,CAAAA,kBAA4D,CAAGJ,CAAI,EAAIA,CAAI,CAACK,IAAlF,CACP,MAAO,MAAMC,CAAAA,qBAAkE,CAAGN,CAAI,EACpFA,CAAI,CAACO,OADA,CAEP,MAAO,MAAMC,CAAAA,oBAAgE,CAAGR,CAAI,EAAIA,CAAI,CAACS,MAAtF,CACP,MAAO,MAAMC,CAAAA,qBAAkE,CAAGV,CAAI,EACpFA,CAAI,CAACW,OADA,CAGP,MAAO,SAASC,CAAAA,kBAAT,CAAkCC,CAAlC,CAAkE,CACvE,wBACKA,CADL,EAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBf,mBAFtC,CAGEgB,aAAa,CAAEF,CAAK,CAACE,aAAN,EAAuBb,oBAHxC,CAIEc,WAAW,CAAEH,CAAK,CAACG,WAAN,EAAqBZ,kBAJpC,CAKEa,cAAc,CAAEJ,CAAK,CAACI,cAAN,EAAwBX,qBAL1C,CAMEY,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBV,oBANxC,CAOEW,cAAc,CAAEN,CAAK,CAACM,cAAN,EAAwBT,qBAP1C,EASD,CAED,MAAO,SAASU,CAAAA,YAAT,CACLpB,CADK,CAELiB,CAFK,CAGLI,CAHK,CAIoB,CACzB,MAAOC,CAAAA,CAAC,EAAI,cACVD,CADU,WACVA,CADU,QACVA,CAAW,CAAG,CAAEC,CAAC,CAADA,CAAF,CAAKtB,IAAI,CAAJA,CAAL,CAAH,CADD,WAEViB,CAAc,CAACjB,CAAD,CAFJ,qBAEV,EAAuBsB,CAAvB,CACD,CACF","sourcesContent":["import {\n DefaultItem,\n VerticalMenuProps,\n VerticalMenuPropGetItemActive,\n VerticalMenuPropGetItemHref,\n VerticalMenuPropGetItemLabel,\n VerticalMenuPropGetItemOnClick,\n VerticalMenuPropGetItemSubMenu,\n VerticalMenuPropGetItemTarget,\n VerticalMenuPropOnItemClick,\n} from './types'\n\nexport const defaultGetItemLabel: VerticalMenuPropGetItemLabel<DefaultItem> = item => item.label\nexport const defaultGetItemActive: VerticalMenuPropGetItemActive<DefaultItem> = item => item.active\nexport const defaultGetItemHref: VerticalMenuPropGetItemHref<DefaultItem> = item => item.href\nexport const defaultGetItemOnClick: VerticalMenuPropGetItemOnClick<DefaultItem> = item =>\n item.onClick\nexport const defaultGetItemTarget: VerticalMenuPropGetItemTarget<DefaultItem> = item => item.target\nexport const defaultGetItemSubMenu: VerticalMenuPropGetItemSubMenu<DefaultItem> = item =>\n item.subMenu\n\nexport function withDefaultGetters<ITEM>(props: VerticalMenuProps<ITEM>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemActive: props.getItemActive || defaultGetItemActive,\n getItemHref: props.getItemHref || defaultGetItemHref,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getItemTarget: props.getItemTarget || defaultGetItemTarget,\n getItemSubMenu: props.getItemSubMenu || defaultGetItemSubMenu,\n }\n}\n\nexport function getItemClick<ITEM>(\n item: ITEM,\n getItemOnClick: VerticalMenuPropGetItemOnClick<ITEM>,\n onItemClick?: VerticalMenuPropOnItemClick<ITEM>\n): React.MouseEventHandler {\n return e => {\n onItemClick?.({ e, item })\n getItemOnClick(item)?.(e)\n }\n}\n"],"file":"helpers.js"}
1
+ {"version":3,"sources":["../../src/VerticalMenu/helpers.ts"],"names":["defaultGetItemLabel","item","label","defaultGetItemActive","active","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","defaultGetItemGroup","groupId","withDefaultGetters","props","getItemLabel","getItemActive","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","getItemGroup"],"mappings":"+DAYA,MAAO,MAAMA,CAAAA,mBAA8D,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAApF,CACP,MAAO,MAAMC,CAAAA,oBAAgE,CAAGF,CAAI,EAAIA,CAAI,CAACG,MAAtF,CACP,MAAO,MAAMC,CAAAA,kBAA4D,CAAGJ,CAAI,EAAIA,CAAI,CAACK,IAAlF,CACP,MAAO,MAAMC,CAAAA,qBAAkE,CAAGN,CAAI,EACpFA,CAAI,CAACO,OADA,CAEP,MAAO,MAAMC,CAAAA,oBAAgE,CAAGR,CAAI,EAAIA,CAAI,CAACS,MAAtF,CACP,MAAO,MAAMC,CAAAA,qBAAkE,CAAGV,CAAI,EACpFA,CAAI,CAACW,OADA,CAEP,MAAO,MAAMC,CAAAA,mBAA8D,CAAGZ,CAAI,EAAIA,CAAI,CAACa,OAApF,CAEP,MAAO,SAASC,CAAAA,kBAAT,CAAkCC,CAAlC,CAAkE,CACvE,wBACKA,CADL,EAEEC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBjB,mBAFtC,CAGEkB,aAAa,CAAEF,CAAK,CAACE,aAAN,EAAuBf,oBAHxC,CAIEgB,WAAW,CAAEH,CAAK,CAACG,WAAN,EAAqBd,kBAJpC,CAKEe,cAAc,CAAEJ,CAAK,CAACI,cAAN,EAAwBb,qBAL1C,CAMEc,aAAa,CAAEL,CAAK,CAACK,aAAN,EAAuBZ,oBANxC,CAOEa,cAAc,CAAEN,CAAK,CAACM,cAAN,EAAwBX,qBAP1C,CAQEY,YAAY,CAAEP,CAAK,CAACO,YAAN,EAAsBV,mBARtC,EAUD","sourcesContent":["import {\n DefaultItem,\n VerticalMenuProps,\n VerticalMenuPropGetItemActive,\n VerticalMenuPropGetItemHref,\n VerticalMenuPropGetItemLabel,\n VerticalMenuPropGetItemOnClick,\n VerticalMenuPropGetItemSubMenu,\n VerticalMenuPropGetItemTarget,\n VerticalMenuPropGetItemGroup,\n} from './types'\n\nexport const defaultGetItemLabel: VerticalMenuPropGetItemLabel<DefaultItem> = item => item.label\nexport const defaultGetItemActive: VerticalMenuPropGetItemActive<DefaultItem> = item => item.active\nexport const defaultGetItemHref: VerticalMenuPropGetItemHref<DefaultItem> = item => item.href\nexport const defaultGetItemOnClick: VerticalMenuPropGetItemOnClick<DefaultItem> = item =>\n item.onClick\nexport const defaultGetItemTarget: VerticalMenuPropGetItemTarget<DefaultItem> = item => item.target\nexport const defaultGetItemSubMenu: VerticalMenuPropGetItemSubMenu<DefaultItem> = item =>\n item.subMenu\nexport const defaultGetItemGroup: VerticalMenuPropGetItemGroup<DefaultItem> = item => item.groupId\n\nexport function withDefaultGetters<ITEM>(props: VerticalMenuProps<ITEM>) {\n return {\n ...props,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemActive: props.getItemActive || defaultGetItemActive,\n getItemHref: props.getItemHref || defaultGetItemHref,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n getItemTarget: props.getItemTarget || defaultGetItemTarget,\n getItemSubMenu: props.getItemSubMenu || defaultGetItemSubMenu,\n getItemGroup: props.getItemGroup || defaultGetItemGroup,\n }\n}\n"],"file":"helpers.js"}
@@ -7,6 +7,7 @@ export declare type DefaultItem = {
7
7
  active?: boolean;
8
8
  onClick?: React.EventHandler<React.MouseEvent>;
9
9
  subMenu?: DefaultItem[];
10
+ groupId?: string;
10
11
  };
11
12
  export declare type VerticalMenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
12
13
  export declare type VerticalMenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;
@@ -18,6 +19,7 @@ export declare type VerticalMenuPropOnItemClick<ITEM> = (props: {
18
19
  e: React.MouseEvent;
19
20
  item: ITEM;
20
21
  }) => void;
22
+ export declare type VerticalMenuPropGetItemGroup<ITEM> = (item: ITEM) => string | number | undefined;
21
23
  export declare type VerticalMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributes<{
22
24
  items: ITEM[];
23
25
  getItemHref?: VerticalMenuPropGetItemHref<ITEM>;
@@ -27,7 +29,9 @@ export declare type VerticalMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttribu
27
29
  getItemOnClick?: VerticalMenuPropGetItemOnClick<ITEM>;
28
30
  getItemSubMenu?: VerticalMenuPropGetItemSubMenu<ITEM>;
29
31
  onItemClick?: VerticalMenuPropOnItemClick<ITEM>;
32
+ getItemGroup?: VerticalMenuPropGetItemGroup<ITEM>;
30
33
  header?: React.ReactNode;
34
+ footer?: React.ReactNode;
31
35
  }, HTMLDivElement> & (ITEM extends {
32
36
  label: DefaultItem['label'];
33
37
  } ? {} : {
@@ -36,9 +40,11 @@ export declare type VerticalMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttribu
36
40
  export declare type VerticalMenuComponent = <ITEM = DefaultItem>(props: VerticalMenuProps<ITEM>) => React.ReactElement | null;
37
41
  export declare type Level<ITEM> = {
38
42
  items: ITEM[];
43
+ id: string;
39
44
  label?: string;
40
45
  };
41
46
  export declare type VerticalMenuLevelProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<{
47
+ id: string;
42
48
  items: ITEM[];
43
49
  getItemHref: VerticalMenuPropGetItemHref<ITEM>;
44
50
  getItemLabel: VerticalMenuPropGetItemLabel<ITEM>;
@@ -46,10 +52,12 @@ export declare type VerticalMenuLevelProps<ITEM = DefaultItem> = PropsWithHTMLAt
46
52
  getItemActive: VerticalMenuPropGetItemActive<ITEM>;
47
53
  getItemOnClick: VerticalMenuPropGetItemOnClick<ITEM>;
48
54
  getItemSubMenu: VerticalMenuPropGetItemSubMenu<ITEM>;
55
+ getItemGroup: VerticalMenuPropGetItemGroup<ITEM>;
49
56
  addLevel: (level: Level<ITEM>) => void;
50
57
  removeLevel: () => void;
51
58
  label?: string;
52
59
  header?: React.ReactNode;
60
+ footer?: React.ReactNode;
53
61
  }, HTMLDivElement>;
54
62
  export declare type VerticalMenuLevelComponent = <ITEM = DefaultItem>(props: VerticalMenuLevelProps<ITEM>) => React.ReactElement | null;
55
63
  export declare type VerticalMenuItemProps = PropsWithHTMLAttributes<{
@@ -1 +1 @@
1
- .che--AnimatedContextMenu_exit{pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;transform:translateY(var(--space-s))}
1
+ .che--AnimatedContextMenu_exit.ContextMenuLevel{pointer-events:none;opacity:0!important;transition:opacity .2s,transform .2s!important;transform:var(--mix-dropdown-animate-transform)!important}
@@ -1,2 +1,2 @@
1
- import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React from"react";import{useFlag}from"@consta/uikit/useFlag";import{CSSTransition}from"react-transition-group";import{cnMixPopoverAnimateForCssTransition,animateTimeout}from"../mixs/MixPopoverAnimate/MixPopoverAnimate";import{cn}from"../utils/bem";import{ContextMenu}from"@consta/uikit/ContextMenu";import"./AnimatedContextMenu.css";export const cnAnimatedContextMenu=cn("AnimatedContextMenu");export const AnimatedContextMenu=a=>{const{isOpen:b,className:c}=a,d=_objectWithoutProperties(a,["isOpen","className"]),[e,f]=useFlag();return _jsx(CSSTransition,{in:b,classNames:cnMixPopoverAnimateForCssTransition,unmountOnExit:!0,timeout:animateTimeout,onEnter:f.off,onExit:f.on},void 0,React.createElement(ContextMenu,Object.assign({},d,{className:cnAnimatedContextMenu({exit:e},[c])})))};
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{useState}from"react";import{useFlag}from"@consta/uikit/useFlag";import{Transition}from"react-transition-group";import{cnMixPopoverAnimate,animateTimeout}from"@consta/uikit/MixPopoverAnimate";import{cn}from"../utils/bem";import{ContextMenu}from"@consta/uikit/ContextMenu";import"./AnimatedContextMenu.css";export const cnAnimatedContextMenu=cn("AnimatedContextMenu");export const AnimatedContextMenu=a=>{const{isOpen:b,className:c,onSetDirection:e}=a,f=_objectWithoutProperties(a,["isOpen","className","onSetDirection"]),[g,h]=useFlag(),[i,j]=useState();return _jsx(Transition,{in:b,unmountOnExit:!0,timeout:animateTimeout,onEnter:h.off,onExit:h.on},void 0,a=>React.createElement(ContextMenu,Object.assign({},f,{className:cnAnimatedContextMenu({exit:g},[c,cnMixPopoverAnimate({animate:a,direction:i})]),onSetDirection:a=>{j(a),null===e||void 0===e?void 0:e(a)}})))};
2
2
  //# sourceMappingURL=AnimatedContextMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__private__/AnimatedContextMenu/AnimatedContextMenu.tsx"],"names":["React","useFlag","CSSTransition","cnMixPopoverAnimateForCssTransition","animateTimeout","cn","ContextMenu","cnAnimatedContextMenu","AnimatedContextMenu","props","isOpen","className","otherProps","exitAnimation","setExitAnimation","off","on","exit"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CACA,OAASC,OAAT,KAAwB,uBAAxB,CACA,OAASC,aAAT,KAA8B,wBAA9B,CACA,OACEC,mCADF,CAEEC,cAFF,mDAIA,OAASC,EAAT,oBACA,OAASC,WAAT,KAA4B,2BAA5B,CAGA,kCAMA,MAAO,MAAMC,CAAAA,qBAAqB,CAAGF,EAAE,CAAC,qBAAD,CAAhC,CAEP,MAAO,MAAMG,CAAAA,mBAAiD,CAAGC,CAAK,EAAI,MAClE,CAAEC,MAAM,CAANA,CAAF,CAAUC,SAAS,CAATA,CAAV,EAAuCF,CAD2B,CAC1CG,CAD0C,0BAC3BH,CAD2B,yBAElE,CAACI,CAAD,CAAgBC,CAAhB,EAAoCb,OAAO,EAFuB,CAIxE,MACE,MAAC,aAAD,EACE,EAAE,CAAES,CADN,CAEE,UAAU,CAAEP,mCAFd,CAGE,aAAa,GAHf,CAIE,OAAO,CAAEC,cAJX,CAKE,OAAO,CAAEU,CAAgB,CAACC,GAL5B,CAME,MAAM,CAAED,CAAgB,CAACE,EAN3B,SAQE,oBAAC,WAAD,kBACMJ,CADN,EAEE,SAAS,CAAEL,qBAAqB,CAAC,CAAEU,IAAI,CAAEJ,CAAR,CAAD,CAA0B,CAACF,CAAD,CAA1B,CAFlC,GARF,CAcH,CAnBM","sourcesContent":["import React from 'react'\nimport { useFlag } from '@consta/uikit/useFlag'\nimport { CSSTransition } from 'react-transition-group'\nimport {\n cnMixPopoverAnimateForCssTransition,\n animateTimeout,\n} from '@/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate'\nimport { cn } from '@/__private__/utils/bem'\nimport { ContextMenu } from '@consta/uikit/ContextMenu'\nimport { ContextMenuProps } from '@consta/uikit/__internal__/src/components/ContextMenu/helpers'\n\nimport './AnimatedContextMenu.css'\n\nexport type AnimatedContextMenuComponent = <ITEM>(\n props: ContextMenuProps<ITEM> & { isOpen?: boolean }\n) => React.ReactElement | null\n\nexport const cnAnimatedContextMenu = cn('AnimatedContextMenu')\n\nexport const AnimatedContextMenu: AnimatedContextMenuComponent = props => {\n const { isOpen, className, ...otherProps } = props\n const [exitAnimation, setExitAnimation] = useFlag()\n\n return (\n <CSSTransition\n in={isOpen}\n classNames={cnMixPopoverAnimateForCssTransition}\n unmountOnExit\n timeout={animateTimeout}\n onEnter={setExitAnimation.off}\n onExit={setExitAnimation.on}\n >\n <ContextMenu\n {...otherProps}\n className={cnAnimatedContextMenu({ exit: exitAnimation }, [className])}\n />\n </CSSTransition>\n )\n}\n"],"file":"AnimatedContextMenu.js"}
1
+ {"version":3,"sources":["../../../src/__private__/AnimatedContextMenu/AnimatedContextMenu.tsx"],"names":["React","useState","useFlag","Transition","cnMixPopoverAnimate","animateTimeout","cn","ContextMenu","cnAnimatedContextMenu","AnimatedContextMenu","props","isOpen","className","onSetDirection","otherProps","exitAnimation","setExitAnimation","direction","setDirection","off","on","animate","exit","d"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,EAAgBC,QAAhB,KAAgC,OAAhC,CACA,OAASC,OAAT,KAAwB,uBAAxB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CACA,OAASC,mBAAT,CAA8BC,cAA9B,KAAoD,iCAApD,CACA,OAASC,EAAT,oBACA,OAASC,WAAT,KAA4B,2BAA5B,CAGA,kCAMA,MAAO,MAAMC,CAAAA,qBAAqB,CAAGF,EAAE,CAAC,qBAAD,CAAhC,CAEP,MAAO,MAAMG,CAAAA,mBAAiD,CAAGC,CAAK,EAAI,MAClE,CAAEC,MAAM,CAANA,CAAF,CAAUC,SAAS,CAATA,CAAV,CAAqBC,cAAc,CAAdA,CAArB,EAAuDH,CADW,CAC1BI,CAD0B,0BACXJ,CADW,0CAElE,CAACK,CAAD,CAAgBC,CAAhB,EAAoCd,OAAO,EAFuB,CAGlE,CAACe,CAAD,CAAYC,CAAZ,EAA4BjB,QAAQ,EAH8B,CAKxE,MACE,MAAC,UAAD,EACE,EAAE,CAAEU,CADN,CAEE,aAAa,GAFf,CAGE,OAAO,CAAEN,cAHX,CAIE,OAAO,CAAEW,CAAgB,CAACG,GAJ5B,CAKE,MAAM,CAAEH,CAAgB,CAACI,EAL3B,SAOGC,CAAO,EACN,oBAAC,WAAD,kBACMP,CADN,EAEE,SAAS,CAAEN,qBAAqB,CAAC,CAAEc,IAAI,CAAEP,CAAR,CAAD,CAA0B,CACxDH,CADwD,CAExDR,mBAAmB,CAAC,CAAEiB,OAAO,CAAPA,CAAF,CAAWJ,SAAS,CAATA,CAAX,CAAD,CAFqC,CAA1B,CAFlC,CAME,cAAc,CAAEM,CAAC,EAAI,CACnBL,CAAY,CAACK,CAAD,CADO,QAEnBV,CAFmB,WAEnBA,CAFmB,QAEnBA,CAAc,CAAGU,CAAH,CACf,CATH,GARJ,CAsBH,CA5BM","sourcesContent":["import React, { useState } from 'react'\nimport { useFlag } from '@consta/uikit/useFlag'\nimport { Transition } from 'react-transition-group'\nimport { cnMixPopoverAnimate, animateTimeout } from '@consta/uikit/MixPopoverAnimate'\nimport { cn } from '@/__private__/utils/bem'\nimport { ContextMenu } from '@consta/uikit/ContextMenu'\nimport { ContextMenuProps } from '@consta/uikit/__internal__/src/components/ContextMenu/helpers'\n\nimport './AnimatedContextMenu.css'\n\nexport type AnimatedContextMenuComponent = <ITEM>(\n props: ContextMenuProps<ITEM> & { isOpen?: boolean }\n) => React.ReactElement | null\n\nexport const cnAnimatedContextMenu = cn('AnimatedContextMenu')\n\nexport const AnimatedContextMenu: AnimatedContextMenuComponent = props => {\n const { isOpen, className, onSetDirection, ...otherProps } = props\n const [exitAnimation, setExitAnimation] = useFlag()\n const [direction, setDirection] = useState<typeof otherProps.direction>()\n\n return (\n <Transition\n in={isOpen}\n unmountOnExit\n timeout={animateTimeout}\n onEnter={setExitAnimation.off}\n onExit={setExitAnimation.on}\n >\n {animate => (\n <ContextMenu\n {...otherProps}\n className={cnAnimatedContextMenu({ exit: exitAnimation }, [\n className,\n cnMixPopoverAnimate({ animate, direction }),\n ])}\n onSetDirection={d => {\n setDirection(d)\n onSetDirection?.(d)\n }}\n />\n )}\n </Transition>\n )\n}\n"],"file":"AnimatedContextMenu.js"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare type GetItemOnClick<ITEM> = (item: ITEM) => React.EventHandler<React.MouseEvent> | undefined;
3
+ export declare type OnItemClick<ITEM> = (props: {
4
+ e: React.MouseEvent;
5
+ item: ITEM;
6
+ }) => void;
7
+ export declare const getItemClick: <ITEM>(item: ITEM, getItemOnClick: GetItemOnClick<ITEM>, onItemClick?: OnItemClick<ITEM> | undefined) => React.MouseEventHandler;
@@ -0,0 +1,2 @@
1
+ export const getItemClick=(a,b,c)=>d=>{var e;null===c||void 0===c?void 0:c({e:d,item:a}),null===(e=b(a))||void 0===e?void 0:e(d)};
2
+ //# sourceMappingURL=getItemClick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/__private__/helpers/getItemClick.ts"],"names":["getItemClick","item","getItemOnClick","onItemClick","e"],"mappings":"AAGA,MAAO,MAAMA,CAAAA,YAAY,CAAG,CAC1BC,CAD0B,CAE1BC,CAF0B,CAG1BC,CAH0B,GAIEC,CAAC,EAAI,cACjCD,CADiC,WACjCA,CADiC,QACjCA,CAAW,CAAG,CAAEC,CAAC,CAADA,CAAF,CAAKH,IAAI,CAAJA,CAAL,CAAH,CADsB,WAEjCC,CAAc,CAACD,CAAD,CAFmB,qBAEjC,EAAuBG,CAAvB,CACD,CAPM","sourcesContent":["export type GetItemOnClick<ITEM> = (item: ITEM) => React.EventHandler<React.MouseEvent> | undefined\nexport type OnItemClick<ITEM> = (props: { e: React.MouseEvent; item: ITEM }) => void\n\nexport const getItemClick = <ITEM>(\n item: ITEM,\n getItemOnClick: GetItemOnClick<ITEM>,\n onItemClick?: OnItemClick<ITEM>\n): React.MouseEventHandler => e => {\n onItemClick?.({ e, item })\n getItemOnClick(item)?.(e)\n}\n"],"file":"getItemClick.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@consta/header",
3
- "version": "0.1.0",
3
+ "version": "0.3.1",
4
4
  "files": [
5
5
  "*",
6
6
  "!*.css.d.ts",
@@ -18,7 +18,7 @@
18
18
  "access": "public"
19
19
  },
20
20
  "peerDependencies": {
21
- "@consta/uikit": "^3.14.0"
21
+ "@consta/uikit": "^3.17.1"
22
22
  },
23
23
  "dependencies": {
24
24
  "@bem-react/classname": "^1.5.8",
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const useHideElementsLine: <ELEMENT extends HTMLElement, WRAPPER_ELEMENT extends HTMLElement, ITEM>(items: ITEM[]) => {
3
- visibleItems: ITEM[];
4
- hiddenItems: ITEM[];
5
- itemsRefs: import("react").RefObject<ELEMENT>[];
6
- wrapperRef: import("react").RefObject<WRAPPER_ELEMENT>;
7
- moreRef: import("react").RefObject<ELEMENT> | undefined;
8
- };
@@ -1,2 +0,0 @@
1
- import{createRef,useMemo,useRef}from"react";import{useResizeObserved}from"@consta/uikit/useResizeObserved";import{useComponentSize}from"@consta/uikit/useComponentSize";const useCreateRefs=a=>useMemo(()=>Array(a.length+1).fill(null).map(()=>createRef()),[a]);export const useHideElementsLine=a=>{const b=useCreateRefs(a),c=useRef(null),d=useComponentSize(c).width,e=[...b],f=e.pop(),g=useResizeObserved(b,a=>({size:(null===a||void 0===a?void 0:a.offsetWidth)||0,gap:a?parseInt(getComputedStyle(a).marginRight,10):0})),h=[],i=[];if(d){var j;let b=(null===(j=g[g.length-1])||void 0===j?void 0:j.size)||0;for(let c=0;c<g.length;c++){if(b=b+g[c].size+g[c].gap,b>=d){a[c]&&i.push(a[c]);continue}h.push(a[c])}}return{visibleItems:h,hiddenItems:i,itemsRefs:e,wrapperRef:c,moreRef:f}};
2
- //# sourceMappingURL=useHideElementsLine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/__private__/hooks/useHideElementsLine.ts"],"names":["createRef","useMemo","useRef","useResizeObserved","useComponentSize","useCreateRefs","items","Array","length","fill","map","useHideElementsLine","refs","wrapperRef","wrapperWidth","width","itemsRefs","moreRef","pop","itemsDimensions","el","size","offsetWidth","gap","parseInt","getComputedStyle","marginRight","visibleItems","hiddenItems","calcWidth","index","push"],"mappings":"AAAA,OAASA,SAAT,CAAoBC,OAApB,CAA6BC,MAA7B,KAA2C,OAA3C,CAEA,OAASC,iBAAT,KAAkC,iCAAlC,CACA,OAASC,gBAAT,KAAiC,gCAAjC,CAEA,KAAMC,CAAAA,aAAa,CAAiCC,CAA9B,EACpBL,OAAO,CAAC,IAAUM,KAAJ,CAAUD,CAAK,CAACE,MAAN,CAAe,CAAzB,EAA4BC,IAA5B,CAAiC,IAAjC,EAAuCC,GAAvC,CAA2C,IAAMV,SAAS,EAA1D,CAAP,CAA+E,CAACM,CAAD,CAA/E,CADT,CAQA,MAAO,MAAMK,CAAAA,mBAAmB,CAK9BL,CALiC,EAY9B,MACGM,CAAAA,CAAI,CAAGP,aAAa,CAAUC,CAAV,CADvB,CAEGO,CAAU,CAAGX,MAAM,CAAkB,IAAlB,CAFtB,CAGGY,CAAY,CAAGV,gBAAgB,CAACS,CAAD,CAAhB,CAA6BE,KAH/C,CAIGC,CAAS,CAAG,CAAC,GAAGJ,CAAJ,CAJf,CAKGK,CAAO,CAAGD,CAAS,CAACE,GAAV,EALb,CAOGC,CAAe,CAAGhB,iBAAiB,CACvCS,CADuC,CAEtCQ,CAAD,GACS,CACLC,IAAI,CAAE,QAAAD,CAAE,WAAFA,SAAAA,CAAE,CAAEE,WAAJ,GAAmB,CADpB,CAELC,GAAG,CAAEH,CAAE,CAAGI,QAAQ,CAACC,gBAAgB,CAACL,CAAD,CAAhB,CAAqBM,WAAtB,CAAmC,EAAnC,CAAX,CAAoD,CAFtD,CADT,CAFuC,CAPtC,CAiBGC,CAAoB,CAAG,EAjB1B,CAkBGC,CAAmB,CAAG,EAlBzB,CAoBH,GAAId,CAAJ,CAAkB,OAChB,GAAIe,CAAAA,CAAS,CAAG,WAAAV,CAAe,CAACA,CAAe,CAACX,MAAhB,CAAyB,CAA1B,CAAf,uBAA6Ca,IAA7C,GAAqD,CAArE,CAEA,IAAK,GAAIS,CAAAA,CAAK,CAAG,CAAjB,CAAoBA,CAAK,CAAGX,CAAe,CAACX,MAA5C,CAAoDsB,CAAK,EAAzD,CAA6D,CAG3D,GAFAD,CAAS,CAAGA,CAAS,CAAGV,CAAe,CAACW,CAAD,CAAf,CAAuBT,IAAnC,CAA0CF,CAAe,CAACW,CAAD,CAAf,CAAuBP,GAE7E,CAAIM,CAAS,EAAIf,CAAjB,CAA+B,CAC7BR,CAAK,CAACwB,CAAD,CAAL,EAAgBF,CAAW,CAACG,IAAZ,CAAiBzB,CAAK,CAACwB,CAAD,CAAtB,CADa,CAE7B,QACD,CACDH,CAAY,CAACI,IAAb,CAAkBzB,CAAK,CAACwB,CAAD,CAAvB,CACD,CACF,CAED,MAAO,CAAEH,YAAY,CAAZA,CAAF,CAAgBC,WAAW,CAAXA,CAAhB,CAA6BZ,SAAS,CAATA,CAA7B,CAAwCH,UAAU,CAAVA,CAAxC,CAAoDI,OAAO,CAAPA,CAApD,CACR,CA/CM","sourcesContent":["import { createRef, useMemo, useRef } from 'react'\n\nimport { useResizeObserved } from '@consta/uikit/useResizeObserved'\nimport { useComponentSize } from '@consta/uikit/useComponentSize'\n\nconst useCreateRefs = <ELEMENT extends HTMLElement>(items: unknown[]) =>\n useMemo(() => new Array(items.length + 1).fill(null).map(() => createRef<ELEMENT>()), [items])\n\ntype ItemDimensions = {\n size: number\n gap: number\n}\n\nexport const useHideElementsLine = <\n ELEMENT extends HTMLElement,\n WRAPPER_ELEMENT extends HTMLElement,\n ITEM\n>(\n items: ITEM[]\n): {\n visibleItems: ITEM[]\n hiddenItems: ITEM[]\n itemsRefs: Array<React.RefObject<ELEMENT>>\n wrapperRef: React.RefObject<WRAPPER_ELEMENT>\n moreRef: React.RefObject<ELEMENT> | undefined\n} => {\n const refs = useCreateRefs<ELEMENT>(items)\n const wrapperRef = useRef<WRAPPER_ELEMENT>(null)\n const wrapperWidth = useComponentSize(wrapperRef).width\n const itemsRefs = [...refs]\n const moreRef = itemsRefs.pop()\n\n const itemsDimensions = useResizeObserved(\n refs,\n (el): ItemDimensions => {\n return {\n size: el?.offsetWidth || 0,\n gap: el ? parseInt(getComputedStyle(el).marginRight, 10) : 0,\n }\n }\n )\n\n const visibleItems: ITEM[] = []\n const hiddenItems: ITEM[] = []\n\n if (wrapperWidth) {\n let calcWidth = itemsDimensions[itemsDimensions.length - 1]?.size || 0\n\n for (let index = 0; index < itemsDimensions.length; index++) {\n calcWidth = calcWidth + itemsDimensions[index].size + itemsDimensions[index].gap\n\n if (calcWidth >= wrapperWidth) {\n items[index] && hiddenItems.push(items[index])\n continue\n }\n visibleItems.push(items[index])\n }\n }\n\n return { visibleItems, hiddenItems, itemsRefs, wrapperRef, moreRef }\n}\n"],"file":"useHideElementsLine.js"}
@@ -1 +0,0 @@
1
- .che--MixPopoverAnimate_animate_enter,.che--MixPopoverAnimate_animate_enterActive{opacity:0;transform:translateY(var(--space-s))}.che--MixPopoverAnimate_animate_enterDone{opacity:1;transition:opacity .2s,transform .2s;transform:translate(0)}.che--MixPopoverAnimate_animate_exit{opacity:1;transform:translate(0)}.che--MixPopoverAnimate_animate_exitActive,.che--MixPopoverAnimate_animate_exitDone{opacity:0;transition:opacity .2s,transform .2s;transform:translateY(var(--space-s))}
@@ -1,4 +0,0 @@
1
- import './MixPopoverAnimate.css';
2
- export declare const cnMixPopoverAnimate: import("@bem-react/classname").ClassNameFormatter;
3
- export declare const cnMixPopoverAnimateForCssTransition: import("@consta/uikit/__internal__/src/utils/cnForCssTransition").CSSTransitionClassNames;
4
- export declare const animateTimeout = 200;
@@ -1,2 +0,0 @@
1
- import"./MixPopoverAnimate.css";import{cnForCssTransition}from"@consta/uikit/__internal__/src/utils/cnForCssTransition";import{cn}from"../../utils/bem";export const cnMixPopoverAnimate=cn("MixPopoverAnimate");export const cnMixPopoverAnimateForCssTransition=cnForCssTransition(cnMixPopoverAnimate);export const animateTimeout=200;
2
- //# sourceMappingURL=MixPopoverAnimate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.tsx"],"names":["cnForCssTransition","cn","cnMixPopoverAnimate","cnMixPopoverAnimateForCssTransition","animateTimeout"],"mappings":"AAAA,gCACA,OAASA,kBAAT,KAAmC,yDAAnC,CAEA,OAASC,EAAT,uBAEA,MAAO,MAAMC,CAAAA,mBAAmB,CAAGD,EAAE,CAAC,mBAAD,CAA9B,CACP,MAAO,MAAME,CAAAA,mCAAmC,CAAGH,kBAAkB,CAACE,mBAAD,CAA9D,CACP,MAAO,MAAME,CAAAA,cAAc,CAAG,GAAvB","sourcesContent":["import './MixPopoverAnimate.css'\nimport { cnForCssTransition } from '@consta/uikit/__internal__/src/utils/cnForCssTransition'\n\nimport { cn } from '@/__private__/utils/bem'\n\nexport const cnMixPopoverAnimate = cn('MixPopoverAnimate')\nexport const cnMixPopoverAnimateForCssTransition = cnForCssTransition(cnMixPopoverAnimate)\nexport const animateTimeout = 200\n"],"file":"MixPopoverAnimate.js"}