@consta/header 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) 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 +68 -5
  30. package/Header/types.js +1 -1
  31. package/Header/types.js.map +1 -1
  32. package/Languages/Languages.d.ts +3 -0
  33. package/Languages/Languages.js +2 -0
  34. package/Languages/Languages.js.map +1 -0
  35. package/Languages/helpers.d.ts +20 -0
  36. package/Languages/helpers.js +2 -0
  37. package/Languages/helpers.js.map +1 -0
  38. package/Languages/index.d.ts +1 -0
  39. package/Languages/index.js +2 -0
  40. package/Languages/index.js.map +1 -0
  41. package/Languages/types.d.ts +23 -0
  42. package/Languages/types.js +2 -0
  43. package/Languages/types.js.map +1 -0
  44. package/Menu/Menu.js +1 -1
  45. package/Menu/Menu.js.map +1 -1
  46. package/Menu/helpers.d.ts +17 -4
  47. package/Menu/helpers.js +1 -1
  48. package/Menu/helpers.js.map +1 -1
  49. package/MobileMenu/MobileMenu.js +1 -1
  50. package/MobileMenu/MobileMenu.js.map +1 -1
  51. package/MobileMenu/types.d.ts +5 -2
  52. package/MobileMenu/types.js +1 -1
  53. package/MobileMenu/types.js.map +1 -1
  54. package/Notifications/Notifications.js +1 -1
  55. package/Notifications/Notifications.js.map +1 -1
  56. package/SelectMenu/SelectMenu.css +1 -0
  57. package/SelectMenu/SelectMenu.d.ts +5 -0
  58. package/SelectMenu/SelectMenu.js +2 -0
  59. package/SelectMenu/SelectMenu.js.map +1 -0
  60. package/SelectMenu/helpers.d.ts +40 -0
  61. package/SelectMenu/helpers.js +2 -0
  62. package/SelectMenu/helpers.js.map +1 -0
  63. package/SelectMenu/index.d.ts +1 -0
  64. package/SelectMenu/index.js +2 -0
  65. package/SelectMenu/index.js.map +1 -0
  66. package/SelectMenu/types.d.ts +33 -0
  67. package/SelectMenu/types.js +2 -0
  68. package/SelectMenu/types.js.map +1 -0
  69. package/TileMenu/TileMenu.js +1 -1
  70. package/TileMenu/TileMenu.js.map +1 -1
  71. package/TileMenu/TileMenuList/TileMenuList.js +1 -1
  72. package/TileMenu/TileMenuList/TileMenuList.js.map +1 -1
  73. package/TileMenu/helpers.d.ts +3 -3
  74. package/TileMenu/helpers.js +1 -1
  75. package/TileMenu/helpers.js.map +1 -1
  76. package/TileMenu/types.d.ts +5 -5
  77. package/TileMenu/types.js.map +1 -1
  78. package/VerticalMenu/VerticalMenu.js +1 -1
  79. package/VerticalMenu/VerticalMenu.js.map +1 -1
  80. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js +1 -1
  81. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -1
  82. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.css +1 -1
  83. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js +1 -1
  84. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -1
  85. package/VerticalMenu/helpers.d.ts +6 -3
  86. package/VerticalMenu/helpers.js +1 -1
  87. package/VerticalMenu/helpers.js.map +1 -1
  88. package/VerticalMenu/types.d.ts +8 -0
  89. package/__private__/AnimatedContextMenu/AnimatedContextMenu.css +1 -1
  90. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js +1 -1
  91. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js.map +1 -1
  92. package/__private__/helpers/getItemClick.d.ts +7 -0
  93. package/__private__/helpers/getItemClick.js +2 -0
  94. package/__private__/helpers/getItemClick.js.map +1 -0
  95. package/package.json +2 -2
  96. package/__private__/hooks/useHideElementsLine.d.ts +0 -8
  97. package/__private__/hooks/useHideElementsLine.js +0 -2
  98. package/__private__/hooks/useHideElementsLine.js.map +0 -1
  99. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.css +0 -1
  100. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +0 -4
  101. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js +0 -2
  102. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectSpread from"@babel/runtime/helpers/objectSpread";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{useRef,useCallback,forwardRef}from"react";import{cn}from"../__private__/utils/bem";import{withDefaultGetters}from"./helpers";import"./SelectMenu.css";import{Text}from"@consta/uikit/Text";import{IconSelect}from"@consta/uikit/IconSelect";import{useFlag}from"@consta/uikit/useFlag";import{useMutableRef}from"@consta/uikit/useMutableRef";import{useForkRef}from"@consta/uikit/useForkRef";import{AnimatedContextMenu}from"../__private__/AnimatedContextMenu/AnimatedContextMenu";export const cnSelectMenu=cn("SelectMenu");var _ref=_jsx(IconSelect,{size:"xs"});const SelectMenuRender=(a,b)=>{const c=withDefaultGetters(a),{items:d,className:e,getItemHref:f,getItemLabel:g,getItemOnClick:h,getItemTarget:i,onItemClick:j,label:k,onClick:l,getItemSubMenu:m,style:n}=c,o=_objectWithoutProperties(c,["items","className","getItemHref","getItemLabel","getItemOnClick","getItemTarget","onItemClick","label","onClick","getItemSubMenu","style"]),[p,q]=useFlag(),r=useRef(null),s=useMutableRef(f),t=useMutableRef(i),u=useMutableRef(l),v=useCallback(a=>s.current(a)?"a":"span",[]),w=useCallback(a=>{const b=s.current(a),c=t.current(a);return _objectSpread({},b&&{href:s.current(a)},c&&{href:t.current(a)})},[]),x=useCallback(a=>{var b;null===(b=u.current)||void 0===b?void 0:b.call(u,a),q.toogle()},[]);return React.createElement(React.Fragment,null,React.createElement("div",Object.assign({},o,{className:cnSelectMenu(null,[e]),ref:useForkRef([r,b]),onClick:x,style:n}),_jsx(Text,{className:cnSelectMenu("Label"),size:"s"},void 0,k),_jsx("span",{className:cnSelectMenu("ArrowBox",{open:p})},void 0,_ref)),d&&_jsx(AnimatedContextMenu,{className:cnSelectMenu("Menu"),anchorRef:r,isOpen:p,items:d,getLabel:g,getItemOnClick:h,getItemAs:v,getItemHTMLAttributes:w,onClickOutside:q.off,onItemClick:j,direction:"rightStartDown",possibleDirections:["downStartLeft","upStartLeft","downStartRight","upStartRight"],getSubItems:m,style:{zIndex:"number"==typeof(null===n||void 0===n?void 0:n.zIndex)?n.zIndex+1:"auto"}}))};export const SelectMenu=forwardRef(SelectMenuRender);export*from"./types";
