@progress/kendo-react-layout 7.2.4-develop.3 → 7.2.4-develop.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actionsheet/ActionSheet.js +8 -0
- package/actionsheet/ActionSheet.mjs +184 -0
- package/actionsheet/ActionSheetContent.js +8 -0
- package/actionsheet/ActionSheetContent.mjs +32 -0
- package/actionsheet/ActionSheetFooter.js +8 -0
- package/actionsheet/ActionSheetFooter.mjs +32 -0
- package/actionsheet/ActionSheetHeader.js +8 -0
- package/actionsheet/ActionSheetHeader.mjs +32 -0
- package/actionsheet/ActionSheetItem.js +8 -0
- package/actionsheet/ActionSheetItem.mjs +52 -0
- package/appbar/AppBar.js +8 -0
- package/appbar/AppBar.mjs +86 -0
- package/appbar/AppBarSection.js +8 -0
- package/appbar/AppBarSection.mjs +47 -0
- package/appbar/AppBarSpacer.js +8 -0
- package/appbar/AppBarSpacer.mjs +55 -0
- package/bottomnavigation/BottomNavigation.js +8 -0
- package/bottomnavigation/BottomNavigation.mjs +160 -0
- package/bottomnavigation/BottomNavigationItem.js +8 -0
- package/bottomnavigation/BottomNavigationItem.mjs +93 -0
- package/bottomnavigation/models/utils.js +8 -0
- package/bottomnavigation/models/utils.mjs +19 -0
- package/breadcrumb/Breadcrumb.js +8 -0
- package/breadcrumb/Breadcrumb.mjs +158 -0
- package/breadcrumb/BreadcrumbDelimiter.js +8 -0
- package/breadcrumb/BreadcrumbDelimiter.mjs +48 -0
- package/breadcrumb/BreadcrumbLink.js +8 -0
- package/breadcrumb/BreadcrumbLink.mjs +82 -0
- package/breadcrumb/BreadcrumbListItem.js +8 -0
- package/breadcrumb/BreadcrumbListItem.mjs +52 -0
- package/breadcrumb/BreadcrumbOrderedList.js +8 -0
- package/breadcrumb/BreadcrumbOrderedList.mjs +67 -0
- package/card/Avatar.js +8 -0
- package/card/Avatar.mjs +53 -0
- package/card/Card.js +8 -0
- package/card/Card.mjs +52 -0
- package/card/CardActions.js +8 -0
- package/card/CardActions.mjs +40 -0
- package/card/CardBody.js +8 -0
- package/card/CardBody.mjs +28 -0
- package/card/CardFooter.js +8 -0
- package/card/CardFooter.mjs +28 -0
- package/card/CardHeader.js +8 -0
- package/card/CardHeader.mjs +28 -0
- package/card/CardImage.js +8 -0
- package/card/CardImage.mjs +36 -0
- package/card/CardSubtitle.js +8 -0
- package/card/CardSubtitle.mjs +28 -0
- package/card/CardTitle.js +8 -0
- package/card/CardTitle.mjs +28 -0
- package/card/interfaces/Enums.js +8 -0
- package/card/interfaces/Enums.mjs +15 -0
- package/contextmenu/ContextMenu.js +8 -0
- package/contextmenu/ContextMenu.mjs +48 -0
- package/dist/cdn/js/kendo-react-layout.js +8 -5
- package/drawer/Drawer.js +8 -0
- package/drawer/Drawer.mjs +130 -0
- package/drawer/DrawerContent.js +8 -0
- package/drawer/DrawerContent.mjs +33 -0
- package/drawer/DrawerItem.js +8 -0
- package/drawer/DrawerItem.mjs +89 -0
- package/drawer/DrawerNavigation.js +8 -0
- package/drawer/DrawerNavigation.mjs +132 -0
- package/drawer/context/DrawerContext.js +8 -0
- package/drawer/context/DrawerContext.mjs +22 -0
- package/expansionpanel/ExpansionPanel.js +8 -0
- package/expansionpanel/ExpansionPanel.mjs +116 -0
- package/expansionpanel/ExpansionPanelContent.js +8 -0
- package/expansionpanel/ExpansionPanelContent.mjs +23 -0
- package/gridlayout/GridLayout.js +8 -0
- package/gridlayout/GridLayout.mjs +83 -0
- package/gridlayout/GridLayoutItem.js +8 -0
- package/gridlayout/GridLayoutItem.mjs +46 -0
- package/index.d.mts +4593 -5
- package/index.d.ts +4593 -103
- package/index.js +8 -5
- package/index.mjs +139 -5037
- package/menu/components/Menu.js +8 -0
- package/menu/components/Menu.mjs +193 -0
- package/menu/components/MenuItem.js +8 -0
- package/menu/components/MenuItem.mjs +34 -0
- package/menu/components/MenuItemArrow.js +8 -0
- package/menu/components/MenuItemArrow.mjs +49 -0
- package/menu/components/MenuItemInternal.js +8 -0
- package/menu/components/MenuItemInternal.mjs +222 -0
- package/menu/components/MenuItemLink.js +8 -0
- package/menu/components/MenuItemLink.mjs +54 -0
- package/menu/consts.js +8 -0
- package/menu/consts.mjs +59 -0
- package/menu/utils/DirectionHolder.js +8 -0
- package/menu/utils/DirectionHolder.mjs +25 -0
- package/menu/utils/MouseOverHandler.js +8 -0
- package/menu/utils/MouseOverHandler.mjs +34 -0
- package/menu/utils/getNewItemIdUponKeyboardNavigation.js +8 -0
- package/menu/utils/getNewItemIdUponKeyboardNavigation.mjs +124 -0
- package/menu/utils/hoverDelay.js +8 -0
- package/menu/utils/hoverDelay.mjs +18 -0
- package/menu/utils/itemsIdsUtils.js +8 -0
- package/menu/utils/itemsIdsUtils.mjs +81 -0
- package/menu/utils/misc.js +8 -0
- package/menu/utils/misc.mjs +29 -0
- package/menu/utils/prepareInputItemsForInternalWork.js +8 -0
- package/menu/utils/prepareInputItemsForInternalWork.mjs +59 -0
- package/package-metadata.js +8 -0
- package/package-metadata.mjs +19 -0
- package/package.json +6 -6
- package/panelbar/PanelBar.js +8 -0
- package/panelbar/PanelBar.mjs +195 -0
- package/panelbar/PanelBarItem.js +8 -0
- package/panelbar/PanelBarItem.mjs +148 -0
- package/panelbar/interfaces/NavigationAction.js +8 -0
- package/panelbar/interfaces/NavigationAction.mjs +12 -0
- package/panelbar/util.js +8 -0
- package/panelbar/util.mjs +122 -0
- package/splitter/Splitter.js +8 -0
- package/splitter/Splitter.mjs +238 -0
- package/splitter/SplitterBar.js +8 -0
- package/splitter/SplitterBar.mjs +129 -0
- package/splitter/SplitterPane.js +8 -0
- package/splitter/SplitterPane.mjs +50 -0
- package/splitter/messages/index.js +8 -0
- package/splitter/messages/index.mjs +15 -0
- package/stacklayout/StackLayout.js +8 -0
- package/stacklayout/StackLayout.mjs +84 -0
- package/stepper/Step.js +8 -0
- package/stepper/Step.mjs +177 -0
- package/stepper/Stepper.js +8 -0
- package/stepper/Stepper.mjs +252 -0
- package/stepper/contants.js +8 -0
- package/stepper/contants.mjs +13 -0
- package/stepper/context/StepperContext.js +8 -0
- package/stepper/context/StepperContext.mjs +17 -0
- package/stepper/messages/index.js +8 -0
- package/stepper/messages/index.mjs +17 -0
- package/tabstrip/TabStrip.js +8 -0
- package/tabstrip/TabStrip.mjs +163 -0
- package/tabstrip/TabStripContent.js +8 -0
- package/tabstrip/TabStripContent.mjs +81 -0
- package/tabstrip/TabStripNavigation.js +8 -0
- package/tabstrip/TabStripNavigation.mjs +171 -0
- package/tabstrip/TabStripNavigationItem.js +8 -0
- package/tabstrip/TabStripNavigationItem.mjs +55 -0
- package/tabstrip/TabStripTab.js +8 -0
- package/tabstrip/TabStripTab.mjs +35 -0
- package/tilelayout/InternalTile.js +8 -0
- package/tilelayout/InternalTile.mjs +203 -0
- package/tilelayout/ResizeHandlers.js +8 -0
- package/tilelayout/ResizeHandlers.mjs +53 -0
- package/tilelayout/TileLayout.js +8 -0
- package/tilelayout/TileLayout.mjs +122 -0
- package/timeline/Timeline.js +8 -0
- package/timeline/Timeline.mjs +79 -0
- package/timeline/TimelineCard.js +8 -0
- package/timeline/TimelineCard.mjs +109 -0
- package/timeline/TimelineHorizontal.js +8 -0
- package/timeline/TimelineHorizontal.mjs +239 -0
- package/timeline/TimelineVertical.js +8 -0
- package/timeline/TimelineVertical.mjs +78 -0
- package/timeline/utils.js +8 -0
- package/timeline/utils.mjs +16 -0
- package/actionsheet/ActionSheet.d.ts +0 -138
- package/actionsheet/ActionSheetContent.d.ts +0 -14
- package/actionsheet/ActionSheetFooter.d.ts +0 -14
- package/actionsheet/ActionSheetHeader.d.ts +0 -14
- package/actionsheet/ActionSheetItem.d.ts +0 -10
- package/actionsheet/interfaces/ActionSheetChildrenProps.d.ts +0 -17
- package/actionsheet/interfaces/ActionSheetItemProps.d.ts +0 -70
- package/appbar/AppBar.d.ts +0 -54
- package/appbar/AppBarSection.d.ts +0 -53
- package/appbar/AppBarSpacer.d.ts +0 -54
- package/appbar/interfaces/AppBarProps.d.ts +0 -83
- package/appbar/interfaces/AppBarSectionProps.d.ts +0 -22
- package/appbar/interfaces/AppBarSpacerProps.d.ts +0 -23
- package/bottomnavigation/BottomNavigation.d.ts +0 -42
- package/bottomnavigation/BottomNavigationItem.d.ts +0 -16
- package/bottomnavigation/BottomNavigationItemProps.d.ts +0 -64
- package/bottomnavigation/BottomNavigationProps.d.ts +0 -157
- package/bottomnavigation/models/events.d.ts +0 -24
- package/bottomnavigation/models/utils.d.ts +0 -40
- package/breadcrumb/Breadcrumb.d.ts +0 -163
- package/breadcrumb/BreadcrumbDelimiter.d.ts +0 -47
- package/breadcrumb/BreadcrumbLink.d.ts +0 -135
- package/breadcrumb/BreadcrumbListItem.d.ts +0 -55
- package/breadcrumb/BreadcrumbOrderedList.d.ts +0 -59
- package/card/Avatar.d.ts +0 -7
- package/card/Card.d.ts +0 -8
- package/card/CardActions.d.ts +0 -7
- package/card/CardBody.d.ts +0 -7
- package/card/CardFooter.d.ts +0 -7
- package/card/CardHeader.d.ts +0 -7
- package/card/CardImage.d.ts +0 -7
- package/card/CardSubtitle.d.ts +0 -7
- package/card/CardTitle.d.ts +0 -7
- package/card/interfaces/AvatarProps.d.ts +0 -88
- package/card/interfaces/CardActionsProps.d.ts +0 -38
- package/card/interfaces/CardBodyProps.d.ts +0 -18
- package/card/interfaces/CardFooterProps.d.ts +0 -18
- package/card/interfaces/CardHandle.d.ts +0 -18
- package/card/interfaces/CardHeaderProps.d.ts +0 -18
- package/card/interfaces/CardImageProps.d.ts +0 -22
- package/card/interfaces/CardProps.d.ts +0 -48
- package/card/interfaces/CardSubtitleProps.d.ts +0 -18
- package/card/interfaces/CardTitleProps.d.ts +0 -18
- package/card/interfaces/Enums.d.ts +0 -27
- package/contextmenu/ContextMenu.d.ts +0 -31
- package/drawer/Drawer.d.ts +0 -44
- package/drawer/DrawerContent.d.ts +0 -43
- package/drawer/DrawerItem.d.ts +0 -36
- package/drawer/DrawerNavigation.d.ts +0 -47
- package/drawer/context/DrawerContext.d.ts +0 -24
- package/drawer/interfaces/DrawerAnimation.d.ts +0 -18
- package/drawer/interfaces/DrawerContentProps.d.ts +0 -21
- package/drawer/interfaces/DrawerItemHandle.d.ts +0 -21
- package/drawer/interfaces/DrawerItemProps.d.ts +0 -64
- package/drawer/interfaces/DrawerNavigationProps.d.ts +0 -21
- package/drawer/interfaces/DrawerProps.d.ts +0 -86
- package/drawer/interfaces/DrawerSelectEvent.d.ts +0 -19
- package/expansionpanel/ExpansionPanel.d.ts +0 -10
- package/expansionpanel/ExpansionPanelContent.d.ts +0 -9
- package/expansionpanel/index.d.ts +0 -7
- package/expansionpanel/interfaces.d.ts +0 -92
- package/gridlayout/GridLayout.d.ts +0 -43
- package/gridlayout/GridLayoutItem.d.ts +0 -42
- package/gridlayout/interfaces/GridLayoutColumnProps.d.ts +0 -13
- package/gridlayout/interfaces/GridLayoutItemProps.d.ts +0 -44
- package/gridlayout/interfaces/GridLayoutProps.d.ts +0 -99
- package/gridlayout/interfaces/GridLayoutRowProps.d.ts +0 -13
- package/menu/BaseMenuItemInternalProps.d.ts +0 -24
- package/menu/MenuProps.d.ts +0 -75
- package/menu/components/Menu.d.ts +0 -118
- package/menu/components/MenuItem.d.ts +0 -33
- package/menu/components/MenuItemArrow.d.ts +0 -50
- package/menu/components/MenuItemInternal.d.ts +0 -63
- package/menu/components/MenuItemLink.d.ts +0 -34
- package/menu/consts.d.ts +0 -58
- package/menu/events.d.ts +0 -20
- package/menu/models/BaseMenuItem.d.ts +0 -58
- package/menu/models/MenuItemModel.d.ts +0 -23
- package/menu/utils/DirectionHolder.d.ts +0 -15
- package/menu/utils/MouseOverHandler.d.ts +0 -21
- package/menu/utils/getNewItemIdUponKeyboardNavigation.d.ts +0 -11
- package/menu/utils/hoverDelay.d.ts +0 -13
- package/menu/utils/itemsIdsUtils.d.ts +0 -68
- package/menu/utils/misc.d.ts +0 -20
- package/menu/utils/prepareInputItemsForInternalWork.d.ts +0 -10
- package/package-metadata.d.ts +0 -9
- package/panelbar/PanelBar.d.ts +0 -81
- package/panelbar/PanelBarItem.d.ts +0 -52
- package/panelbar/interfaces/NavigationAction.d.ts +0 -12
- package/panelbar/interfaces/PanelBarItemClickEventArguments.d.ts +0 -12
- package/panelbar/interfaces/PanelBarItemProps.d.ts +0 -98
- package/panelbar/interfaces/PanelBarProps.d.ts +0 -66
- package/panelbar/interfaces/PanelBarSelectEventArguments.d.ts +0 -18
- package/panelbar/interfaces/RenderPanelBarItem.d.ts +0 -19
- package/panelbar/util.d.ts +0 -56
- package/splitter/Splitter.d.ts +0 -136
- package/splitter/SplitterBar.d.ts +0 -44
- package/splitter/SplitterPane.d.ts +0 -57
- package/splitter/messages/index.d.ts +0 -14
- package/stacklayout/StackLayout.d.ts +0 -41
- package/stacklayout/StackLayoutProps.d.ts +0 -92
- package/stepper/Step.d.ts +0 -27
- package/stepper/Stepper.d.ts +0 -27
- package/stepper/contants.d.ts +0 -12
- package/stepper/context/StepperContext.d.ts +0 -27
- package/stepper/interfaces/StepChangeEvent.d.ts +0 -15
- package/stepper/interfaces/StepFocusEvent.d.ts +0 -11
- package/stepper/interfaces/StepHandle.d.ts +0 -17
- package/stepper/interfaces/StepProps.d.ts +0 -83
- package/stepper/interfaces/StepperChangeEvent.d.ts +0 -15
- package/stepper/interfaces/StepperFocusEvent.d.ts +0 -11
- package/stepper/interfaces/StepperHandle.d.ts +0 -17
- package/stepper/interfaces/StepperProps.d.ts +0 -98
- package/stepper/messages/index.d.ts +0 -19
- package/tabstrip/TabStrip.d.ts +0 -158
- package/tabstrip/TabStripContent.d.ts +0 -62
- package/tabstrip/TabStripNavigation.d.ts +0 -110
- package/tabstrip/TabStripNavigationItem.d.ts +0 -75
- package/tabstrip/TabStripTab.d.ts +0 -42
- package/tilelayout/InternalTile.d.ts +0 -94
- package/tilelayout/ResizeHandlers.d.ts +0 -24
- package/tilelayout/TileLayout.d.ts +0 -153
- package/tilelayout/interfaces/index.d.ts +0 -145
- package/timeline/Timeline.d.ts +0 -102
- package/timeline/TimelineCard.d.ts +0 -38
- package/timeline/TimelineHorizontal.d.ts +0 -7
- package/timeline/TimelineVertical.d.ts +0 -16
- package/timeline/utils.d.ts +0 -19
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),r=require("prop-types"),n=require("@progress/kendo-react-common"),i=require("../utils/itemsIdsUtils.js"),c=require("../utils/prepareInputItemsForInternalWork.js"),p=require("../utils/getNewItemIdUponKeyboardNavigation.js"),m=require("../utils/hoverDelay.js"),v=require("./MenuItemInternal.js"),f=require("../utils/DirectionHolder.js"),b=require("../utils/MouseOverHandler.js"),g=require("../../package-metadata.js");function D(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const e in a)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(a,e);Object.defineProperty(t,e,s.get?s:{enumerable:!0,get:()=>a[e]})}}return t.default=a,Object.freeze(t)}const d=D(u),h={focusedItemId:i.EMPTY_ID,hoveredItemId:i.EMPTY_ID,tabbableItemId:i.ZERO_LEVEL_ZERO_ITEM_ID},l=class l extends d.Component{constructor(t){super(t),this.menuWrapperEl=null,this.directionHolder=new f.DirectionHolder,this.inputItems=[],this.items=[],this.reset=()=>{this.clearItemHoverAndLeaveRequestsIfApplicable(),this.setState(h)},this.onKeyDown=e=>{if(this.state.focusedItemId!==i.EMPTY_ID){const s=i.getItemById(this.state.focusedItemId,this.items),o=p.getNewItemIdUponKeyboardNavigation(this.items,s.id,e.keyCode,e.key,this.props.vertical,this.directionHolder.getIsDirectionRightToLeft());s.id!==o&&(e.preventDefault(),this.setFocusedItemId(o)),(e.keyCode===n.Keys.enter||e.keyCode===n.Keys.space)&&!s.disabled&&(this.mouseOverHandler.handleItemSelectedViaKeyboard(),this.dispatchSelectEventIfWired(e,s.id),!e.isDefaultPrevented()&&s.items.length===0&&s.url&&window.location.assign(s.url))}e.keyCode===n.Keys.esc&&this.props.onClose&&this.props.onClose.call(void 0,e)},this.onItemMouseOver=e=>{this.mouseOverHandler.IsMouseOverEnabled&&(this.clearItemHoverAndLeaveRequestsIfApplicable(),this.itemHoverRequest=window.setTimeout(()=>{this.setHoveredItemId(e),this.itemHoverRequest=null},m.getHoverOpenDelay(this.props)))},this.onItemMouseLeave=e=>{this.mouseOverHandler.IsMouseOverEnabled&&this.isItemWithDefaultClose(e)&&(this.clearItemHoverAndLeaveRequestsIfApplicable(),this.itemLeaveRequest=window.setTimeout(()=>{this.setHoveredItemId(i.EMPTY_ID),this.itemLeaveRequest=null},m.getHoverCloseDelay(this.props)))},this.onItemMouseDown=()=>{this.mouseOverHandler.handleItemMouseDown()},this.onItemFocus=e=>{this.setFocusedItemId(e),this.mouseOverHandler.handleItemFocus()},this.onItemClick=(e,s)=>{const o=i.getItemById(s,this.items);o.disabled||(this.setFocusedItemId(s),this.mouseOverHandler.handleItemClick(s,this.isItemWithDefaultClose(s)),this.dispatchSelectEventIfWired(e,s),!e.isDefaultPrevented()&&o.url&&window.location.assign(o.url))},this.onItemBlur=(e,s)=>{if(this.isItemWithDefaultClose(e)&&this.setFocusedItemId(i.EMPTY_ID),s.relatedTarget&&s.relatedTarget.nodeName==="LI"){const o=s.relatedTarget.getAttribute("id");if(o&&o.includes(this.menuItemId))return}this.props.onClose&&this.props.onClose.call(void 0,s)},this.getInputItem=e=>i.getItemById(e,this.inputItems),n.validatePackage(g.packageMetadata),this.mouseOverHandler=new b.MouseOverHandler(this.props.openOnClick,this.reset,this.onItemMouseOver),this.state=Object.assign({},h,{isFirstRender:!0})}get menuItemId(){return this.props.id}get element(){return this.menuWrapperEl}render(){this.prepareItems(),this.state.isFirstRender||this.directionHolder.setIsDirectionRightToLeft(this.checkIsDirectionRightToLeft());let t=this.state.hoveredItemId?this.state.hoveredItemId:this.state.focusedItemId?i.getDirectParentId(this.state.focusedItemId):i.EMPTY_ID;return d.createElement("div",{id:this.props.id,onKeyDown:this.onKeyDown,style:this.props.style,className:this.directionHolder.getIsDirectionRightToLeft()?"k-rtl":void 0,ref:e=>this.menuWrapperEl=e},d.createElement(v.MenuItemInternalsList,{className:this.getMenuClassName(),"aria-orientation":this.props.vertical?"vertical":void 0,items:this.items,isMenuVertical:this.props.vertical,isDirectionRightToLeft:this.directionHolder.getIsDirectionRightToLeft(),focusedItemId:this.state.focusedItemId,lastItemIdToBeOpened:t,tabbableItemId:this.state.tabbableItemId,itemRender:this.props.itemRender,linkRender:this.props.linkRender,menuGuid:this.menuItemId,onMouseLeave:this.onItemMouseLeave,onMouseOver:this.onItemMouseOver,onMouseDown:this.onItemMouseDown,onFocus:this.onItemFocus,onClick:this.onItemClick,onBlur:this.onItemBlur,onOriginalItemNeeded:this.getInputItem,role:this.props.role}))}componentDidMount(){this.setState({isFirstRender:!1})}componentDidUpdate(t){(!!t.vertical!=!!this.props.vertical||this.directionHolder.hasDirectionChanged())&&this.reset(),this.mouseOverHandler.OpenOnClick=this.props.openOnClick}componentWillUnmount(){this.clearItemHoverAndLeaveRequestsIfApplicable()}setFocusedItemId(t){this.setState(e=>{const s=t===i.EMPTY_ID?e.tabbableItemId:i.getRootParentId(t);return{hoveredItemId:t===i.EMPTY_ID||i.isIdEmptyOrZeroLevel(e.hoveredItemId)&&i.isIdEmptyOrZeroLevel(t)?e.hoveredItemId:i.EMPTY_ID,focusedItemId:t,tabbableItemId:s}})}setHoveredItemId(t){this.setState(e=>i.isIdEmptyOrZeroLevel(t)&&i.isIdEmptyOrZeroLevel(e.focusedItemId)?{hoveredItemId:t,focusedItemId:e.focusedItemId,tabbableItemId:e.tabbableItemId}:{hoveredItemId:t,focusedItemId:i.EMPTY_ID,tabbableItemId:i.ZERO_LEVEL_ZERO_ITEM_ID})}getMenuClassName(){return n.classNames("k-reset","k-header","k-menu",{"k-menu-horizontal":!this.props.vertical},{"k-menu-vertical":this.props.vertical},this.props.className)}clearItemHoverAndLeaveRequestsIfApplicable(){this.itemHoverRequest&&(clearTimeout(this.itemHoverRequest),this.itemHoverRequest=null),this.itemLeaveRequest&&(clearTimeout(this.itemLeaveRequest),this.itemLeaveRequest=null)}isItemWithDefaultClose(t){return!this.props.customCloseItemIds||this.props.customCloseItemIds.indexOf(t)===-1}checkIsDirectionRightToLeft(){return!!(this.props.dir!==void 0?this.props.dir==="rtl":this.menuWrapperEl&&getComputedStyle(this.menuWrapperEl).direction==="rtl")}prepareItems(){const{items:t,inputItems:e}=c.prepareInputItemsForInternalWork(this.props.items,this.props.children);this.items=t,this.inputItems=e}dispatchSelectEventIfWired(t,e){n.dispatchEvent(this.props.onSelect,t,this,{item:this.getInputItem(e),itemId:e})}};l.propTypes={vertical:r.bool,items:r.arrayOf(r.object),style:r.object,dir:r.string,hoverOpenDelay:r.number,hoverCloseDelay:r.number,openOnClick:r.bool,itemRender:r.any,linkRender:r.any,customCloseItemIds:r.arrayOf(r.string),onSelect:r.func,role:r.string},l.defaultProps={vertical:!1};let I=l;exports.Menu=I;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as l from "react";
|
|
10
|
+
import i from "prop-types";
|
|
11
|
+
import { Keys as m, validatePackage as u, classNames as c, dispatchEvent as f } from "@progress/kendo-react-common";
|
|
12
|
+
import { EMPTY_ID as r, getItemById as d, getDirectParentId as v, getRootParentId as b, isIdEmptyOrZeroLevel as n, ZERO_LEVEL_ZERO_ITEM_ID as p } from "../utils/itemsIdsUtils.mjs";
|
|
13
|
+
import { prepareInputItemsForInternalWork as g } from "../utils/prepareInputItemsForInternalWork.mjs";
|
|
14
|
+
import { getNewItemIdUponKeyboardNavigation as R } from "../utils/getNewItemIdUponKeyboardNavigation.mjs";
|
|
15
|
+
import { getHoverOpenDelay as D, getHoverCloseDelay as H } from "../utils/hoverDelay.mjs";
|
|
16
|
+
import { MenuItemInternalsList as O } from "./MenuItemInternal.mjs";
|
|
17
|
+
import { DirectionHolder as C } from "../utils/DirectionHolder.mjs";
|
|
18
|
+
import { MouseOverHandler as k } from "../utils/MouseOverHandler.mjs";
|
|
19
|
+
import { packageMetadata as y } from "../../package-metadata.mjs";
|
|
20
|
+
const h = {
|
|
21
|
+
focusedItemId: r,
|
|
22
|
+
hoveredItemId: r,
|
|
23
|
+
tabbableItemId: p
|
|
24
|
+
}, a = class a extends l.Component {
|
|
25
|
+
constructor(t) {
|
|
26
|
+
super(t), this.menuWrapperEl = null, this.directionHolder = new C(), this.inputItems = [], this.items = [], this.reset = () => {
|
|
27
|
+
this.clearItemHoverAndLeaveRequestsIfApplicable(), this.setState(h);
|
|
28
|
+
}, this.onKeyDown = (e) => {
|
|
29
|
+
if (this.state.focusedItemId !== r) {
|
|
30
|
+
const s = d(this.state.focusedItemId, this.items), o = R(
|
|
31
|
+
this.items,
|
|
32
|
+
s.id,
|
|
33
|
+
e.keyCode,
|
|
34
|
+
e.key,
|
|
35
|
+
this.props.vertical,
|
|
36
|
+
this.directionHolder.getIsDirectionRightToLeft()
|
|
37
|
+
);
|
|
38
|
+
s.id !== o && (e.preventDefault(), this.setFocusedItemId(o)), (e.keyCode === m.enter || e.keyCode === m.space) && !s.disabled && (this.mouseOverHandler.handleItemSelectedViaKeyboard(), this.dispatchSelectEventIfWired(e, s.id), !e.isDefaultPrevented() && s.items.length === 0 && s.url && window.location.assign(s.url));
|
|
39
|
+
}
|
|
40
|
+
e.keyCode === m.esc && this.props.onClose && this.props.onClose.call(void 0, e);
|
|
41
|
+
}, this.onItemMouseOver = (e) => {
|
|
42
|
+
this.mouseOverHandler.IsMouseOverEnabled && (this.clearItemHoverAndLeaveRequestsIfApplicable(), this.itemHoverRequest = window.setTimeout(
|
|
43
|
+
() => {
|
|
44
|
+
this.setHoveredItemId(e), this.itemHoverRequest = null;
|
|
45
|
+
},
|
|
46
|
+
D(this.props)
|
|
47
|
+
));
|
|
48
|
+
}, this.onItemMouseLeave = (e) => {
|
|
49
|
+
this.mouseOverHandler.IsMouseOverEnabled && this.isItemWithDefaultClose(e) && (this.clearItemHoverAndLeaveRequestsIfApplicable(), this.itemLeaveRequest = window.setTimeout(
|
|
50
|
+
() => {
|
|
51
|
+
this.setHoveredItemId(r), this.itemLeaveRequest = null;
|
|
52
|
+
},
|
|
53
|
+
H(this.props)
|
|
54
|
+
));
|
|
55
|
+
}, this.onItemMouseDown = () => {
|
|
56
|
+
this.mouseOverHandler.handleItemMouseDown();
|
|
57
|
+
}, this.onItemFocus = (e) => {
|
|
58
|
+
this.setFocusedItemId(e), this.mouseOverHandler.handleItemFocus();
|
|
59
|
+
}, this.onItemClick = (e, s) => {
|
|
60
|
+
const o = d(s, this.items);
|
|
61
|
+
o.disabled || (this.setFocusedItemId(s), this.mouseOverHandler.handleItemClick(s, this.isItemWithDefaultClose(s)), this.dispatchSelectEventIfWired(e, s), !e.isDefaultPrevented() && o.url && window.location.assign(o.url));
|
|
62
|
+
}, this.onItemBlur = (e, s) => {
|
|
63
|
+
if (this.isItemWithDefaultClose(e) && this.setFocusedItemId(r), s.relatedTarget && s.relatedTarget.nodeName === "LI") {
|
|
64
|
+
const o = s.relatedTarget.getAttribute("id");
|
|
65
|
+
if (o && o.includes(this.menuItemId))
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
this.props.onClose && this.props.onClose.call(void 0, s);
|
|
69
|
+
}, this.getInputItem = (e) => d(e, this.inputItems), u(y), this.mouseOverHandler = new k(this.props.openOnClick, this.reset, this.onItemMouseOver), this.state = Object.assign({}, h, { isFirstRender: !0 });
|
|
70
|
+
}
|
|
71
|
+
get menuItemId() {
|
|
72
|
+
return this.props.id;
|
|
73
|
+
}
|
|
74
|
+
get element() {
|
|
75
|
+
return this.menuWrapperEl;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @hidden
|
|
79
|
+
*/
|
|
80
|
+
render() {
|
|
81
|
+
this.prepareItems(), this.state.isFirstRender || this.directionHolder.setIsDirectionRightToLeft(this.checkIsDirectionRightToLeft());
|
|
82
|
+
let t = this.state.hoveredItemId ? this.state.hoveredItemId : this.state.focusedItemId ? v(this.state.focusedItemId) : r;
|
|
83
|
+
return /* @__PURE__ */ l.createElement(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
id: this.props.id,
|
|
87
|
+
onKeyDown: this.onKeyDown,
|
|
88
|
+
style: this.props.style,
|
|
89
|
+
className: this.directionHolder.getIsDirectionRightToLeft() ? "k-rtl" : void 0,
|
|
90
|
+
ref: (e) => this.menuWrapperEl = e
|
|
91
|
+
},
|
|
92
|
+
/* @__PURE__ */ l.createElement(
|
|
93
|
+
O,
|
|
94
|
+
{
|
|
95
|
+
className: this.getMenuClassName(),
|
|
96
|
+
"aria-orientation": this.props.vertical ? "vertical" : void 0,
|
|
97
|
+
items: this.items,
|
|
98
|
+
isMenuVertical: this.props.vertical,
|
|
99
|
+
isDirectionRightToLeft: this.directionHolder.getIsDirectionRightToLeft(),
|
|
100
|
+
focusedItemId: this.state.focusedItemId,
|
|
101
|
+
lastItemIdToBeOpened: t,
|
|
102
|
+
tabbableItemId: this.state.tabbableItemId,
|
|
103
|
+
itemRender: this.props.itemRender,
|
|
104
|
+
linkRender: this.props.linkRender,
|
|
105
|
+
menuGuid: this.menuItemId,
|
|
106
|
+
onMouseLeave: this.onItemMouseLeave,
|
|
107
|
+
onMouseOver: this.onItemMouseOver,
|
|
108
|
+
onMouseDown: this.onItemMouseDown,
|
|
109
|
+
onFocus: this.onItemFocus,
|
|
110
|
+
onClick: this.onItemClick,
|
|
111
|
+
onBlur: this.onItemBlur,
|
|
112
|
+
onOriginalItemNeeded: this.getInputItem,
|
|
113
|
+
role: this.props.role
|
|
114
|
+
}
|
|
115
|
+
)
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @hidden
|
|
120
|
+
*/
|
|
121
|
+
componentDidMount() {
|
|
122
|
+
this.setState({ isFirstRender: !1 });
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @hidden
|
|
126
|
+
*/
|
|
127
|
+
componentDidUpdate(t) {
|
|
128
|
+
(!!t.vertical != !!this.props.vertical || this.directionHolder.hasDirectionChanged()) && this.reset(), this.mouseOverHandler.OpenOnClick = this.props.openOnClick;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @hidden
|
|
132
|
+
*/
|
|
133
|
+
componentWillUnmount() {
|
|
134
|
+
this.clearItemHoverAndLeaveRequestsIfApplicable();
|
|
135
|
+
}
|
|
136
|
+
setFocusedItemId(t) {
|
|
137
|
+
this.setState((e) => {
|
|
138
|
+
const s = t === r ? e.tabbableItemId : b(t);
|
|
139
|
+
return { hoveredItemId: t === r || n(e.hoveredItemId) && n(t) ? e.hoveredItemId : r, focusedItemId: t, tabbableItemId: s };
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
setHoveredItemId(t) {
|
|
143
|
+
this.setState((e) => n(t) && n(e.focusedItemId) ? {
|
|
144
|
+
hoveredItemId: t,
|
|
145
|
+
focusedItemId: e.focusedItemId,
|
|
146
|
+
tabbableItemId: e.tabbableItemId
|
|
147
|
+
} : { hoveredItemId: t, focusedItemId: r, tabbableItemId: p });
|
|
148
|
+
}
|
|
149
|
+
getMenuClassName() {
|
|
150
|
+
return c(
|
|
151
|
+
"k-reset",
|
|
152
|
+
"k-header",
|
|
153
|
+
"k-menu",
|
|
154
|
+
{ "k-menu-horizontal": !this.props.vertical },
|
|
155
|
+
{ "k-menu-vertical": this.props.vertical },
|
|
156
|
+
this.props.className
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
clearItemHoverAndLeaveRequestsIfApplicable() {
|
|
160
|
+
this.itemHoverRequest && (clearTimeout(this.itemHoverRequest), this.itemHoverRequest = null), this.itemLeaveRequest && (clearTimeout(this.itemLeaveRequest), this.itemLeaveRequest = null);
|
|
161
|
+
}
|
|
162
|
+
isItemWithDefaultClose(t) {
|
|
163
|
+
return !this.props.customCloseItemIds || this.props.customCloseItemIds.indexOf(t) === -1;
|
|
164
|
+
}
|
|
165
|
+
checkIsDirectionRightToLeft() {
|
|
166
|
+
return !!(this.props.dir !== void 0 ? this.props.dir === "rtl" : this.menuWrapperEl && getComputedStyle(this.menuWrapperEl).direction === "rtl");
|
|
167
|
+
}
|
|
168
|
+
prepareItems() {
|
|
169
|
+
const { items: t, inputItems: e } = g(this.props.items, this.props.children);
|
|
170
|
+
this.items = t, this.inputItems = e;
|
|
171
|
+
}
|
|
172
|
+
dispatchSelectEventIfWired(t, e) {
|
|
173
|
+
f(this.props.onSelect, t, this, { item: this.getInputItem(e), itemId: e });
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
a.propTypes = {
|
|
177
|
+
vertical: i.bool,
|
|
178
|
+
items: i.arrayOf(i.object),
|
|
179
|
+
style: i.object,
|
|
180
|
+
dir: i.string,
|
|
181
|
+
hoverOpenDelay: i.number,
|
|
182
|
+
hoverCloseDelay: i.number,
|
|
183
|
+
openOnClick: i.bool,
|
|
184
|
+
itemRender: i.any,
|
|
185
|
+
linkRender: i.any,
|
|
186
|
+
customCloseItemIds: i.arrayOf(i.string),
|
|
187
|
+
onSelect: i.func,
|
|
188
|
+
role: i.string
|
|
189
|
+
}, a.defaultProps = { vertical: !1 };
|
|
190
|
+
let I = a;
|
|
191
|
+
export {
|
|
192
|
+
I as Menu
|
|
193
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),e=require("prop-types");function i(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const c=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,c.get?c:{enumerable:!0,get:()=>t[n]})}}return r.default=t,Object.freeze(r)}const l=i(a),o=class o extends l.Component{render(){return null}};o.propTypes={text:e.string,url:e.string,icon:e.string,disabled:e.bool,cssClass:e.string,cssStyle:e.object,render:e.any,linkRender:e.any,contentRender:e.any,data:e.any};let s=o;exports.MenuItem=s;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as t from "react";
|
|
10
|
+
import n from "prop-types";
|
|
11
|
+
const r = class r extends t.Component {
|
|
12
|
+
/**
|
|
13
|
+
* @hidden
|
|
14
|
+
*/
|
|
15
|
+
render() {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
r.propTypes = {
|
|
20
|
+
text: n.string,
|
|
21
|
+
url: n.string,
|
|
22
|
+
icon: n.string,
|
|
23
|
+
disabled: n.bool,
|
|
24
|
+
cssClass: n.string,
|
|
25
|
+
cssStyle: n.object,
|
|
26
|
+
render: n.any,
|
|
27
|
+
linkRender: n.any,
|
|
28
|
+
contentRender: n.any,
|
|
29
|
+
data: n.any
|
|
30
|
+
};
|
|
31
|
+
let s = r;
|
|
32
|
+
export {
|
|
33
|
+
s as MenuItem
|
|
34
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),n=require("prop-types"),p=require("@progress/kendo-react-common"),o=require("@progress/kendo-svg-icons"),g=require("../utils/misc.js");function f(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const s=f(m),l="caret-alt-down",d="caret-alt-right",u="caret-alt-left",i=class i extends s.Component{render(){return s.createElement(p.IconWrap,{"aria-hidden":!0,...this.getIcon()})}getIcon(){switch(g.getChildrenPosition(this.props.itemId,this.props.verticalMenu===!0,this.props.dir==="rtl")){case"downward":return{name:l,icon:o.caretAltDownIcon};case"rightward":return{name:d,icon:o.caretAltRightIcon};case"leftward":return{name:u,icon:o.caretAltLeftIcon};default:return{}}}};i.propTypes={itemId:n.string,dir:n.string,verticalMenu:n.bool};let c=i;exports.MenuItemArrow=c;exports.downArrowName=l;exports.leftArrowName=u;exports.rightArrowName=d;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as e from "react";
|
|
10
|
+
import t from "prop-types";
|
|
11
|
+
import { IconWrap as n } from "@progress/kendo-react-common";
|
|
12
|
+
import { caretAltLeftIcon as i, caretAltRightIcon as a, caretAltDownIcon as c } from "@progress/kendo-svg-icons";
|
|
13
|
+
import { getChildrenPosition as s } from "../utils/misc.mjs";
|
|
14
|
+
const l = "caret-alt-down", p = "caret-alt-right", d = "caret-alt-left", r = class r extends e.Component {
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
render() {
|
|
19
|
+
return /* @__PURE__ */ e.createElement(n, { "aria-hidden": !0, ...this.getIcon() });
|
|
20
|
+
}
|
|
21
|
+
getIcon() {
|
|
22
|
+
switch (s(
|
|
23
|
+
this.props.itemId,
|
|
24
|
+
this.props.verticalMenu === !0,
|
|
25
|
+
this.props.dir === "rtl"
|
|
26
|
+
)) {
|
|
27
|
+
case "downward":
|
|
28
|
+
return { name: l, icon: c };
|
|
29
|
+
case "rightward":
|
|
30
|
+
return { name: p, icon: a };
|
|
31
|
+
case "leftward":
|
|
32
|
+
return { name: d, icon: i };
|
|
33
|
+
default:
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
r.propTypes = {
|
|
39
|
+
itemId: t.string,
|
|
40
|
+
dir: t.string,
|
|
41
|
+
verticalMenu: t.bool
|
|
42
|
+
};
|
|
43
|
+
let o = r;
|
|
44
|
+
export {
|
|
45
|
+
o as MenuItemArrow,
|
|
46
|
+
l as downArrowName,
|
|
47
|
+
d as leftArrowName,
|
|
48
|
+
p as rightArrowName
|
|
49
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),p=require("@progress/kendo-react-common"),l=require("@progress/kendo-react-popup"),d=require("../utils/itemsIdsUtils.js"),r=require("../utils/misc.js"),c=require("./MenuItemLink.js"),h=require("./MenuItemArrow.js");function I(o){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const t in o)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(o,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>o[t]})}}return e.default=o,Object.freeze(e)}const s=I(u);class m extends s.Component{constructor(){super(...arguments),this.onMouseOver=e=>{this.props.onMouseOver(this.props.parentItemId),e.stopPropagation()},this.onMouseLeave=e=>{this.props.onMouseLeave(this.props.parentItemId),e.stopPropagation()}}render(){const e=this.props.parentItemId;return s.createElement("ul",{className:this.props.className,role:this.props.role?this.props.role:e!==void 0?"menu":"menubar",id:e!==void 0?r.getDOMElementId(this.props.menuGuid,e):void 0,onMouseOver:e!==void 0?this.onMouseOver:void 0,onMouseLeave:e!==void 0?this.onMouseLeave:void 0,"aria-orientation":this.props["aria-orientation"]},this.renderChildItems())}renderChildItems(){return this.props.items.length>0?this.props.items.map((e,t)=>s.createElement(a,{item:e,isMenuVertical:this.props.isMenuVertical,isDirectionRightToLeft:this.props.isDirectionRightToLeft,focusedItemId:this.props.focusedItemId,lastItemIdToBeOpened:this.props.lastItemIdToBeOpened,tabbableItemId:this.props.tabbableItemId,itemRender:this.props.itemRender,linkRender:this.props.linkRender,menuGuid:this.props.menuGuid,onMouseOver:this.props.onMouseOver,onMouseLeave:this.props.onMouseLeave,onMouseDown:this.props.onMouseDown,onBlur:this.props.onBlur,onFocus:this.props.onFocus,onClick:this.props.onClick,onOriginalItemNeeded:this.props.onOriginalItemNeeded,key:t})):null}}class a extends s.Component{constructor(e){super(e),this.isFirstRender=!0,this.onMouseOver=t=>{this.props.onMouseOver(this.props.item.id),t.stopPropagation()},this.onMouseLeave=t=>{this.props.onMouseLeave(this.props.item.id),t.stopPropagation()},this.state={opened:!1}}componentDidMount(){const e=this.props.focusedItemId,t=this.props.item.id;e&&e===t&&this.itemElement.focus(),this.isFirstRender=!1}componentDidUpdate(e){const t=this.props.focusedItemId,i=this.props.item.id;if(t){const n=p.getActiveElement(document);e.focusedItemId!==t&&t===i&&!this.itemElement.contains(n)&&this.itemElement.focus()}}render(){const e=this.props.item,t=e.id,i=r.getDOMElementId(this.props.menuGuid,t);return s.createElement(s.Fragment,null,s.createElement("li",{id:r.getDOMElementId(this.props.menuGuid,t),className:this.getMenuItemClassName(e),style:e.cssStyle,tabIndex:t===this.props.tabbableItemId?0:-1,onMouseOver:this.onMouseOver,onMouseLeave:this.onMouseLeave,onMouseDown:n=>this.props.onMouseDown(n),onBlur:n=>this.props.onBlur(t,n),onFocus:()=>this.props.onFocus(t),onClick:n=>this.props.onClick(n,t),role:"menuitem","aria-disabled":e.disabled?!0:void 0,"aria-haspopup":e.items.length>0?!0:void 0,"aria-expanded":e.items.length>0?this.Opened:void 0,"aria-label":e.text,"aria-owns":this.Opened?i:void 0,ref:n=>this.itemElement=n,key:"0"},this.contentRender?this.renderContent():this.renderMenuItemLink()),this.renderPopupIfOpened())}renderContent(){const e=this.props.item.contentParentItemId;return s.createElement("div",{className:"k-content",role:"presentation"},s.createElement(this.contentRender,{item:this.props.onOriginalItemNeeded(e),itemId:e}))}renderMenuItemLink(){const e=this.props.item;if(this.linkRender)return s.createElement(this.linkRender,{item:this.props.onOriginalItemNeeded(e.id),itemId:e.id,opened:this.Opened,dir:r.convertBoolDirectionToString(this.props.isDirectionRightToLeft)});{const t=this.itemRender?s.createElement(this.itemRender,{item:this.props.onOriginalItemNeeded(e.id),itemId:e.id,key:"1"}):s.createElement("span",{className:"k-menu-link-text"},e.text);return s.createElement(c.MenuItemLink,{url:e.url,opened:this.Opened},this.renderMenuIconIfApplicable(),t,this.renderArrowIfApplicable())}}renderPopupIfOpened(){if(this.Opened){const e=this.props.item.id,{anchorAlign:t,popupAlign:i,collision:n}=r.getPopupSettings(e,this.props.isMenuVertical,this.props.isDirectionRightToLeft);return s.createElement(l.Popup,{anchor:this.itemElement,show:!0,popupClass:this.getPopupClassName(),anchorAlign:t,popupAlign:i,collision:n,animate:!1,key:"1"},s.createElement(m,{parentItemId:e,items:this.props.item.items,menuGuid:this.props.menuGuid,focusedItemId:this.props.focusedItemId,lastItemIdToBeOpened:this.props.lastItemIdToBeOpened,tabbableItemId:this.props.tabbableItemId,itemRender:this.props.itemRender,linkRender:this.props.linkRender,isMenuVertical:this.props.isMenuVertical,isDirectionRightToLeft:this.props.isDirectionRightToLeft,className:"k-group k-menu-group k-reset k-menu-group-md",onMouseOver:this.props.onMouseOver,onMouseLeave:this.props.onMouseLeave,onMouseDown:this.props.onMouseDown,onBlur:this.props.onBlur,onFocus:this.props.onFocus,onClick:this.props.onClick,onOriginalItemNeeded:this.props.onOriginalItemNeeded}))}else return null}renderMenuIconIfApplicable(){const{icon:e,svgIcon:t}=this.props.item;return e||t?s.createElement(p.IconWrap,{name:e,icon:t,key:"0"}):null}renderArrowIfApplicable(){return this.props.item.items.length>0?s.createElement("span",{className:"k-menu-expand-arrow","aria-hidden":!0},s.createElement(h.MenuItemArrow,{itemId:this.props.item.id,verticalMenu:this.props.isMenuVertical,dir:r.convertBoolDirectionToString(this.props.isDirectionRightToLeft),key:"2"})):null}get itemRender(){return this.props.item.render||this.props.itemRender}get linkRender(){return this.props.item.linkRender||this.props.linkRender}get contentRender(){return this.props.item.contentParentItemId?this.props.item.contentRender:null}get Opened(){const e=this.props;return e.item.items.length>0&&d.shouldOpenItem(e.item.id,e.lastItemIdToBeOpened)&&!this.isFirstRender}getPopupClassName(){return p.classNames("k-menu-popup",{"k-rtl":this.props.isDirectionRightToLeft})}getMenuItemClassName(e){return p.classNames("k-item","k-menu-item",{"k-first":d.isFirstItemFromSiblings(e.id),"k-last":e.isLastFromSiblings,"k-disabled":e.disabled},e.cssClass)}}exports.MenuItemInternal=a;exports.MenuItemInternalsList=m;
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as s from "react";
|
|
10
|
+
import { getActiveElement as d, IconWrap as a, classNames as r } from "@progress/kendo-react-common";
|
|
11
|
+
import { Popup as u } from "@progress/kendo-react-popup";
|
|
12
|
+
import { shouldOpenItem as l, isFirstItemFromSiblings as h } from "../utils/itemsIdsUtils.mjs";
|
|
13
|
+
import { getDOMElementId as n, convertBoolDirectionToString as p, getPopupSettings as c } from "../utils/misc.mjs";
|
|
14
|
+
import { MenuItemLink as I } from "./MenuItemLink.mjs";
|
|
15
|
+
import { MenuItemArrow as M } from "./MenuItemArrow.mjs";
|
|
16
|
+
class g extends s.Component {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments), this.onMouseOver = (e) => {
|
|
19
|
+
this.props.onMouseOver(this.props.parentItemId), e.stopPropagation();
|
|
20
|
+
}, this.onMouseLeave = (e) => {
|
|
21
|
+
this.props.onMouseLeave(this.props.parentItemId), e.stopPropagation();
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
const e = this.props.parentItemId;
|
|
26
|
+
return /* @__PURE__ */ s.createElement(
|
|
27
|
+
"ul",
|
|
28
|
+
{
|
|
29
|
+
className: this.props.className,
|
|
30
|
+
role: this.props.role ? this.props.role : e !== void 0 ? "menu" : "menubar",
|
|
31
|
+
id: e !== void 0 ? n(this.props.menuGuid, e) : void 0,
|
|
32
|
+
onMouseOver: e !== void 0 ? this.onMouseOver : void 0,
|
|
33
|
+
onMouseLeave: e !== void 0 ? this.onMouseLeave : void 0,
|
|
34
|
+
"aria-orientation": this.props["aria-orientation"]
|
|
35
|
+
},
|
|
36
|
+
this.renderChildItems()
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
renderChildItems() {
|
|
40
|
+
return this.props.items.length > 0 ? this.props.items.map((e, t) => /* @__PURE__ */ s.createElement(
|
|
41
|
+
f,
|
|
42
|
+
{
|
|
43
|
+
item: e,
|
|
44
|
+
isMenuVertical: this.props.isMenuVertical,
|
|
45
|
+
isDirectionRightToLeft: this.props.isDirectionRightToLeft,
|
|
46
|
+
focusedItemId: this.props.focusedItemId,
|
|
47
|
+
lastItemIdToBeOpened: this.props.lastItemIdToBeOpened,
|
|
48
|
+
tabbableItemId: this.props.tabbableItemId,
|
|
49
|
+
itemRender: this.props.itemRender,
|
|
50
|
+
linkRender: this.props.linkRender,
|
|
51
|
+
menuGuid: this.props.menuGuid,
|
|
52
|
+
onMouseOver: this.props.onMouseOver,
|
|
53
|
+
onMouseLeave: this.props.onMouseLeave,
|
|
54
|
+
onMouseDown: this.props.onMouseDown,
|
|
55
|
+
onBlur: this.props.onBlur,
|
|
56
|
+
onFocus: this.props.onFocus,
|
|
57
|
+
onClick: this.props.onClick,
|
|
58
|
+
onOriginalItemNeeded: this.props.onOriginalItemNeeded,
|
|
59
|
+
key: t
|
|
60
|
+
}
|
|
61
|
+
)) : null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
class f extends s.Component {
|
|
65
|
+
constructor(e) {
|
|
66
|
+
super(e), this.isFirstRender = !0, this.onMouseOver = (t) => {
|
|
67
|
+
this.props.onMouseOver(this.props.item.id), t.stopPropagation();
|
|
68
|
+
}, this.onMouseLeave = (t) => {
|
|
69
|
+
this.props.onMouseLeave(this.props.item.id), t.stopPropagation();
|
|
70
|
+
}, this.state = { opened: !1 };
|
|
71
|
+
}
|
|
72
|
+
componentDidMount() {
|
|
73
|
+
const e = this.props.focusedItemId, t = this.props.item.id;
|
|
74
|
+
e && e === t && this.itemElement.focus(), this.isFirstRender = !1;
|
|
75
|
+
}
|
|
76
|
+
componentDidUpdate(e) {
|
|
77
|
+
const t = this.props.focusedItemId, o = this.props.item.id;
|
|
78
|
+
if (t) {
|
|
79
|
+
const i = d(document);
|
|
80
|
+
e.focusedItemId !== t && t === o && !this.itemElement.contains(i) && this.itemElement.focus();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
render() {
|
|
84
|
+
const e = this.props.item, t = e.id, o = n(this.props.menuGuid, t);
|
|
85
|
+
return /* @__PURE__ */ s.createElement(s.Fragment, null, /* @__PURE__ */ s.createElement(
|
|
86
|
+
"li",
|
|
87
|
+
{
|
|
88
|
+
id: n(this.props.menuGuid, t),
|
|
89
|
+
className: this.getMenuItemClassName(e),
|
|
90
|
+
style: e.cssStyle,
|
|
91
|
+
tabIndex: t === this.props.tabbableItemId ? 0 : -1,
|
|
92
|
+
onMouseOver: this.onMouseOver,
|
|
93
|
+
onMouseLeave: this.onMouseLeave,
|
|
94
|
+
onMouseDown: (i) => this.props.onMouseDown(i),
|
|
95
|
+
onBlur: (i) => this.props.onBlur(t, i),
|
|
96
|
+
onFocus: () => this.props.onFocus(t),
|
|
97
|
+
onClick: (i) => this.props.onClick(i, t),
|
|
98
|
+
role: "menuitem",
|
|
99
|
+
"aria-disabled": e.disabled ? !0 : void 0,
|
|
100
|
+
"aria-haspopup": e.items.length > 0 ? !0 : void 0,
|
|
101
|
+
"aria-expanded": e.items.length > 0 ? this.Opened : void 0,
|
|
102
|
+
"aria-label": e.text,
|
|
103
|
+
"aria-owns": this.Opened ? o : void 0,
|
|
104
|
+
ref: (i) => this.itemElement = i,
|
|
105
|
+
key: "0"
|
|
106
|
+
},
|
|
107
|
+
this.contentRender ? this.renderContent() : this.renderMenuItemLink()
|
|
108
|
+
), this.renderPopupIfOpened());
|
|
109
|
+
}
|
|
110
|
+
renderContent() {
|
|
111
|
+
const e = this.props.item.contentParentItemId;
|
|
112
|
+
return /* @__PURE__ */ s.createElement("div", { className: "k-content", role: "presentation" }, /* @__PURE__ */ s.createElement(this.contentRender, { item: this.props.onOriginalItemNeeded(e), itemId: e }));
|
|
113
|
+
}
|
|
114
|
+
renderMenuItemLink() {
|
|
115
|
+
const e = this.props.item;
|
|
116
|
+
if (this.linkRender)
|
|
117
|
+
return /* @__PURE__ */ s.createElement(
|
|
118
|
+
this.linkRender,
|
|
119
|
+
{
|
|
120
|
+
item: this.props.onOriginalItemNeeded(e.id),
|
|
121
|
+
itemId: e.id,
|
|
122
|
+
opened: this.Opened,
|
|
123
|
+
dir: p(this.props.isDirectionRightToLeft)
|
|
124
|
+
}
|
|
125
|
+
);
|
|
126
|
+
{
|
|
127
|
+
const t = this.itemRender ? /* @__PURE__ */ s.createElement(this.itemRender, { item: this.props.onOriginalItemNeeded(e.id), itemId: e.id, key: "1" }) : /* @__PURE__ */ s.createElement("span", { className: "k-menu-link-text" }, e.text);
|
|
128
|
+
return /* @__PURE__ */ s.createElement(I, { url: e.url, opened: this.Opened }, this.renderMenuIconIfApplicable(), t, this.renderArrowIfApplicable());
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
renderPopupIfOpened() {
|
|
132
|
+
if (this.Opened) {
|
|
133
|
+
const e = this.props.item.id, { anchorAlign: t, popupAlign: o, collision: i } = c(e, this.props.isMenuVertical, this.props.isDirectionRightToLeft);
|
|
134
|
+
return /* @__PURE__ */ s.createElement(
|
|
135
|
+
u,
|
|
136
|
+
{
|
|
137
|
+
anchor: this.itemElement,
|
|
138
|
+
show: !0,
|
|
139
|
+
popupClass: this.getPopupClassName(),
|
|
140
|
+
anchorAlign: t,
|
|
141
|
+
popupAlign: o,
|
|
142
|
+
collision: i,
|
|
143
|
+
animate: !1,
|
|
144
|
+
key: "1"
|
|
145
|
+
},
|
|
146
|
+
/* @__PURE__ */ s.createElement(
|
|
147
|
+
g,
|
|
148
|
+
{
|
|
149
|
+
parentItemId: e,
|
|
150
|
+
items: this.props.item.items,
|
|
151
|
+
menuGuid: this.props.menuGuid,
|
|
152
|
+
focusedItemId: this.props.focusedItemId,
|
|
153
|
+
lastItemIdToBeOpened: this.props.lastItemIdToBeOpened,
|
|
154
|
+
tabbableItemId: this.props.tabbableItemId,
|
|
155
|
+
itemRender: this.props.itemRender,
|
|
156
|
+
linkRender: this.props.linkRender,
|
|
157
|
+
isMenuVertical: this.props.isMenuVertical,
|
|
158
|
+
isDirectionRightToLeft: this.props.isDirectionRightToLeft,
|
|
159
|
+
className: "k-group k-menu-group k-reset k-menu-group-md",
|
|
160
|
+
onMouseOver: this.props.onMouseOver,
|
|
161
|
+
onMouseLeave: this.props.onMouseLeave,
|
|
162
|
+
onMouseDown: this.props.onMouseDown,
|
|
163
|
+
onBlur: this.props.onBlur,
|
|
164
|
+
onFocus: this.props.onFocus,
|
|
165
|
+
onClick: this.props.onClick,
|
|
166
|
+
onOriginalItemNeeded: this.props.onOriginalItemNeeded
|
|
167
|
+
}
|
|
168
|
+
)
|
|
169
|
+
);
|
|
170
|
+
} else
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
renderMenuIconIfApplicable() {
|
|
174
|
+
const { icon: e, svgIcon: t } = this.props.item;
|
|
175
|
+
return e || t ? /* @__PURE__ */ s.createElement(a, { name: e, icon: t, key: "0" }) : null;
|
|
176
|
+
}
|
|
177
|
+
renderArrowIfApplicable() {
|
|
178
|
+
return this.props.item.items.length > 0 ? /* @__PURE__ */ s.createElement("span", { className: "k-menu-expand-arrow", "aria-hidden": !0 }, /* @__PURE__ */ s.createElement(
|
|
179
|
+
M,
|
|
180
|
+
{
|
|
181
|
+
itemId: this.props.item.id,
|
|
182
|
+
verticalMenu: this.props.isMenuVertical,
|
|
183
|
+
dir: p(this.props.isDirectionRightToLeft),
|
|
184
|
+
key: "2"
|
|
185
|
+
}
|
|
186
|
+
)) : null;
|
|
187
|
+
}
|
|
188
|
+
get itemRender() {
|
|
189
|
+
return this.props.item.render || this.props.itemRender;
|
|
190
|
+
}
|
|
191
|
+
get linkRender() {
|
|
192
|
+
return this.props.item.linkRender || this.props.linkRender;
|
|
193
|
+
}
|
|
194
|
+
get contentRender() {
|
|
195
|
+
return this.props.item.contentParentItemId ? this.props.item.contentRender : null;
|
|
196
|
+
}
|
|
197
|
+
get Opened() {
|
|
198
|
+
const e = this.props;
|
|
199
|
+
return e.item.items.length > 0 && l(e.item.id, e.lastItemIdToBeOpened) && // HACK: Wait for the second render because otherwise the scenario of
|
|
200
|
+
// popup inside popup throws an error (for example, hover of item with id '0_0').
|
|
201
|
+
!this.isFirstRender;
|
|
202
|
+
}
|
|
203
|
+
getPopupClassName() {
|
|
204
|
+
return r("k-menu-popup", { "k-rtl": this.props.isDirectionRightToLeft });
|
|
205
|
+
}
|
|
206
|
+
getMenuItemClassName(e) {
|
|
207
|
+
return r(
|
|
208
|
+
"k-item",
|
|
209
|
+
"k-menu-item",
|
|
210
|
+
{
|
|
211
|
+
"k-first": h(e.id),
|
|
212
|
+
"k-last": e.isLastFromSiblings,
|
|
213
|
+
"k-disabled": e.disabled
|
|
214
|
+
},
|
|
215
|
+
e.cssClass
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
export {
|
|
220
|
+
f as MenuItemInternal,
|
|
221
|
+
g as MenuItemInternalsList
|
|
222
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),i=require("prop-types"),l=require("@progress/kendo-react-common");function p(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,a.get?a:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const r=p(c),o=class o extends r.Component{render(){return this.props.url?r.createElement("a",{className:this.getMenuItemClassName(),role:"presentation",href:this.props.url,tabIndex:-1},this.props.children):r.createElement("span",{id:this.props.id,className:l.classNames(this.getMenuItemClassName(),this.props.className),style:this.props.style,role:"presentation"},this.props.children)}getMenuItemClassName(){return l.classNames("k-link","k-menu-link",{"k-active":this.props.opened})}};o.propTypes={opened:i.bool,url:i.string};let n=o;exports.MenuItemLink=n;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";
|
|
9
|
+
import * as e from "react";
|
|
10
|
+
import t from "prop-types";
|
|
11
|
+
import { classNames as r } from "@progress/kendo-react-common";
|
|
12
|
+
const s = class s extends e.Component {
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
render() {
|
|
17
|
+
return this.props.url ? /* @__PURE__ */ e.createElement(
|
|
18
|
+
"a",
|
|
19
|
+
{
|
|
20
|
+
className: this.getMenuItemClassName(),
|
|
21
|
+
role: "presentation",
|
|
22
|
+
href: this.props.url,
|
|
23
|
+
tabIndex: -1
|
|
24
|
+
},
|
|
25
|
+
this.props.children
|
|
26
|
+
) : /* @__PURE__ */ e.createElement(
|
|
27
|
+
"span",
|
|
28
|
+
{
|
|
29
|
+
id: this.props.id,
|
|
30
|
+
className: r(this.getMenuItemClassName(), this.props.className),
|
|
31
|
+
style: this.props.style,
|
|
32
|
+
role: "presentation"
|
|
33
|
+
},
|
|
34
|
+
this.props.children
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
getMenuItemClassName() {
|
|
38
|
+
return r(
|
|
39
|
+
"k-link",
|
|
40
|
+
"k-menu-link",
|
|
41
|
+
{
|
|
42
|
+
"k-active": this.props.opened
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
s.propTypes = {
|
|
48
|
+
opened: t.bool,
|
|
49
|
+
url: t.string
|
|
50
|
+
};
|
|
51
|
+
let p = s;
|
|
52
|
+
export {
|
|
53
|
+
p as MenuItemLink
|
|
54
|
+
};
|
package/menu/consts.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o={vertical:"top",horizontal:"left"},t={vertical:"top",horizontal:"right"},i={vertical:"flip",horizontal:"fit"},l={vertical:"fit",horizontal:"flip"},n={downward:{anchorAlign:{vertical:"bottom",horizontal:"right"},popupAlign:t,collision:i},leftward:{anchorAlign:{vertical:"top",horizontal:"left"},popupAlign:t,collision:l}},r={downward:{anchorAlign:{vertical:"bottom",horizontal:"left"},popupAlign:o,collision:i},rightward:{anchorAlign:{vertical:"top",horizontal:"right"},popupAlign:o,collision:l}};exports.POPUP_SETTINGS=r;exports.POPUP_SETTINGS_RTL=n;
|