2
+ //# sourceMappingURL=SelectMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/SelectMenu/SelectMenu.tsx"],"names":["React","useRef","useCallback","forwardRef","cn","withDefaultGetters","Text","IconSelect","useFlag","useMutableRef","useForkRef","AnimatedContextMenu","cnSelectMenu","SelectMenuRender","props","componentRef","items","className","getItemHref","getItemLabel","getItemOnClick","getItemTarget","onItemClick","label","onClick","onClickProp","getItemSubMenu","style","otherProps","open","setOpen","ref","getItemHrefRef","getItemTargetRef","onClickRef","getItemAs","item","current","getItemHTMLAttributes","href","target","e","toogle","off","zIndex","SelectMenu"],"mappings":"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","sourcesContent":["import React, { useRef, useCallback, forwardRef } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { withDefaultGetters } from './helpers'\nimport { SelectMenuComponent, SelectMenuProps, DefaultItem } from './types'\nimport './SelectMenu.css'\nimport { Text } from '@consta/uikit/Text'\nimport { IconSelect } from '@consta/uikit/IconSelect'\nimport { useFlag } from '@consta/uikit/useFlag'\nimport { useMutableRef } from '@consta/uikit/useMutableRef'\nimport { useForkRef } from '@consta/uikit/useForkRef'\nimport { AnimatedContextMenu } from '@/__private__/AnimatedContextMenu/AnimatedContextMenu'\n\nexport const cnSelectMenu = cn('SelectMenu')\n\nconst SelectMenuRender = (props: SelectMenuProps, componentRef: React.Ref<HTMLDivElement>) => {\n const {\n items,\n className,\n getItemHref,\n getItemLabel,\n getItemOnClick,\n getItemTarget,\n onItemClick,\n label,\n onClick: onClickProp,\n getItemSubMenu,\n style,\n ...otherProps\n } = withDefaultGetters(props)\n\n const [open, setOpen] = useFlag()\n\n const ref = useRef<HTMLDivElement>(null)\n\n const getItemHrefRef = useMutableRef(getItemHref)\n const getItemTargetRef = useMutableRef(getItemTarget)\n const onClickRef = useMutableRef(onClickProp)\n\n const getItemAs = useCallback((item: DefaultItem) => {\n if (!!getItemHrefRef.current(item)) {\n return 'a'\n }\n return 'span'\n }, [])\n\n const getItemHTMLAttributes = useCallback((item: DefaultItem) => {\n const href = getItemHrefRef.current(item)\n const target = getItemTargetRef.current(item)\n\n return {\n ...(href && { href: getItemHrefRef.current(item) }),\n ...(target && { href: getItemTargetRef.current(item) }),\n }\n }, [])\n\n const onClick = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n onClickRef.current?.(e)\n setOpen.toogle()\n }, [])\n\n return (\n <>\n <div\n {...otherProps}\n className={cnSelectMenu(null, [className])}\n ref={useForkRef([ref, componentRef])}\n onClick={onClick}\n style={style}\n >\n <Text className={cnSelectMenu('Label')} size=\"s\">\n {label}\n </Text>\n <span className={cnSelectMenu('ArrowBox', { open })}>\n <IconSelect size=\"xs\" />\n </span>\n </div>\n {items && (\n <AnimatedContextMenu\n className={cnSelectMenu('Menu')}\n anchorRef={ref}\n isOpen={open}\n items={items}\n getLabel={getItemLabel}\n getItemOnClick={getItemOnClick}\n getItemAs={getItemAs}\n getItemHTMLAttributes={getItemHTMLAttributes}\n onClickOutside={setOpen.off}\n onItemClick={onItemClick}\n direction=\"rightStartDown\"\n possibleDirections={['downStartLeft', 'upStartLeft', 'downStartRight', 'upStartRight']}\n getSubItems={getItemSubMenu}\n style={{ zIndex: typeof style?.zIndex === 'number' ? style.zIndex + 1 : 'auto' }}\n />\n )}\n </>\n )\n}\n\nexport const SelectMenu = forwardRef(SelectMenuRender) as SelectMenuComponent\n\nexport * from './types'\n"],"file":"SelectMenu.js"}
@@ -0,0 +1,40 @@
1
+ /// <reference types="react" />
2
+ import { DefaultItem, SelectMenuProps, SelectMenuPropGetItemHref, SelectMenuPropGetItemLabel, SelectMenuPropGetItemOnClick, SelectMenuPropGetItemTarget, SelectMenuPropGetItemSubMenu } from "./types";
3
+ export declare const defaultGetItemLabel: SelectMenuPropGetItemLabel<DefaultItem>;
4
+ export declare const defaultGetItemHref: SelectMenuPropGetItemHref<DefaultItem>;
5
+ export declare const defaultGetItemOnClick: SelectMenuPropGetItemOnClick<DefaultItem>;
6
+ export declare const defaultGetItemTarget: SelectMenuPropGetItemTarget<DefaultItem>;
7
+ export declare const defaultGetItemSubMenu: SelectMenuPropGetItemSubMenu<DefaultItem>;
8
+ export declare const getGetters: <ITEM>(props: {
9
+ getItemLabel?: SelectMenuPropGetItemLabel<ITEM> | undefined;
10
+ getItemHref?: SelectMenuPropGetItemHref<ITEM> | undefined;
11
+ getItemOnClick?: SelectMenuPropGetItemOnClick<ITEM> | undefined;
12
+ getItemTarget?: SelectMenuPropGetItemTarget<ITEM> | undefined;
13
+ getItemSubMenu?: SelectMenuPropGetItemSubMenu<ITEM> | undefined;
14
+ }) => {
15
+ getItemLabel: SelectMenuPropGetItemLabel<DefaultItem> | SelectMenuPropGetItemLabel<ITEM>;
16
+ getItemHref: SelectMenuPropGetItemHref<DefaultItem> | SelectMenuPropGetItemHref<ITEM>;
17
+ getItemOnClick: SelectMenuPropGetItemOnClick<DefaultItem> | SelectMenuPropGetItemOnClick<ITEM>;
18
+ getItemTarget: SelectMenuPropGetItemTarget<DefaultItem> | SelectMenuPropGetItemTarget<ITEM>;
19
+ getItemSubMenu: SelectMenuPropGetItemSubMenu<DefaultItem> | SelectMenuPropGetItemSubMenu<ITEM>;
20
+ };
21
+ export declare function withDefaultGetters<ITEM>(props: SelectMenuProps<ITEM>): {
22
+ items: ITEM[];
23
+ onItemClick?: import("./types").SelectMenuPropOnItemClick<ITEM> | undefined;
24
+ getItemHref?: SelectMenuPropGetItemHref<ITEM> | undefined;
25
+ getItemLabel?: SelectMenuPropGetItemLabel<ITEM> | undefined;
26
+ getItemTarget?: SelectMenuPropGetItemTarget<ITEM> | undefined;
27
+ getItemOnClick?: SelectMenuPropGetItemOnClick<ITEM> | undefined;
28
+ getItemSubMenu?: SelectMenuPropGetItemSubMenu<ITEM> | undefined;
29
+ label: string;
30
+ } & 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"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
31
+ label: string;
32
+ } ? {} : {
33
+ getItemLabel: SelectMenuPropGetItemLabel<ITEM>;
34
+ }) & {
35
+ getItemLabel: SelectMenuPropGetItemLabel<DefaultItem> | SelectMenuPropGetItemLabel<ITEM>;
36
+ getItemHref: SelectMenuPropGetItemHref<DefaultItem> | SelectMenuPropGetItemHref<ITEM>;
37
+ getItemOnClick: SelectMenuPropGetItemOnClick<DefaultItem> | SelectMenuPropGetItemOnClick<ITEM>;
38
+ getItemTarget: SelectMenuPropGetItemTarget<DefaultItem> | SelectMenuPropGetItemTarget<ITEM>;
39
+ getItemSubMenu: SelectMenuPropGetItemSubMenu<DefaultItem> | SelectMenuPropGetItemSubMenu<ITEM>;
40
+ };
@@ -0,0 +1,2 @@
1
+ import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemLabel=a=>a.label;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 getGetters=a=>({getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick,getItemTarget:a.getItemTarget||defaultGetItemTarget,getItemSubMenu:a.getItemSubMenu||defaultGetItemSubMenu});export function withDefaultGetters(a){return _objectSpread({},a,getGetters(a))}
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/SelectMenu/helpers.ts"],"names":["defaultGetItemLabel","item","label","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemTarget","target","defaultGetItemSubMenu","subMenu","getGetters","props","getItemLabel","getItemHref","getItemOnClick","getItemTarget","getItemSubMenu","withDefaultGetters"],"mappings":"+DAUA,MAAO,MAAMA,CAAAA,mBAA4D,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAAlF,CACP,MAAO,MAAMC,CAAAA,kBAA0D,CAAGF,CAAI,EAAIA,CAAI,CAACG,IAAhF,CACP,MAAO,MAAMC,CAAAA,qBAAgE,CAAGJ,CAAI,EAAIA,CAAI,CAACK,OAAtF,CACP,MAAO,MAAMC,CAAAA,oBAA8D,CAAGN,CAAI,EAAIA,CAAI,CAACO,MAApF,CACP,MAAO,MAAMC,CAAAA,qBAAgE,CAAGR,CAAI,EAAIA,CAAI,CAACS,OAAtF,CAEP,MAAO,MAAMC,CAAAA,UAAU,CAAUC,CAAP,GAOjB,CACLC,YAAY,CAAED,CAAK,CAACC,YAAN,EAAsBb,mBAD/B,CAELc,WAAW,CAAEF,CAAK,CAACE,WAAN,EAAqBX,kBAF7B,CAGLY,cAAc,CAAEH,CAAK,CAACG,cAAN,EAAwBV,qBAHnC,CAILW,aAAa,CAAEJ,CAAK,CAACI,aAAN,EAAuBT,oBAJjC,CAKLU,cAAc,CAAEL,CAAK,CAACK,cAAN,EAAwBR,qBALnC,CAPiB,CAAnB,CAgBP,MAAO,SAASS,CAAAA,kBAAT,CAAkCN,CAAlC,CAAgE,CACrE,wBACKA,CADL,CAEKD,UAAU,CAACC,CAAD,CAFf,CAID","sourcesContent":["import {\n DefaultItem,\n SelectMenuProps,\n SelectMenuPropGetItemHref,\n SelectMenuPropGetItemLabel,\n SelectMenuPropGetItemOnClick,\n SelectMenuPropGetItemTarget,\n SelectMenuPropGetItemSubMenu,\n} from './types'\n\nexport const defaultGetItemLabel: SelectMenuPropGetItemLabel<DefaultItem> = item => item.label\nexport const defaultGetItemHref: SelectMenuPropGetItemHref<DefaultItem> = item => item.href\nexport const defaultGetItemOnClick: SelectMenuPropGetItemOnClick<DefaultItem> = item => item.onClick\nexport const defaultGetItemTarget: SelectMenuPropGetItemTarget<DefaultItem> = item => item.target\nexport const defaultGetItemSubMenu: SelectMenuPropGetItemSubMenu<DefaultItem> = item => item.subMenu\n\nexport const getGetters = <ITEM>(props: {\n getItemLabel?: SelectMenuPropGetItemLabel<ITEM>\n getItemHref?: SelectMenuPropGetItemHref<ITEM>\n getItemOnClick?: SelectMenuPropGetItemOnClick<ITEM>\n getItemTarget?: SelectMenuPropGetItemTarget<ITEM>\n getItemSubMenu?: SelectMenuPropGetItemSubMenu<ITEM>\n}) => {\n return {\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\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 withDefaultGetters<ITEM>(props: SelectMenuProps<ITEM>) {\n return {\n ...props,\n ...getGetters(props),\n }\n}\n"],"file":"helpers.js"}
@@ -0,0 +1 @@
1
+ export * from "./SelectMenu";
@@ -0,0 +1,2 @@
1
+ export*from"./SelectMenu";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/SelectMenu/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './SelectMenu'\n"],"file":"index.js"}
@@ -0,0 +1,33 @@
1
+ /// <reference types="react" />
2
+ import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
3
+ export declare type DefaultItem = {
4
+ label: string;
5
+ href?: string;
6
+ target?: string;
7
+ onClick?: React.EventHandler<React.MouseEvent>;
8
+ subMenu?: DefaultItem[];
9
+ };
10
+ export declare type SelectMenuPropGetItemLabel<ITEM> = (item: ITEM) => string;
11
+ export declare type SelectMenuPropGetItemHref<ITEM> = (item: ITEM) => string | undefined;
12
+ export declare type SelectMenuPropGetItemTarget<ITEM> = (item: ITEM) => string | undefined;
13
+ export declare type SelectMenuPropGetItemOnClick<ITEM> = (item: ITEM) => React.EventHandler<React.MouseEvent> | undefined;
14
+ export declare type SelectMenuPropOnItemClick<ITEM> = (props: {
15
+ e: React.MouseEvent;
16
+ item: ITEM;
17
+ }) => void;
18
+ export declare type SelectMenuPropGetItemSubMenu<ITEM> = (item: ITEM) => ITEM[] | undefined;
19
+ export declare type SelectMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesAndRef<{
20
+ items: ITEM[];
21
+ onItemClick?: SelectMenuPropOnItemClick<ITEM>;
22
+ getItemHref?: SelectMenuPropGetItemHref<ITEM>;
23
+ getItemLabel?: SelectMenuPropGetItemLabel<ITEM>;
24
+ getItemTarget?: SelectMenuPropGetItemTarget<ITEM>;
25
+ getItemOnClick?: SelectMenuPropGetItemOnClick<ITEM>;
26
+ getItemSubMenu?: SelectMenuPropGetItemSubMenu<ITEM>;
27
+ label: string;
28
+ }, HTMLDivElement> & (ITEM extends {
29
+ label: DefaultItem['label'];
30
+ } ? {} : {
31
+ getItemLabel: SelectMenuPropGetItemLabel<ITEM>;
32
+ });
33
+ export declare type SelectMenuComponent = <ITEM = DefaultItem>(props: SelectMenuProps<ITEM>) => React.ReactElement | null;
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
@@ -1,2 +1,2 @@
1
- import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useRef,useState,useCallback}from"react";import{cn}from"../__private__/utils/bem";import{IconBento}from"@consta/uikit/IconBento";import{Button}from"@consta/uikit/Button";import{CSSTransition}from"react-transition-group";import{useFlag}from"@consta/uikit/useFlag";import{useForkRef}from"@consta/uikit/useForkRef";import{Popover}from"@consta/uikit/Popover";import{cnMixPopoverArrow}from"../__private__/mixs/MixPopoverArrow/MixPopoverArrow";import{cnMixPopoverAnimateForCssTransition}from"../__private__/mixs/MixPopoverAnimate/MixPopoverAnimate";import{Sidebar}from"../__private__/components/Sidebar";import{tileMenuPropViewDefault}from"./types";import{TileMenuList}from"./TileMenuList/TileMenuList";import"./TileMenu.css";export const cnTileMenu=cn("TileMenu");const ARROW_SIZE=6,ARROW_OFFSET=10;function TileMenuRender(a,b){var c;const{view:p=tileMenuPropViewDefault,items:d,isMobile:e,className:f,children:g,listClassName:h,getItemDescription:i,getItemHref:j,getItemImage:k,getItemOnClick:l,getItemTitle:m,title:n,onItemClick:o}=a,q=_objectWithoutProperties(a,["view","items","isMobile","className","children","listClassName","getItemDescription","getItemHref","getItemImage","getItemOnClick","getItemTitle","title","onItemClick"]),r=useRef(null),[s,t]=useState(void 0),[u,{toogle:v,off:w}]=useFlag(),x=useCallback(a=>{t(a)},[]),y={className:h,getItemDescription:i,getItemHref:j,getItemImage:k,getItemOnClick:l,getItemTitle:m,items:d,view:p,onItemClick:o},z="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return React.createElement(React.Fragment,null,React.createElement(Button,Object.assign({},q,{size:"s",view:"clear",className:cnTileMenu(null,[f]),iconLeft:IconBento,ref:useForkRef([b,r]),onClick:v})),e?_jsx(Sidebar,{isOpen:u,onClickOutside:w,onClose:w,title:n,style:{zIndex:z}},void 0,React.createElement(TileMenuList,y)):_jsx(CSSTransition,{classNames:cnMixPopoverAnimateForCssTransition,timeout:200,unmountOnExit:!0,in:u},void 0,_jsx(Popover,{className:cnTileMenu("Popover",{view:p}),anchorRef:r,arrowOffset:ARROW_OFFSET+ARROW_SIZE,offset:10,onSetDirection:x,style:{"--popover-arrow-size":`${ARROW_SIZE}px`,"--popover-arrow-offset":`${ARROW_OFFSET}px`,zIndex:z},onClickOutside:w},void 0,_jsx("div",{className:cnMixPopoverArrow({direction:s})}),_jsx("div",{className:cnTileMenu("ListWrapper")},void 0,React.createElement(TileMenuList,y)))))}export const TileMenu=forwardRef(TileMenuRender);export*from"./types";
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useRef,useState}from"react";import{cn}from"../__private__/utils/bem";import{IconBento}from"@consta/uikit/IconBento";import{Button}from"@consta/uikit/Button";import{Transition}from"react-transition-group";import{useFlag}from"@consta/uikit/useFlag";import{useForkRef}from"@consta/uikit/useForkRef";import{Popover}from"@consta/uikit/Popover";import{cnMixPopoverArrow}from"../__private__/mixs/MixPopoverArrow/MixPopoverArrow";import{Sidebar}from"../__private__/components/Sidebar";import{tileMenuPropViewDefault}from"./types";import{cnMixPopoverAnimate,animateTimeout}from"@consta/uikit/MixPopoverAnimate";import{TileMenuList}from"./TileMenuList/TileMenuList";import"./TileMenu.css";export const cnTileMenu=cn("TileMenu");const ARROW_SIZE=6,ARROW_OFFSET=10;function TileMenuRender(a,b){var c;const{view:p=tileMenuPropViewDefault,items:d,isMobile:e,className:f,children:g,listClassName:h,getItemDescription:i,getItemHref:j,getItemImage:k,getItemOnClick:l,getItemLabel:m,title:n,onItemClick:o}=a,q=_objectWithoutProperties(a,["view","items","isMobile","className","children","listClassName","getItemDescription","getItemHref","getItemImage","getItemOnClick","getItemLabel","title","onItemClick"]),r=useRef(null),[s,t]=useState(void 0),[u,{toogle:v,off:w}]=useFlag(),x={className:h,getItemDescription:i,getItemHref:j,getItemImage:k,getItemOnClick:l,getItemLabel:m,items:d,view:p,onItemClick:o},y="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return React.createElement(React.Fragment,null,React.createElement(Button,Object.assign({},q,{size:"s",view:"clear",className:cnTileMenu(null,[f]),iconLeft:IconBento,ref:useForkRef([b,r]),onClick:v})),e?_jsx(Sidebar,{isOpen:u,onClickOutside:w,onClose:w,title:n,style:{zIndex:y}},void 0,React.createElement(TileMenuList,x)):_jsx(Transition,{timeout:animateTimeout,unmountOnExit:!0,in:u},void 0,a=>_jsx(Popover,{className:cnTileMenu("Popover",{view:p},[cnMixPopoverAnimate({animate:a,direction:s})]),anchorRef:r,arrowOffset:ARROW_OFFSET+ARROW_SIZE,offset:10,onSetDirection:t,style:{"--popover-arrow-size":`${ARROW_SIZE}px`,"--popover-arrow-offset":`${ARROW_OFFSET}px`,zIndex:y},onClickOutside:w},void 0,_jsx("div",{className:cnMixPopoverArrow({direction:s})}),_jsx("div",{className:cnTileMenu("ListWrapper")},void 0,React.createElement(TileMenuList,x)))))}export const TileMenu=forwardRef(TileMenuRender);export*from"./types";
2
2
  //# sourceMappingURL=TileMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TileMenu/TileMenu.tsx"],"names":["React","forwardRef","useRef","useState","useCallback","cn","IconBento","Button","CSSTransition","useFlag","useForkRef","Popover","cnMixPopoverArrow","cnMixPopoverAnimateForCssTransition","Sidebar","tileMenuPropViewDefault","TileMenuList","cnTileMenu","ARROW_SIZE","ARROW_OFFSET","TileMenuRender","props","ref","view","items","isMobile","className","children","listClassName","getItemDescription","getItemHref","getItemImage","getItemOnClick","getItemTitle","title","onItemClick","otherProps","buttonRef","direction","setDirection","visibleMenu","toogle","off","onSetDirection","dir","listProps","elementZIndex","style","zIndex","TileMenu"],"mappings":"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","sourcesContent":["import React, { forwardRef, useRef, useState, useCallback } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { IconBento } from '@consta/uikit/IconBento'\nimport { Button } from '@consta/uikit/Button'\nimport { CSSTransition } from 'react-transition-group'\nimport { useFlag } from '@consta/uikit/useFlag'\nimport { useForkRef } from '@consta/uikit/useForkRef'\nimport { Popover, Direction } from '@consta/uikit/Popover'\nimport { cnMixPopoverArrow } from '@/__private__/mixs/MixPopoverArrow/MixPopoverArrow'\nimport { cnMixPopoverAnimateForCssTransition } from '@/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate'\nimport { Sidebar } from '@/__private__/components/Sidebar'\nimport { TileMenuProps, tileMenuPropViewDefault, TileMenuComponent } from './types'\n\nimport { TileMenuList } from './TileMenuList/TileMenuList'\n\nimport './TileMenu.css'\n\nexport const cnTileMenu = cn('TileMenu')\n\nconst ARROW_SIZE = 6\nconst ARROW_OFFSET = 10\n\nfunction TileMenuRender(props: TileMenuProps, ref: React.Ref<HTMLButtonElement>) {\n const {\n view = tileMenuPropViewDefault,\n items,\n isMobile,\n className,\n children,\n listClassName,\n getItemDescription,\n getItemHref,\n getItemImage,\n getItemOnClick,\n getItemTitle,\n title,\n onItemClick,\n ...otherProps\n } = props\n\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n const [direction, setDirection] = useState<Direction | undefined>(undefined)\n\n const [visibleMenu, { toogle, off }] = useFlag()\n\n const onSetDirection = useCallback((dir: Direction) => {\n setDirection(dir)\n }, [])\n\n const listProps = {\n className: listClassName,\n getItemDescription,\n getItemHref,\n getItemImage,\n getItemOnClick,\n getItemTitle,\n items,\n view,\n onItemClick,\n }\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n return (\n <>\n <Button\n {...otherProps}\n size=\"s\"\n view=\"clear\"\n className={cnTileMenu(null, [className])}\n iconLeft={IconBento}\n ref={useForkRef([ref, buttonRef])}\n onClick={toogle}\n />\n {isMobile ? (\n <Sidebar\n isOpen={visibleMenu}\n onClickOutside={off}\n onClose={off}\n title={title}\n style={{ zIndex: elementZIndex }}\n >\n <TileMenuList {...listProps} />\n </Sidebar>\n ) : (\n <CSSTransition\n classNames={cnMixPopoverAnimateForCssTransition}\n timeout={200}\n unmountOnExit\n in={visibleMenu}\n >\n <Popover\n className={cnTileMenu('Popover', { view })}\n anchorRef={buttonRef}\n arrowOffset={ARROW_OFFSET + ARROW_SIZE}\n offset={ARROW_SIZE + 4}\n onSetDirection={onSetDirection}\n style={{\n ['--popover-arrow-size' as string]: `${ARROW_SIZE}px`,\n ['--popover-arrow-offset' as string]: `${ARROW_OFFSET}px`,\n zIndex: elementZIndex,\n }}\n onClickOutside={off}\n >\n <div className={cnMixPopoverArrow({ direction })} />\n <div className={cnTileMenu('ListWrapper')}>\n <TileMenuList {...listProps} />\n </div>\n </Popover>\n </CSSTransition>\n )}\n </>\n )\n}\n\nexport const TileMenu = forwardRef(TileMenuRender) as TileMenuComponent\n\nexport * from './types'\n"],"file":"TileMenu.js"}
1
+ {"version":3,"sources":["../../src/TileMenu/TileMenu.tsx"],"names":["React","forwardRef","useRef","useState","cn","IconBento","Button","Transition","useFlag","useForkRef","Popover","cnMixPopoverArrow","Sidebar","tileMenuPropViewDefault","cnMixPopoverAnimate","animateTimeout","TileMenuList","cnTileMenu","ARROW_SIZE","ARROW_OFFSET","TileMenuRender","props","ref","view","items","isMobile","className","children","listClassName","getItemDescription","getItemHref","getItemImage","getItemOnClick","getItemLabel","title","onItemClick","otherProps","buttonRef","direction","setDirection","visibleMenu","toogle","off","listProps","elementZIndex","style","zIndex","animate","TileMenu"],"mappings":"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","sourcesContent":["import React, { forwardRef, useRef, useState } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { IconBento } from '@consta/uikit/IconBento'\nimport { Button } from '@consta/uikit/Button'\nimport { Transition } from 'react-transition-group'\nimport { useFlag } from '@consta/uikit/useFlag'\nimport { useForkRef } from '@consta/uikit/useForkRef'\nimport { Popover, Direction } from '@consta/uikit/Popover'\nimport { cnMixPopoverArrow } from '@/__private__/mixs/MixPopoverArrow/MixPopoverArrow'\nimport { Sidebar } from '@/__private__/components/Sidebar'\nimport { TileMenuProps, tileMenuPropViewDefault, TileMenuComponent } from './types'\nimport { cnMixPopoverAnimate, animateTimeout } from '@consta/uikit/MixPopoverAnimate'\n\nimport { TileMenuList } from './TileMenuList/TileMenuList'\n\nimport './TileMenu.css'\n\nexport const cnTileMenu = cn('TileMenu')\n\nconst ARROW_SIZE = 6\nconst ARROW_OFFSET = 10\n\nfunction TileMenuRender(props: TileMenuProps, ref: React.Ref<HTMLButtonElement>) {\n const {\n view = tileMenuPropViewDefault,\n items,\n isMobile,\n className,\n children,\n listClassName,\n getItemDescription,\n getItemHref,\n getItemImage,\n getItemOnClick,\n getItemLabel,\n title,\n onItemClick,\n ...otherProps\n } = props\n\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n const [direction, setDirection] = useState<Direction | undefined>(undefined)\n\n const [visibleMenu, { toogle, off }] = useFlag()\n\n const listProps = {\n className: listClassName,\n getItemDescription,\n getItemHref,\n getItemImage,\n getItemOnClick,\n getItemLabel,\n items,\n view,\n onItemClick,\n }\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n return (\n <>\n <Button\n {...otherProps}\n size=\"s\"\n view=\"clear\"\n className={cnTileMenu(null, [className])}\n iconLeft={IconBento}\n ref={useForkRef([ref, buttonRef])}\n onClick={toogle}\n />\n {isMobile ? (\n <Sidebar\n isOpen={visibleMenu}\n onClickOutside={off}\n onClose={off}\n title={title}\n style={{ zIndex: elementZIndex }}\n >\n <TileMenuList {...listProps} />\n </Sidebar>\n ) : (\n <Transition timeout={animateTimeout} unmountOnExit in={visibleMenu}>\n {animate => (\n <Popover\n className={cnTileMenu('Popover', { view }, [\n cnMixPopoverAnimate({ animate, direction }),\n ])}\n anchorRef={buttonRef}\n arrowOffset={ARROW_OFFSET + ARROW_SIZE}\n offset={ARROW_SIZE + 4}\n onSetDirection={setDirection}\n style={{\n ['--popover-arrow-size' as string]: `${ARROW_SIZE}px`,\n ['--popover-arrow-offset' as string]: `${ARROW_OFFSET}px`,\n zIndex: elementZIndex,\n }}\n onClickOutside={off}\n >\n <div className={cnMixPopoverArrow({ direction })} />\n <div className={cnTileMenu('ListWrapper')}>\n <TileMenuList {...listProps} />\n </div>\n </Popover>\n )}\n </Transition>\n )}\n </>\n )\n}\n\nexport const TileMenu = forwardRef(TileMenuRender) as TileMenuComponent\n\nexport * from './types'\n"],"file":"TileMenu.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{withDefaultGetters}from"../helpers";import{TileMenuItem}from"../TileMenuItem/TileMenuItem";import{getByMap}from"@consta/uikit/__internal__/src/utils/getByMap";import{cnMixSpace}from"@consta/uikit/MixSpace";import"./TileMenuList.css";export const cnTileMenuList=cn("TileMenuList");const itemViewMap={lines:"line",twoLines:"line",cards:"card"};export const TileMenuList=a=>{const b=withDefaultGetters(a),{items:c,view:l="lines",className:d,children:e,getItemDescription:f,getItemImage:g,getItemTitle:h,getItemHref:i,getItemOnClick:j,onItemClick:k}=b,m=_objectWithoutProperties(b,["items","view","className","children","getItemDescription","getItemImage","getItemTitle","getItemHref","getItemOnClick","onItemClick"]);return React.createElement("div",Object.assign({},m,{className:cnTileMenuList({view:l},[cnMixSpace({p:"xl"}),d])}),c.map((a,b)=>_jsx(TileMenuItem,{className:cnTileMenuList("Item"),view:getByMap(itemViewMap,l),image:g(a),title:h(a),description:f(a),href:i(a),onClick:b=>{var c;null===k||void 0===k?void 0:k({item:a,e:b}),null===(c=j(a))||void 0===c?void 0:c(b)},as:"a"},cnTileMenuList("Item",{index:b}))))};
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{withDefaultGetters}from"../helpers";import{TileMenuItem}from"../TileMenuItem/TileMenuItem";import{getByMap}from"@consta/uikit/__internal__/src/utils/getByMap";import{cnMixSpace}from"@consta/uikit/MixSpace";import"./TileMenuList.css";export const cnTileMenuList=cn("TileMenuList");const itemViewMap={lines:"line",twoLines:"line",cards:"card"};export const TileMenuList=a=>{const b=withDefaultGetters(a),{items:c,view:l="lines",className:d,children:e,getItemDescription:f,getItemImage:g,getItemLabel:h,getItemHref:i,getItemOnClick:j,onItemClick:k}=b,m=_objectWithoutProperties(b,["items","view","className","children","getItemDescription","getItemImage","getItemLabel","getItemHref","getItemOnClick","onItemClick"]);return React.createElement("div",Object.assign({},m,{className:cnTileMenuList({view:l},[cnMixSpace({p:"xl"}),d])}),c.map((a,b)=>_jsx(TileMenuItem,{className:cnTileMenuList("Item"),view:getByMap(itemViewMap,l),image:g(a),title:h(a),description:f(a),href:i(a),onClick:b=>{var c;null===k||void 0===k?void 0:k({item:a,e:b}),null===(c=j(a))||void 0===c?void 0:c(b)},as:"a"},cnTileMenuList("Item",{index:b}))))};
2
2
  //# sourceMappingURL=TileMenuList.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/TileMenu/TileMenuList/TileMenuList.tsx"],"names":["React","cn","withDefaultGetters","TileMenuItem","getByMap","cnMixSpace","cnTileMenuList","itemViewMap","lines","twoLines","cards","TileMenuList","props","items","view","className","children","getItemDescription","getItemImage","getItemTitle","getItemHref","getItemOnClick","onItemClick","otherProps","p","map","item","index","e"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAEA,OAASC,kBAAT,kBAEA,OAASC,YAAT,oCACA,OAASC,QAAT,KAAyB,+CAAzB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,2BAEA,MAAO,MAAMC,CAAAA,cAAc,CAAGL,EAAE,CAAC,cAAD,CAAzB,CAEP,KAAMM,CAAAA,WAAW,CAAG,CAClBC,KAAK,CAAE,MADW,CAElBC,QAAQ,CAAE,MAFQ,CAGlBC,KAAK,CAAE,MAHW,CAApB,CAMA,MAAO,MAAMC,CAAAA,YAAY,CAAKC,CAAD,EAA8B,CACzD,QAYIV,kBAAkB,CAACU,CAAD,CAZtB,CAAM,CACJC,KAAK,CAALA,CADI,CAEJC,IAAI,CAAJA,CAAI,CAAG,OAFH,CAGJC,SAAS,CAATA,CAHI,CAIJC,QAAQ,CAARA,CAJI,CAKJC,kBAAkB,CAAlBA,CALI,CAMJC,YAAY,CAAZA,CANI,CAOJC,YAAY,CAAZA,CAPI,CAQJC,WAAW,CAAXA,CARI,CASJC,cAAc,CAAdA,CATI,CAUJC,WAAW,CAAXA,CAVI,CAAN,GAWKC,CAXL,qKAcA,MACE,4CAASA,CAAT,EAAqB,SAAS,CAAEjB,cAAc,CAAC,CAAEQ,IAAI,CAAJA,CAAF,CAAD,CAAW,CAACT,UAAU,CAAC,CAAEmB,CAAC,CAAE,IAAL,CAAD,CAAX,CAA0BT,CAA1B,CAAX,CAA9C,GACGF,CAAK,CAACY,GAAN,CAAU,CAACC,CAAD,CAAOC,CAAP,GAEP,KAAC,YAAD,EACE,SAAS,CAAErB,cAAc,CAAC,MAAD,CAD3B,CAGE,IAAI,CAAEF,QAAQ,CAACG,WAAD,CAAcO,CAAd,CAHhB,CAIE,KAAK,CAAEI,CAAY,CAACQ,CAAD,CAJrB,CAKE,KAAK,CAAEP,CAAY,CAACO,CAAD,CALrB,CAME,WAAW,CAAET,CAAkB,CAACS,CAAD,CANjC,CAOE,IAAI,CAAEN,CAAW,CAACM,CAAD,CAPnB,CAQE,OAAO,CAAEE,CAAC,EAAI,cACZN,CADY,WACZA,CADY,QACZA,CAAW,CAAG,CAAEI,IAAI,CAAJA,CAAF,CAAQE,CAAC,CAADA,CAAR,CAAH,CADC,WAEZP,CAAc,CAACK,CAAD,CAFF,qBAEZ,EAAuBE,CAAvB,CACD,CAXH,CAYE,EAAE,CAAC,GAZL,EAEOtB,cAAc,CAAC,MAAD,CAAS,CAAEqB,KAAK,CAALA,CAAF,CAAT,CAFrB,CAFH,CADH,CAqBH,CArCM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { TileMenuListComponent, TileMenuListProps } from '../types'\nimport { withDefaultGetters } from '../helpers'\n\nimport { TileMenuItem } from '../TileMenuItem/TileMenuItem'\nimport { getByMap } from '@consta/uikit/__internal__/src/utils/getByMap'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\n\nimport './TileMenuList.css'\n\nexport const cnTileMenuList = cn('TileMenuList')\n\nconst itemViewMap = {\n lines: 'line',\n twoLines: 'line',\n cards: 'card',\n} as const\n\nexport const TileMenuList = ((props: TileMenuListProps) => {\n const {\n items,\n view = 'lines',\n className,\n children,\n getItemDescription,\n getItemImage,\n getItemTitle,\n getItemHref,\n getItemOnClick,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n return (\n <div {...otherProps} className={cnTileMenuList({ view }, [cnMixSpace({ p: 'xl' }), className])}>\n {items.map((item, index) => {\n return (\n <TileMenuItem\n className={cnTileMenuList('Item')}\n key={cnTileMenuList('Item', { index })}\n view={getByMap(itemViewMap, view)}\n image={getItemImage(item)}\n title={getItemTitle(item)}\n description={getItemDescription(item)}\n href={getItemHref(item)}\n onClick={e => {\n onItemClick?.({ item, e })\n getItemOnClick(item)?.(e)\n }}\n as=\"a\"\n />\n )\n })}\n </div>\n )\n}) as TileMenuListComponent\n"],"file":"TileMenuList.js"}
1
+ {"version":3,"sources":["../../../src/TileMenu/TileMenuList/TileMenuList.tsx"],"names":["React","cn","withDefaultGetters","TileMenuItem","getByMap","cnMixSpace","cnTileMenuList","itemViewMap","lines","twoLines","cards","TileMenuList","props","items","view","className","children","getItemDescription","getItemImage","getItemLabel","getItemHref","getItemOnClick","onItemClick","otherProps","p","map","item","index","e"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAEA,OAASC,kBAAT,kBAEA,OAASC,YAAT,oCACA,OAASC,QAAT,KAAyB,+CAAzB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,2BAEA,MAAO,MAAMC,CAAAA,cAAc,CAAGL,EAAE,CAAC,cAAD,CAAzB,CAEP,KAAMM,CAAAA,WAAW,CAAG,CAClBC,KAAK,CAAE,MADW,CAElBC,QAAQ,CAAE,MAFQ,CAGlBC,KAAK,CAAE,MAHW,CAApB,CAMA,MAAO,MAAMC,CAAAA,YAAY,CAAKC,CAAD,EAA8B,CACzD,QAYIV,kBAAkB,CAACU,CAAD,CAZtB,CAAM,CACJC,KAAK,CAALA,CADI,CAEJC,IAAI,CAAJA,CAAI,CAAG,OAFH,CAGJC,SAAS,CAATA,CAHI,CAIJC,QAAQ,CAARA,CAJI,CAKJC,kBAAkB,CAAlBA,CALI,CAMJC,YAAY,CAAZA,CANI,CAOJC,YAAY,CAAZA,CAPI,CAQJC,WAAW,CAAXA,CARI,CASJC,cAAc,CAAdA,CATI,CAUJC,WAAW,CAAXA,CAVI,CAAN,GAWKC,CAXL,qKAcA,MACE,4CAASA,CAAT,EAAqB,SAAS,CAAEjB,cAAc,CAAC,CAAEQ,IAAI,CAAJA,CAAF,CAAD,CAAW,CAACT,UAAU,CAAC,CAAEmB,CAAC,CAAE,IAAL,CAAD,CAAX,CAA0BT,CAA1B,CAAX,CAA9C,GACGF,CAAK,CAACY,GAAN,CAAU,CAACC,CAAD,CAAOC,CAAP,GAEP,KAAC,YAAD,EACE,SAAS,CAAErB,cAAc,CAAC,MAAD,CAD3B,CAGE,IAAI,CAAEF,QAAQ,CAACG,WAAD,CAAcO,CAAd,CAHhB,CAIE,KAAK,CAAEI,CAAY,CAACQ,CAAD,CAJrB,CAKE,KAAK,CAAEP,CAAY,CAACO,CAAD,CALrB,CAME,WAAW,CAAET,CAAkB,CAACS,CAAD,CANjC,CAOE,IAAI,CAAEN,CAAW,CAACM,CAAD,CAPnB,CAQE,OAAO,CAAEE,CAAC,EAAI,cACZN,CADY,WACZA,CADY,QACZA,CAAW,CAAG,CAAEI,IAAI,CAAJA,CAAF,CAAQE,CAAC,CAADA,CAAR,CAAH,CADC,WAEZP,CAAc,CAACK,CAAD,CAFF,qBAEZ,EAAuBE,CAAvB,CACD,CAXH,CAYE,EAAE,CAAC,GAZL,EAEOtB,cAAc,CAAC,MAAD,CAAS,CAAEqB,KAAK,CAALA,CAAF,CAAT,CAFrB,CAFH,CADH,CAqBH,CArCM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { TileMenuListComponent, TileMenuListProps } from '../types'\nimport { withDefaultGetters } from '../helpers'\n\nimport { TileMenuItem } from '../TileMenuItem/TileMenuItem'\nimport { getByMap } from '@consta/uikit/__internal__/src/utils/getByMap'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\n\nimport './TileMenuList.css'\n\nexport const cnTileMenuList = cn('TileMenuList')\n\nconst itemViewMap = {\n lines: 'line',\n twoLines: 'line',\n cards: 'card',\n} as const\n\nexport const TileMenuList = ((props: TileMenuListProps) => {\n const {\n items,\n view = 'lines',\n className,\n children,\n getItemDescription,\n getItemImage,\n getItemLabel,\n getItemHref,\n getItemOnClick,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n return (\n <div {...otherProps} className={cnTileMenuList({ view }, [cnMixSpace({ p: 'xl' }), className])}>\n {items.map((item, index) => {\n return (\n <TileMenuItem\n className={cnTileMenuList('Item')}\n key={cnTileMenuList('Item', { index })}\n view={getByMap(itemViewMap, view)}\n image={getItemImage(item)}\n title={getItemLabel(item)}\n description={getItemDescription(item)}\n href={getItemHref(item)}\n onClick={e => {\n onItemClick?.({ item, e })\n getItemOnClick(item)?.(e)\n }}\n as=\"a\"\n />\n )\n })}\n </div>\n )\n}) as TileMenuListComponent\n"],"file":"TileMenuList.js"}
@@ -1,13 +1,13 @@
1
1
  /// <reference types="react" />
2
- import { TileMenuPropGetItemDescription, TileMenuPropGetItemImage, TileMenuPropGetItemTitle, DefaultItem, TileMenuListProps, TileMenuPropGetItemHref, TileMenuPropGetItemOnClick } from "./types";
2
+ import { TileMenuPropGetItemDescription, TileMenuPropGetItemImage, TileMenuPropGetItemLabel, DefaultItem, TileMenuListProps, TileMenuPropGetItemHref, TileMenuPropGetItemOnClick } from "./types";
3
3
  export declare const defaultGetItemImage: TileMenuPropGetItemImage<DefaultItem>;
4
- export declare const defaultGetItemTitle: TileMenuPropGetItemTitle<DefaultItem>;
4
+ export declare const defaultGetItemLabel: TileMenuPropGetItemLabel<DefaultItem>;
5
5
  export declare const defaultGetItemHref: TileMenuPropGetItemHref<DefaultItem>;
6
6
  export declare const defaultGetItemOnClick: TileMenuPropGetItemOnClick<DefaultItem>;
7
7
  export declare const defaultGetItemDescription: TileMenuPropGetItemDescription<DefaultItem>;
8
8
  export declare function withDefaultGetters<ITEM>(props: TileMenuListProps<ITEM>): {
9
9
  getItemDescription: TileMenuPropGetItemDescription<DefaultItem> | TileMenuPropGetItemDescription<ITEM>;
10
- getItemTitle: TileMenuPropGetItemTitle<DefaultItem> | TileMenuPropGetItemTitle<ITEM>;
10
+ getItemLabel: TileMenuPropGetItemLabel<DefaultItem> | TileMenuPropGetItemLabel<ITEM>;
11
11
  getItemImage: TileMenuPropGetItemImage<DefaultItem> | TileMenuPropGetItemImage<ITEM>;
12
12
  getItemHref: TileMenuPropGetItemHref<DefaultItem> | TileMenuPropGetItemHref<ITEM>;
13
13
  getItemOnClick: TileMenuPropGetItemOnClick<DefaultItem> | TileMenuPropGetItemOnClick<ITEM>;
@@ -1,2 +1,2 @@
1
- import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemImage=a=>a.image;export const defaultGetItemTitle=a=>a.title;export const defaultGetItemHref=a=>a.href;export const defaultGetItemOnClick=a=>a.onClick;export const defaultGetItemDescription=a=>a.description;export function withDefaultGetters(a){return _objectSpread({},a,{getItemDescription:a.getItemDescription||defaultGetItemDescription,getItemTitle:a.getItemTitle||defaultGetItemTitle,getItemImage:a.getItemImage||defaultGetItemImage,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick})}
1
+ import _objectSpread from"@babel/runtime/helpers/objectSpread";export const defaultGetItemImage=a=>a.image;export const defaultGetItemLabel=a=>a.label;export const defaultGetItemHref=a=>a.href;export const defaultGetItemOnClick=a=>a.onClick;export const defaultGetItemDescription=a=>a.description;export function withDefaultGetters(a){return _objectSpread({},a,{getItemDescription:a.getItemDescription||defaultGetItemDescription,getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemImage:a.getItemImage||defaultGetItemImage,getItemHref:a.getItemHref||defaultGetItemHref,getItemOnClick:a.getItemOnClick||defaultGetItemOnClick})}
2
2
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/TileMenu/helpers.ts"],"names":["defaultGetItemImage","item","image","defaultGetItemTitle","title","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemDescription","description","withDefaultGetters","props","getItemDescription","getItemTitle","getItemImage","getItemHref","getItemOnClick"],"mappings":"+DAUA,MAAO,MAAMA,CAAAA,mBAA0D,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAAhF,CACP,MAAO,MAAMC,CAAAA,mBAA0D,CAAGF,CAAI,EAAIA,CAAI,CAACG,KAAhF,CACP,MAAO,MAAMC,CAAAA,kBAAwD,CAAGJ,CAAI,EAAIA,CAAI,CAACK,IAA9E,CACP,MAAO,MAAMC,CAAAA,qBAA8D,CAAGN,CAAI,EAAIA,CAAI,CAACO,OAApF,CACP,MAAO,MAAMC,CAAAA,yBAAsE,CAAGR,CAAI,EACxFA,CAAI,CAACS,WADA,CAGP,MAAO,SAASC,CAAAA,kBAAT,CAAkCC,CAAlC,CAAkE,CACvE,wBACKA,CADL,EAEEC,kBAAkB,CAAED,CAAK,CAACC,kBAAN,EAA4BJ,yBAFlD,CAGEK,YAAY,CAAEF,CAAK,CAACE,YAAN,EAAsBX,mBAHtC,CAIEY,YAAY,CAAEH,CAAK,CAACG,YAAN,EAAsBf,mBAJtC,CAKEgB,WAAW,CAAEJ,CAAK,CAACI,WAAN,EAAqBX,kBALpC,CAMEY,cAAc,CAAEL,CAAK,CAACK,cAAN,EAAwBV,qBAN1C,EAQD","sourcesContent":["import {\n TileMenuPropGetItemDescription,\n TileMenuPropGetItemImage,\n TileMenuPropGetItemTitle,\n DefaultItem,\n TileMenuListProps,\n TileMenuPropGetItemHref,\n TileMenuPropGetItemOnClick,\n} from './types'\n\nexport const defaultGetItemImage: TileMenuPropGetItemImage<DefaultItem> = item => item.image\nexport const defaultGetItemTitle: TileMenuPropGetItemTitle<DefaultItem> = item => item.title\nexport const defaultGetItemHref: TileMenuPropGetItemHref<DefaultItem> = item => item.href\nexport const defaultGetItemOnClick: TileMenuPropGetItemOnClick<DefaultItem> = item => item.onClick\nexport const defaultGetItemDescription: TileMenuPropGetItemDescription<DefaultItem> = item =>\n item.description\n\nexport function withDefaultGetters<ITEM>(props: TileMenuListProps<ITEM>) {\n return {\n ...props,\n getItemDescription: props.getItemDescription || defaultGetItemDescription,\n getItemTitle: props.getItemTitle || defaultGetItemTitle,\n getItemImage: props.getItemImage || defaultGetItemImage,\n getItemHref: props.getItemHref || defaultGetItemHref,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n }\n}\n"],"file":"helpers.js"}
1
+ {"version":3,"sources":["../../src/TileMenu/helpers.ts"],"names":["defaultGetItemImage","item","image","defaultGetItemLabel","label","defaultGetItemHref","href","defaultGetItemOnClick","onClick","defaultGetItemDescription","description","withDefaultGetters","props","getItemDescription","getItemLabel","getItemImage","getItemHref","getItemOnClick"],"mappings":"+DAUA,MAAO,MAAMA,CAAAA,mBAA0D,CAAGC,CAAI,EAAIA,CAAI,CAACC,KAAhF,CACP,MAAO,MAAMC,CAAAA,mBAA0D,CAAGF,CAAI,EAAIA,CAAI,CAACG,KAAhF,CACP,MAAO,MAAMC,CAAAA,kBAAwD,CAAGJ,CAAI,EAAIA,CAAI,CAACK,IAA9E,CACP,MAAO,MAAMC,CAAAA,qBAA8D,CAAGN,CAAI,EAAIA,CAAI,CAACO,OAApF,CACP,MAAO,MAAMC,CAAAA,yBAAsE,CAAGR,CAAI,EACxFA,CAAI,CAACS,WADA,CAGP,MAAO,SAASC,CAAAA,kBAAT,CAAkCC,CAAlC,CAAkE,CACvE,wBACKA,CADL,EAEEC,kBAAkB,CAAED,CAAK,CAACC,kBAAN,EAA4BJ,yBAFlD,CAGEK,YAAY,CAAEF,CAAK,CAACE,YAAN,EAAsBX,mBAHtC,CAIEY,YAAY,CAAEH,CAAK,CAACG,YAAN,EAAsBf,mBAJtC,CAKEgB,WAAW,CAAEJ,CAAK,CAACI,WAAN,EAAqBX,kBALpC,CAMEY,cAAc,CAAEL,CAAK,CAACK,cAAN,EAAwBV,qBAN1C,EAQD","sourcesContent":["import {\n TileMenuPropGetItemDescription,\n TileMenuPropGetItemImage,\n TileMenuPropGetItemLabel,\n DefaultItem,\n TileMenuListProps,\n TileMenuPropGetItemHref,\n TileMenuPropGetItemOnClick,\n} from './types'\n\nexport const defaultGetItemImage: TileMenuPropGetItemImage<DefaultItem> = item => item.image\nexport const defaultGetItemLabel: TileMenuPropGetItemLabel<DefaultItem> = item => item.label\nexport const defaultGetItemHref: TileMenuPropGetItemHref<DefaultItem> = item => item.href\nexport const defaultGetItemOnClick: TileMenuPropGetItemOnClick<DefaultItem> = item => item.onClick\nexport const defaultGetItemDescription: TileMenuPropGetItemDescription<DefaultItem> = item =>\n item.description\n\nexport function withDefaultGetters<ITEM>(props: TileMenuListProps<ITEM>) {\n return {\n ...props,\n getItemDescription: props.getItemDescription || defaultGetItemDescription,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemImage: props.getItemImage || defaultGetItemImage,\n getItemHref: props.getItemHref || defaultGetItemHref,\n getItemOnClick: props.getItemOnClick || defaultGetItemOnClick,\n }\n}\n"],"file":"helpers.js"}
@@ -4,14 +4,14 @@ 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
6
  export declare type DefaultItem = {
7
- title: string;
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,7 +29,7 @@ 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>;
@@ -38,9 +38,9 @@ export declare type TileMenuProps<ITEM = DefaultItem> = PropsWithHTMLAttributesA
38
38
  listClassName?: string;
39
39
  title?: string;
40
40
  }, HTMLButtonElement> & (ITEM extends {
41
- title: DefaultItem['title'];
41
+ label: DefaultItem['label'];
42
42
  } ? {} : {
43
- getItemTitle: TileMenuPropGetItemTitle<ITEM>;
43
+ getItemLabel: TileMenuPropGetItemLabel<ITEM>;
44
44
  });
45
45
  export declare type TileMenuListProps<ITEM = DefaultItem> = PropsWithHTMLAttributes<CommonProps<ITEM>, HTMLDivElement>;
46
46
  export declare type TileMenuListComponent = <ITEM = DefaultItem>(props: TileMenuListProps<ITEM>) => React.ReactElement | null;
@@ -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 DefaultItem = {\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 = DefaultItem> = PropsWithHTMLAttributesAndRef<\n CommonProps<ITEM> & { listClassName?: string; title?: string },\n HTMLButtonElement\n> &\n (ITEM extends { label: DefaultItem['label'] }\n ? {}\n : { getItemLabel: TileMenuPropGetItemLabel<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,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