@progress/kendo-react-layout
Advanced tools
@@ -23,3 +23,2 @@ /** | ||
| onMouseLeave: any; | ||
| onMouseDown: any; | ||
| onFocus: any; | ||
@@ -26,0 +25,0 @@ onClick: any; |
@@ -110,6 +110,6 @@ /** | ||
| reset: () => void; | ||
| private handleClickOutside; | ||
| private onKeyDown; | ||
| private onItemMouseOver; | ||
| private onItemMouseLeave; | ||
| private onItemMouseDown; | ||
| private onItemFocus; | ||
@@ -116,0 +116,0 @@ private onItemClick; |
@@ -8,2 +8,2 @@ /** | ||
| */ | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),o=require("prop-types"),a=require("@progress/kendo-react-common"),i=require("../utils/itemsIdsUtils.js"),f=require("../utils/prepareInputItemsForInternalWork.js"),h=require("../utils/getNewItemIdUponKeyboardNavigation.js"),u=require("../utils/hoverDelay.js"),g=require("./MenuItemInternal.js"),b=require("../utils/DirectionHolder.js"),D=require("../utils/MouseOverHandler.js");function y(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(s,e,t.get?t:{enumerable:!0,get:()=>n[e]})}}return s.default=n,Object.freeze(s)}const d=y(v),c={focusedItemId:i.EMPTY_ID,hoveredItemId:i.EMPTY_ID,tabbableItemId:i.ZERO_LEVEL_ZERO_ITEM_ID},l=class l extends d.Component{constructor(s){super(s),this.menuWrapperEl=null,this.directionHolder=new b.DirectionHolder,this.inputItems=[],this.items=[],this.reset=()=>{this.clearItemHoverAndLeaveRequestsIfApplicable(),this.setState(c)},this.onKeyDown=e=>{if(this.state.focusedItemId!==i.EMPTY_ID){const t=i.getItemById(this.state.focusedItemId,this.items);let r=h.getNewItemIdUponKeyboardNavigation(this.items,t.id,e.keyCode,e.key,this.props.vertical,this.directionHolder.getIsDirectionRightToLeft());const I=i.getItemById(r,this.items);if(I&&I.separator&&(r=h.getNewItemIdUponKeyboardNavigation(this.items,r,e.keyCode,e.key,this.props.vertical,this.directionHolder.getIsDirectionRightToLeft())),t.id!==r&&(e.preventDefault(),this.setFocusedItemId(r)),(e.keyCode===a.Keys.enter||e.keyCode===a.Keys.space)&&!t.disabled&&(this.mouseOverHandler.handleItemSelectedViaKeyboard(),this.dispatchSelectEventIfWired(e,t.id),!e.isDefaultPrevented()&&t.items.length===0&&t.url&&window.location.assign(t.url)),e.keyCode===a.Keys.esc&&i.isIdZeroLevel(t.id)&&this.props.onClose){const p=this.getInputItem(t.id);this.props.onClose({target:this,item:p,itemId:t.id})}}},this.onItemMouseOver=e=>{this.mouseOverHandler.IsMouseOverEnabled&&(this.clearItemHoverAndLeaveRequestsIfApplicable(),this.itemHoverRequest=window.setTimeout(()=>{this.setHoveredItemId(e),this.itemHoverRequest=null},u.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},u.getHoverCloseDelay(this.props)))},this.onItemMouseDown=()=>{this.mouseOverHandler.handleItemMouseDown()},this.onItemFocus=e=>{this.setFocusedItemId(e),this.mouseOverHandler.handleItemFocus()},this.onItemClick=(e,t)=>{const r=i.getItemById(t,this.items);r.disabled||(this.setFocusedItemId(t),this.mouseOverHandler.handleItemClick(t,this.isItemWithDefaultClose(t)),this.dispatchSelectEventIfWired(e,t),!e.isDefaultPrevented()&&r.url&&window.location.assign(r.url))},this.onPopupClose=(e,t)=>{this.props.onClose&&this.props.onClose({target:this,item:this.getInputItem(e),itemId:e,popupCloseEvent:t})},this.onItemBlur=(e,t)=>{if(this.isItemWithDefaultClose(e)&&this.setFocusedItemId(i.EMPTY_ID),t.relatedTarget&&t.relatedTarget.nodeName==="LI"){const r=t.relatedTarget.getAttribute("id");if(r&&r.includes(this.menuItemId))return}if(i.isIdZeroLevel(e)&&this.props.onClose){const r=this.getInputItem(e);this.props.onClose({target:this,item:r,itemId:e})}},this.getInputItem=e=>i.getItemById(e,this.inputItems),this.mouseOverHandler=new D.MouseOverHandler(this.props.openOnClick,this.reset,this.onItemMouseOver),this.state=Object.assign({},c,{isFirstRender:!0})}get menuItemId(){return this.props.id}get element(){return this.menuWrapperEl}get animate(){return this.props.animate!==void 0?this.props.animate:l.defaultProps.animate}render(){this.prepareItems(),this.state.isFirstRender||this.directionHolder.setIsDirectionRightToLeft(this.checkIsDirectionRightToLeft());const s=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(g.MenuItemInternalsList,{className:this.getMenuClassName(),"aria-orientation":this.props.vertical?"vertical":void 0,items:this.items,animate:this.animate,isMenuVertical:this.props.vertical,isDirectionRightToLeft:this.directionHolder.getIsDirectionRightToLeft(),focusedItemId:this.state.focusedItemId,lastItemIdToBeOpened:s,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,onPopupClose:this.onPopupClose,role:this.props.role}))}componentDidMount(){this.setState({isFirstRender:!1})}componentDidUpdate(s){(!!s.vertical!=!!this.props.vertical||this.directionHolder.hasDirectionChanged())&&this.reset(),this.mouseOverHandler.OpenOnClick=this.props.openOnClick}componentWillUnmount(){this.clearItemHoverAndLeaveRequestsIfApplicable()}setFocusedItemId(s){this.setState(e=>{const t=s===i.EMPTY_ID?e.tabbableItemId:i.getRootParentId(s);return{hoveredItemId:s===i.EMPTY_ID||i.isIdEmptyOrZeroLevel(e.hoveredItemId)&&i.isIdEmptyOrZeroLevel(s)?e.hoveredItemId:i.EMPTY_ID,focusedItemId:s,tabbableItemId:t}})}setHoveredItemId(s){this.setState(e=>i.isIdEmptyOrZeroLevel(s)&&i.isIdEmptyOrZeroLevel(e.focusedItemId)?{hoveredItemId:s,focusedItemId:e.focusedItemId,tabbableItemId:e.tabbableItemId}:{hoveredItemId:s,focusedItemId:i.EMPTY_ID,tabbableItemId:i.ZERO_LEVEL_ZERO_ITEM_ID})}getMenuClassName(){return a.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(s){return!this.props.customCloseItemIds||this.props.customCloseItemIds.indexOf(s)===-1}checkIsDirectionRightToLeft(){return!!(this.props.dir!==void 0?this.props.dir==="rtl":this.menuWrapperEl&&getComputedStyle(this.menuWrapperEl).direction==="rtl")}prepareItems(){const{items:s,inputItems:e}=f.prepareInputItemsForInternalWork(this.props.items,this.props.children);this.items=s,this.inputItems=e}dispatchSelectEventIfWired(s,e){a.dispatchEvent(this.props.onSelect,s,this,{item:this.getInputItem(e),itemId:e})}};l.propTypes={vertical:o.bool,items:o.arrayOf(o.object),style:o.object,animate:o.oneOfType([o.bool,o.shape({openDuration:o.number,closeDuration:o.number})]),dir:o.string,hoverOpenDelay:o.number,hoverCloseDelay:o.number,openOnClick:o.bool,itemRender:o.any,linkRender:o.any,customCloseItemIds:o.arrayOf(o.string),onSelect:o.func,onClose:o.func,role:o.string},l.defaultProps={vertical:!1,animate:!0};let m=l;exports.Menu=m; | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("react"),r=require("prop-types"),a=require("@progress/kendo-react-common"),s=require("../utils/itemsIdsUtils.js"),f=require("../utils/prepareInputItemsForInternalWork.js"),c=require("../utils/getNewItemIdUponKeyboardNavigation.js"),u=require("../utils/hoverDelay.js"),g=require("./MenuItemInternal.js"),b=require("../utils/DirectionHolder.js"),D=require("../utils/MouseOverHandler.js");function E(n){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(i,e,t.get?t:{enumerable:!0,get:()=>n[e]})}}return i.default=n,Object.freeze(i)}const h=E(v),p={focusedItemId:s.EMPTY_ID,hoveredItemId:s.EMPTY_ID,tabbableItemId:s.ZERO_LEVEL_ZERO_ITEM_ID},l=class l extends h.Component{constructor(i){super(i),this.menuWrapperEl=null,this.directionHolder=new b.DirectionHolder,this.inputItems=[],this.items=[],this.reset=()=>{this.clearItemHoverAndLeaveRequestsIfApplicable(),this.setState(p)},this.handleClickOutside=e=>{var t;if(this.props.openOnClick&&this.state.hoveredItemId!==s.EMPTY_ID){const o=e.target;this.menuWrapperEl&&!this.menuWrapperEl.contains(o)&&(this.menuItemId&&((t=o.closest)!=null&&t.call(o,`[id^="${this.menuItemId}_"]`))||this.setHoveredItemId(s.EMPTY_ID))}},this.onKeyDown=e=>{if(this.state.focusedItemId!==s.EMPTY_ID){const t=s.getItemById(this.state.focusedItemId,this.items);let o=c.getNewItemIdUponKeyboardNavigation(this.items,t.id,e.keyCode,e.key,this.props.vertical,this.directionHolder.getIsDirectionRightToLeft());const d=s.getItemById(o,this.items);if(d&&d.separator&&(o=c.getNewItemIdUponKeyboardNavigation(this.items,o,e.keyCode,e.key,this.props.vertical,this.directionHolder.getIsDirectionRightToLeft())),t.id!==o&&(e.preventDefault(),this.setFocusedItemId(o)),(e.keyCode===a.Keys.enter||e.keyCode===a.Keys.space)&&!t.disabled&&(this.mouseOverHandler.handleItemSelectedViaKeyboard(),this.dispatchSelectEventIfWired(e,t.id),!e.isDefaultPrevented()&&t.items.length===0&&t.url&&window.location.assign(t.url)),e.keyCode===a.Keys.esc&&s.isIdZeroLevel(t.id)&&this.props.onClose){const I=this.getInputItem(t.id);this.props.onClose({target:this,item:I,itemId:t.id})}}},this.onItemMouseOver=e=>{const t=this.props.openOnClick&&!s.isIdZeroLevel(e)&&this.state.hoveredItemId!==s.EMPTY_ID;(this.mouseOverHandler.IsMouseOverEnabled||t)&&(this.clearItemHoverAndLeaveRequestsIfApplicable(),this.itemHoverRequest=window.setTimeout(()=>{this.setHoveredItemId(e),this.itemHoverRequest=null},u.getHoverOpenDelay(this.props)))},this.onItemMouseLeave=e=>{const t=this.props.openOnClick&&!s.isIdZeroLevel(e)&&this.state.hoveredItemId!==s.EMPTY_ID;(this.mouseOverHandler.IsMouseOverEnabled||t)&&this.isItemWithDefaultClose(e)&&(this.clearItemHoverAndLeaveRequestsIfApplicable(),this.itemLeaveRequest=window.setTimeout(()=>{t?this.setHoveredItemId(s.getDirectParentId(e)):this.setHoveredItemId(s.EMPTY_ID),this.itemLeaveRequest=null},u.getHoverCloseDelay(this.props)))},this.onItemFocus=e=>{this.state.hoveredItemId===s.EMPTY_ID?this.setFocusedItemId(e):this.setState(t=>({focusedItemId:e,hoveredItemId:t.hoveredItemId,tabbableItemId:s.getRootParentId(e)}))},this.onItemClick=(e,t)=>{const o=s.getItemById(t,this.items);if(!o.disabled){const d=s.isIdZeroLevel(t),I=!o.items||o.items.length===0;d?(this.setFocusedItemId(t),I?this.setHoveredItemId(s.EMPTY_ID):this.props.openOnClick&&this.state.hoveredItemId!==s.EMPTY_ID&&s.getRootParentId(this.state.hoveredItemId)===t?this.setHoveredItemId(s.EMPTY_ID):this.setHoveredItemId(t)):I&&(this.setFocusedItemId(t),this.setHoveredItemId(s.EMPTY_ID)),this.dispatchSelectEventIfWired(e,t),!e.isDefaultPrevented()&&o.url&&window.location.assign(o.url)}},this.onPopupClose=(e,t)=>{this.props.onClose&&this.props.onClose({target:this,item:this.getInputItem(e),itemId:e,popupCloseEvent:t})},this.onItemBlur=(e,t)=>{if(this.isItemWithDefaultClose(e)&&this.setFocusedItemId(s.EMPTY_ID),t.relatedTarget&&t.relatedTarget.nodeName==="LI"){const o=t.relatedTarget.getAttribute("id");if(o&&o.includes(this.menuItemId))return}if(s.isIdZeroLevel(e)&&this.props.onClose){const o=this.getInputItem(e);this.props.onClose({target:this,item:o,itemId:e})}},this.getInputItem=e=>s.getItemById(e,this.inputItems),this.mouseOverHandler=new D.MouseOverHandler(this.props.openOnClick,this.reset),this.state=Object.assign({},p,{isFirstRender:!0})}get menuItemId(){return this.props.id}get element(){return this.menuWrapperEl}get animate(){return this.props.animate!==void 0?this.props.animate:l.defaultProps.animate}render(){this.prepareItems(),this.state.isFirstRender||this.directionHolder.setIsDirectionRightToLeft(this.checkIsDirectionRightToLeft());const i=this.state.hoveredItemId?this.state.hoveredItemId:this.state.focusedItemId?s.getDirectParentId(this.state.focusedItemId):s.EMPTY_ID;return h.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}},h.createElement(g.MenuItemInternalsList,{className:this.getMenuClassName(),"aria-orientation":this.props.vertical?"vertical":void 0,items:this.items,animate:this.animate,isMenuVertical:this.props.vertical,isDirectionRightToLeft:this.directionHolder.getIsDirectionRightToLeft(),focusedItemId:this.state.focusedItemId,lastItemIdToBeOpened:i,tabbableItemId:this.state.tabbableItemId,itemRender:this.props.itemRender,linkRender:this.props.linkRender,menuGuid:this.menuItemId,onMouseLeave:this.onItemMouseLeave,onMouseOver:this.onItemMouseOver,onFocus:this.onItemFocus,onClick:this.onItemClick,onBlur:this.onItemBlur,onOriginalItemNeeded:this.getInputItem,onPopupClose:this.onPopupClose,role:this.props.role}))}componentDidMount(){this.setState({isFirstRender:!1}),this.props.openOnClick&&document.addEventListener("mousedown",this.handleClickOutside)}componentDidUpdate(i){(!!i.vertical!=!!this.props.vertical||this.directionHolder.hasDirectionChanged())&&this.reset(),this.mouseOverHandler.OpenOnClick=this.props.openOnClick,i.openOnClick!==this.props.openOnClick&&(this.props.openOnClick?document.addEventListener("mousedown",this.handleClickOutside):document.removeEventListener("mousedown",this.handleClickOutside))}componentWillUnmount(){this.clearItemHoverAndLeaveRequestsIfApplicable(),document.removeEventListener("mousedown",this.handleClickOutside)}setFocusedItemId(i){this.setState(e=>{const t=i===s.EMPTY_ID?e.tabbableItemId:s.getRootParentId(i);return{hoveredItemId:i===s.EMPTY_ID||s.isIdEmptyOrZeroLevel(e.hoveredItemId)&&s.isIdEmptyOrZeroLevel(i)?e.hoveredItemId:s.EMPTY_ID,focusedItemId:i,tabbableItemId:t}})}setHoveredItemId(i){this.setState(e=>s.isIdEmptyOrZeroLevel(i)&&s.isIdEmptyOrZeroLevel(e.focusedItemId)?{hoveredItemId:i,focusedItemId:e.focusedItemId,tabbableItemId:e.tabbableItemId}:{hoveredItemId:i,focusedItemId:s.EMPTY_ID,tabbableItemId:s.ZERO_LEVEL_ZERO_ITEM_ID})}getMenuClassName(){return a.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(i){return!this.props.customCloseItemIds||this.props.customCloseItemIds.indexOf(i)===-1}checkIsDirectionRightToLeft(){return!!(this.props.dir!==void 0?this.props.dir==="rtl":this.menuWrapperEl&&getComputedStyle(this.menuWrapperEl).direction==="rtl")}prepareItems(){const{items:i,inputItems:e}=f.prepareInputItemsForInternalWork(this.props.items,this.props.children);this.items=i,this.inputItems=e}dispatchSelectEventIfWired(i,e){a.dispatchEvent(this.props.onSelect,i,this,{item:this.getInputItem(e),itemId:e})}};l.propTypes={vertical:r.bool,items:r.arrayOf(r.object),style:r.object,animate:r.oneOfType([r.bool,r.shape({openDuration:r.number,closeDuration:r.number})]),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,onClose:r.func,role:r.string},l.defaultProps={vertical:!1,animate:!0};let m=l;exports.Menu=m; |
+88
-76
@@ -8,24 +8,30 @@ /** | ||
| */ | ||
| import * as m from "react"; | ||
| import i from "prop-types"; | ||
| import { Keys as h, classNames as g, dispatchEvent as b } from "@progress/kendo-react-common"; | ||
| import { ZERO_LEVEL_ZERO_ITEM_ID as f, EMPTY_ID as r, getItemById as a, isIdZeroLevel as p, getDirectParentId as C, getRootParentId as R, isIdEmptyOrZeroLevel as l } from "../utils/itemsIdsUtils.mjs"; | ||
| import { prepareInputItemsForInternalWork as D } from "../utils/prepareInputItemsForInternalWork.mjs"; | ||
| import { getNewItemIdUponKeyboardNavigation as I } from "../utils/getNewItemIdUponKeyboardNavigation.mjs"; | ||
| import { getHoverOpenDelay as H, getHoverCloseDelay as O } from "../utils/hoverDelay.mjs"; | ||
| import { MenuItemInternalsList as y } from "./MenuItemInternal.mjs"; | ||
| import { DirectionHolder as k } from "../utils/DirectionHolder.mjs"; | ||
| import { MouseOverHandler as L } from "../utils/MouseOverHandler.mjs"; | ||
| const u = { | ||
| import * as p from "react"; | ||
| import o from "prop-types"; | ||
| import { Keys as I, classNames as C, dispatchEvent as k } from "@progress/kendo-react-common"; | ||
| import { ZERO_LEVEL_ZERO_ITEM_ID as g, EMPTY_ID as r, getItemById as l, isIdZeroLevel as d, getDirectParentId as c, getRootParentId as u, isIdEmptyOrZeroLevel as m } from "../utils/itemsIdsUtils.mjs"; | ||
| import { prepareInputItemsForInternalWork as O } from "../utils/prepareInputItemsForInternalWork.mjs"; | ||
| import { getNewItemIdUponKeyboardNavigation as f } from "../utils/getNewItemIdUponKeyboardNavigation.mjs"; | ||
| import { getHoverOpenDelay as H, getHoverCloseDelay as R } from "../utils/hoverDelay.mjs"; | ||
| import { MenuItemInternalsList as L } from "./MenuItemInternal.mjs"; | ||
| import { DirectionHolder as y } from "../utils/DirectionHolder.mjs"; | ||
| import { MouseOverHandler as D } from "../utils/MouseOverHandler.mjs"; | ||
| const v = { | ||
| focusedItemId: r, | ||
| hoveredItemId: r, | ||
| tabbableItemId: f | ||
| }, n = class n extends m.Component { | ||
| tabbableItemId: g | ||
| }, h = class h extends p.Component { | ||
| constructor(s) { | ||
| super(s), this.menuWrapperEl = null, this.directionHolder = new k(), this.inputItems = [], this.items = [], this.reset = () => { | ||
| this.clearItemHoverAndLeaveRequestsIfApplicable(), this.setState(u); | ||
| super(s), this.menuWrapperEl = null, this.directionHolder = new y(), this.inputItems = [], this.items = [], this.reset = () => { | ||
| this.clearItemHoverAndLeaveRequestsIfApplicable(), this.setState(v); | ||
| }, this.handleClickOutside = (e) => { | ||
| var t; | ||
| if (this.props.openOnClick && this.state.hoveredItemId !== r) { | ||
| const i = e.target; | ||
| this.menuWrapperEl && !this.menuWrapperEl.contains(i) && (this.menuItemId && ((t = i.closest) != null && t.call(i, `[id^="${this.menuItemId}_"]`)) || this.setHoveredItemId(r)); | ||
| } | ||
| }, this.onKeyDown = (e) => { | ||
| if (this.state.focusedItemId !== r) { | ||
| const t = a(this.state.focusedItemId, this.items); | ||
| let o = I( | ||
| const t = l(this.state.focusedItemId, this.items); | ||
| let i = f( | ||
| this.items, | ||
@@ -38,6 +44,6 @@ t.id, | ||
| ); | ||
| const d = a(o, this.items); | ||
| if (d && d.separator && (o = I( | ||
| const n = l(i, this.items); | ||
| if (n && n.separator && (i = f( | ||
| this.items, | ||
| o, | ||
| i, | ||
| e.keyCode, | ||
@@ -47,7 +53,7 @@ e.key, | ||
| this.directionHolder.getIsDirectionRightToLeft() | ||
| )), t.id !== o && (e.preventDefault(), this.setFocusedItemId(o)), (e.keyCode === h.enter || e.keyCode === h.space) && !t.disabled && (this.mouseOverHandler.handleItemSelectedViaKeyboard(), this.dispatchSelectEventIfWired(e, t.id), !e.isDefaultPrevented() && t.items.length === 0 && t.url && window.location.assign(t.url)), e.keyCode === h.esc && p(t.id) && this.props.onClose) { | ||
| const v = this.getInputItem(t.id); | ||
| )), t.id !== i && (e.preventDefault(), this.setFocusedItemId(i)), (e.keyCode === I.enter || e.keyCode === I.space) && !t.disabled && (this.mouseOverHandler.handleItemSelectedViaKeyboard(), this.dispatchSelectEventIfWired(e, t.id), !e.isDefaultPrevented() && t.items.length === 0 && t.url && window.location.assign(t.url)), e.keyCode === I.esc && d(t.id) && this.props.onClose) { | ||
| const a = this.getInputItem(t.id); | ||
| this.props.onClose({ | ||
| target: this, | ||
| item: v, | ||
| item: a, | ||
| itemId: t.id | ||
@@ -58,16 +64,23 @@ }); | ||
| }, this.onItemMouseOver = (e) => { | ||
| this.mouseOverHandler.IsMouseOverEnabled && (this.clearItemHoverAndLeaveRequestsIfApplicable(), this.itemHoverRequest = window.setTimeout(() => { | ||
| const t = this.props.openOnClick && !d(e) && this.state.hoveredItemId !== r; | ||
| (this.mouseOverHandler.IsMouseOverEnabled || t) && (this.clearItemHoverAndLeaveRequestsIfApplicable(), this.itemHoverRequest = window.setTimeout(() => { | ||
| this.setHoveredItemId(e), this.itemHoverRequest = null; | ||
| }, H(this.props))); | ||
| }, this.onItemMouseLeave = (e) => { | ||
| this.mouseOverHandler.IsMouseOverEnabled && this.isItemWithDefaultClose(e) && (this.clearItemHoverAndLeaveRequestsIfApplicable(), this.itemLeaveRequest = window.setTimeout(() => { | ||
| this.setHoveredItemId(r), this.itemLeaveRequest = null; | ||
| }, O(this.props))); | ||
| }, this.onItemMouseDown = () => { | ||
| this.mouseOverHandler.handleItemMouseDown(); | ||
| const t = this.props.openOnClick && !d(e) && this.state.hoveredItemId !== r; | ||
| (this.mouseOverHandler.IsMouseOverEnabled || t) && this.isItemWithDefaultClose(e) && (this.clearItemHoverAndLeaveRequestsIfApplicable(), this.itemLeaveRequest = window.setTimeout(() => { | ||
| t ? this.setHoveredItemId(c(e)) : this.setHoveredItemId(r), this.itemLeaveRequest = null; | ||
| }, R(this.props))); | ||
| }, this.onItemFocus = (e) => { | ||
| this.setFocusedItemId(e), this.mouseOverHandler.handleItemFocus(); | ||
| this.state.hoveredItemId === r ? this.setFocusedItemId(e) : this.setState((t) => ({ | ||
| focusedItemId: e, | ||
| hoveredItemId: t.hoveredItemId, | ||
| tabbableItemId: u(e) | ||
| })); | ||
| }, this.onItemClick = (e, t) => { | ||
| const o = a(t, this.items); | ||
| o.disabled || (this.setFocusedItemId(t), this.mouseOverHandler.handleItemClick(t, this.isItemWithDefaultClose(t)), this.dispatchSelectEventIfWired(e, t), !e.isDefaultPrevented() && o.url && window.location.assign(o.url)); | ||
| const i = l(t, this.items); | ||
| if (!i.disabled) { | ||
| const n = d(t), a = !i.items || i.items.length === 0; | ||
| n ? (this.setFocusedItemId(t), a ? this.setHoveredItemId(r) : this.props.openOnClick && this.state.hoveredItemId !== r && u(this.state.hoveredItemId) === t ? this.setHoveredItemId(r) : this.setHoveredItemId(t)) : a && (this.setFocusedItemId(t), this.setHoveredItemId(r)), this.dispatchSelectEventIfWired(e, t), !e.isDefaultPrevented() && i.url && window.location.assign(i.url); | ||
| } | ||
| }, this.onPopupClose = (e, t) => { | ||
@@ -82,15 +95,15 @@ this.props.onClose && this.props.onClose({ | ||
| if (this.isItemWithDefaultClose(e) && this.setFocusedItemId(r), t.relatedTarget && t.relatedTarget.nodeName === "LI") { | ||
| const o = t.relatedTarget.getAttribute("id"); | ||
| if (o && o.includes(this.menuItemId)) | ||
| const i = t.relatedTarget.getAttribute("id"); | ||
| if (i && i.includes(this.menuItemId)) | ||
| return; | ||
| } | ||
| if (p(e) && this.props.onClose) { | ||
| const o = this.getInputItem(e); | ||
| if (d(e) && this.props.onClose) { | ||
| const i = this.getInputItem(e); | ||
| this.props.onClose({ | ||
| target: this, | ||
| item: o, | ||
| item: i, | ||
| itemId: e | ||
| }); | ||
| } | ||
| }, this.getInputItem = (e) => a(e, this.inputItems), this.mouseOverHandler = new L(this.props.openOnClick, this.reset, this.onItemMouseOver), this.state = Object.assign({}, u, { isFirstRender: !0 }); | ||
| }, this.getInputItem = (e) => l(e, this.inputItems), this.mouseOverHandler = new D(this.props.openOnClick, this.reset), this.state = Object.assign({}, v, { isFirstRender: !0 }); | ||
| } | ||
@@ -107,3 +120,3 @@ get menuItemId() { | ||
| get animate() { | ||
| return this.props.animate !== void 0 ? this.props.animate : n.defaultProps.animate; | ||
| return this.props.animate !== void 0 ? this.props.animate : h.defaultProps.animate; | ||
| } | ||
@@ -115,4 +128,4 @@ /** | ||
| this.prepareItems(), this.state.isFirstRender || this.directionHolder.setIsDirectionRightToLeft(this.checkIsDirectionRightToLeft()); | ||
| const s = this.state.hoveredItemId ? this.state.hoveredItemId : this.state.focusedItemId ? C(this.state.focusedItemId) : r; | ||
| return /* @__PURE__ */ m.createElement( | ||
| const s = this.state.hoveredItemId ? this.state.hoveredItemId : this.state.focusedItemId ? c(this.state.focusedItemId) : r; | ||
| return /* @__PURE__ */ p.createElement( | ||
| "div", | ||
@@ -128,4 +141,4 @@ { | ||
| }, | ||
| /* @__PURE__ */ m.createElement( | ||
| y, | ||
| /* @__PURE__ */ p.createElement( | ||
| L, | ||
| { | ||
@@ -146,3 +159,2 @@ className: this.getMenuClassName(), | ||
| onMouseOver: this.onItemMouseOver, | ||
| onMouseDown: this.onItemMouseDown, | ||
| onFocus: this.onItemFocus, | ||
@@ -162,3 +174,3 @@ onClick: this.onItemClick, | ||
| componentDidMount() { | ||
| this.setState({ isFirstRender: !1 }); | ||
| this.setState({ isFirstRender: !1 }), this.props.openOnClick && document.addEventListener("mousedown", this.handleClickOutside); | ||
| } | ||
@@ -169,3 +181,3 @@ /** | ||
| componentDidUpdate(s) { | ||
| (!!s.vertical != !!this.props.vertical || this.directionHolder.hasDirectionChanged()) && this.reset(), this.mouseOverHandler.OpenOnClick = this.props.openOnClick; | ||
| (!!s.vertical != !!this.props.vertical || this.directionHolder.hasDirectionChanged()) && this.reset(), this.mouseOverHandler.OpenOnClick = this.props.openOnClick, s.openOnClick !== this.props.openOnClick && (this.props.openOnClick ? document.addEventListener("mousedown", this.handleClickOutside) : document.removeEventListener("mousedown", this.handleClickOutside)); | ||
| } | ||
@@ -176,19 +188,19 @@ /** | ||
| componentWillUnmount() { | ||
| this.clearItemHoverAndLeaveRequestsIfApplicable(); | ||
| this.clearItemHoverAndLeaveRequestsIfApplicable(), document.removeEventListener("mousedown", this.handleClickOutside); | ||
| } | ||
| setFocusedItemId(s) { | ||
| this.setState((e) => { | ||
| const t = s === r ? e.tabbableItemId : R(s); | ||
| return { hoveredItemId: s === r || l(e.hoveredItemId) && l(s) ? e.hoveredItemId : r, focusedItemId: s, tabbableItemId: t }; | ||
| const t = s === r ? e.tabbableItemId : u(s); | ||
| return { hoveredItemId: s === r || m(e.hoveredItemId) && m(s) ? e.hoveredItemId : r, focusedItemId: s, tabbableItemId: t }; | ||
| }); | ||
| } | ||
| setHoveredItemId(s) { | ||
| this.setState((e) => l(s) && l(e.focusedItemId) ? { | ||
| this.setState((e) => m(s) && m(e.focusedItemId) ? { | ||
| hoveredItemId: s, | ||
| focusedItemId: e.focusedItemId, | ||
| tabbableItemId: e.tabbableItemId | ||
| } : { hoveredItemId: s, focusedItemId: r, tabbableItemId: f }); | ||
| } : { hoveredItemId: s, focusedItemId: r, tabbableItemId: g }); | ||
| } | ||
| getMenuClassName() { | ||
| return g( | ||
| return C( | ||
| "k-reset", | ||
@@ -212,34 +224,34 @@ "k-header", | ||
| prepareItems() { | ||
| const { items: s, inputItems: e } = D(this.props.items, this.props.children); | ||
| const { items: s, inputItems: e } = O(this.props.items, this.props.children); | ||
| this.items = s, this.inputItems = e; | ||
| } | ||
| dispatchSelectEventIfWired(s, e) { | ||
| b(this.props.onSelect, s, this, { item: this.getInputItem(e), itemId: e }); | ||
| k(this.props.onSelect, s, this, { item: this.getInputItem(e), itemId: e }); | ||
| } | ||
| }; | ||
| n.propTypes = { | ||
| vertical: i.bool, | ||
| items: i.arrayOf(i.object), | ||
| style: i.object, | ||
| animate: i.oneOfType([ | ||
| i.bool, | ||
| i.shape({ | ||
| openDuration: i.number, | ||
| closeDuration: i.number | ||
| h.propTypes = { | ||
| vertical: o.bool, | ||
| items: o.arrayOf(o.object), | ||
| style: o.object, | ||
| animate: o.oneOfType([ | ||
| o.bool, | ||
| o.shape({ | ||
| openDuration: o.number, | ||
| closeDuration: o.number | ||
| }) | ||
| ]), | ||
| dir: i.string, | ||
| hoverOpenDelay: i.number, | ||
| hoverCloseDelay: i.number, | ||
| openOnClick: i.bool, | ||
| itemRender: i.any, | ||
| linkRender: i.any, | ||
| customCloseItemIds: i.arrayOf(i.string), | ||
| onSelect: i.func, | ||
| onClose: i.func, | ||
| role: i.string | ||
| }, n.defaultProps = { vertical: !1, animate: !0 }; | ||
| let c = n; | ||
| dir: o.string, | ||
| hoverOpenDelay: o.number, | ||
| hoverCloseDelay: o.number, | ||
| openOnClick: o.bool, | ||
| itemRender: o.any, | ||
| linkRender: o.any, | ||
| customCloseItemIds: o.arrayOf(o.string), | ||
| onSelect: o.func, | ||
| onClose: o.func, | ||
| role: o.string | ||
| }, h.defaultProps = { vertical: !1, animate: !0 }; | ||
| let b = h; | ||
| export { | ||
| c as Menu | ||
| b as Menu | ||
| }; |
@@ -8,2 +8,2 @@ /** | ||
| */ | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react"),a=require("@progress/kendo-react-common"),I=require("@progress/kendo-react-popup"),m=require("../utils/itemsIdsUtils.js"),p=require("../utils/misc.js"),g=require("./MenuItemLink.js"),M=require("./MenuItemArrow.js");function f(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,o.get?o:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const s=f(h);class u 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?p.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(l,{item:e,animate:this.props.animate,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,onPopupClose:this.props.onPopupClose,key:t})):null}}class l 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.onPopupClose=t=>{this.props.onPopupClose(this.props.item.id,t)},this.state={opened:!1}}componentDidMount(){const e=this.props.focusedItemId,t=this.props.item.id;e&&e===t&&this.itemElement.focus({preventScroll:!0}),this.isFirstRender=!1}componentDidUpdate(e){const t=this.props.focusedItemId,o=this.props.item.id;if(t){const r=a.getActiveElement(document);e.focusedItemId!==t&&t===o&&!this.itemElement.contains(r)&&this.itemElement.focus({preventScroll:!0})}}render(){const e=this.props.item,t=e.id,o=p.getDOMElementId(this.props.menuGuid,t),r=e.separator;return s.createElement(s.Fragment,null,r?s.createElement("li",{className:"k-separator k-item","aria-hidden":!0,key:o,id:o,ref:i=>{this.itemElement=i}}):s.createElement("li",{id:o,className:this.getMenuItemClassName(e),style:e.cssStyle,tabIndex:t===this.props.tabbableItemId?0:-1,onMouseOver:this.onMouseOver,onMouseLeave:this.onMouseLeave,onMouseDown:i=>this.props.onMouseDown(i),onBlur:i=>this.props.onBlur(t,i),onFocus:()=>this.props.onFocus(t),onClick:i=>this.props.onClick(i,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?o:void 0,ref:i=>{this.itemElement=i},key:o},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:p.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(g.MenuItemLink,{url:e.url,opened:this.Opened},this.renderMenuIconIfApplicable(),t,this.renderArrowIfApplicable())}renderPopupIfOpened(){const e=this.props.item.id,t=this.props.animate,{anchorAlign:o,popupAlign:r,collision:i,animationDirection:d}=p.getPopupSettings(e,this.props.isMenuVertical,this.props.isDirectionRightToLeft),c=t===!0?{openDuration:300,closeDuration:300,direction:d}:t===!1?!1:{openDuration:(t==null?void 0:t.openDuration)||300,closeDuration:(t==null?void 0:t.closeDuration)||300,direction:(t==null?void 0:t.direction)||d};return s.createElement(I.Popup,{anchor:this.itemElement,show:this.Opened,popupClass:this.getPopupClassName(),anchorAlign:o,popupAlign:r,collision:i,animate:c,onClose:this.onPopupClose,key:"1"},s.createElement(u,{parentItemId:e,animate:this.props.animate,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,onPopupClose:this.props.onPopupClose}))}renderMenuIconIfApplicable(){const{icon:e,svgIcon:t}=this.props.item;return e||t?s.createElement(a.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(M.MenuItemArrow,{itemId:this.props.item.id,verticalMenu:this.props.isMenuVertical,dir:p.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&&m.shouldOpenItem(e.item.id,e.lastItemIdToBeOpened)&&!this.isFirstRender}getPopupClassName(){return a.classNames("k-menu-popup",{"k-rtl":this.props.isDirectionRightToLeft})}getMenuItemClassName(e){return a.classNames("k-item","k-menu-item",{"k-first":m.isFirstItemFromSiblings(e.id),"k-last":e.isLastFromSiblings,"k-disabled":e.disabled},e.cssClass)}}exports.MenuItemInternal=l;exports.MenuItemInternalsList=u; | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react"),a=require("@progress/kendo-react-common"),I=require("@progress/kendo-react-popup"),m=require("../utils/itemsIdsUtils.js"),p=require("../utils/misc.js"),g=require("./MenuItemLink.js"),M=require("./MenuItemArrow.js");function f(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const s=f(h);class l 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?p.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(u,{item:e,animate:this.props.animate,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,onBlur:this.props.onBlur,onFocus:this.props.onFocus,onClick:this.props.onClick,onOriginalItemNeeded:this.props.onOriginalItemNeeded,onPopupClose:this.props.onPopupClose,key:t})):null}}class u 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.onPopupClose=t=>{this.props.onPopupClose(this.props.item.id,t)},this.state={opened:!1}}componentDidMount(){const e=this.props.focusedItemId,t=this.props.item.id;e&&e===t&&this.itemElement.focus({preventScroll:!0}),this.isFirstRender=!1}componentDidUpdate(e){const t=this.props.focusedItemId,i=this.props.item.id;if(t){const r=a.getActiveElement(document);e.focusedItemId!==t&&t===i&&!this.itemElement.contains(r)&&this.itemElement.focus({preventScroll:!0})}}render(){const e=this.props.item,t=e.id,i=p.getDOMElementId(this.props.menuGuid,t),r=e.separator;return s.createElement(s.Fragment,null,r?s.createElement("li",{className:"k-separator k-item","aria-hidden":!0,key:i,id:i,ref:o=>{this.itemElement=o}}):s.createElement("li",{id:i,className:this.getMenuItemClassName(e),style:e.cssStyle,tabIndex:t===this.props.tabbableItemId?0:-1,onMouseOver:this.onMouseOver,onMouseLeave:this.onMouseLeave,onBlur:o=>this.props.onBlur(t,o),onFocus:()=>this.props.onFocus(t),onClick:o=>this.props.onClick(o,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:o=>{this.itemElement=o},key:i},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:p.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(g.MenuItemLink,{url:e.url,opened:this.Opened},this.renderMenuIconIfApplicable(),t,this.renderArrowIfApplicable())}renderPopupIfOpened(){const e=this.props.item.id,t=this.props.animate,{anchorAlign:i,popupAlign:r,collision:o,animationDirection:d}=p.getPopupSettings(e,this.props.isMenuVertical,this.props.isDirectionRightToLeft),c=t===!0?{openDuration:300,closeDuration:300,direction:d}:t===!1?!1:{openDuration:(t==null?void 0:t.openDuration)||300,closeDuration:(t==null?void 0:t.closeDuration)||300,direction:(t==null?void 0:t.direction)||d};return s.createElement(I.Popup,{anchor:this.itemElement,show:this.Opened,popupClass:this.getPopupClassName(),anchorAlign:i,popupAlign:r,collision:o,animate:c,onClose:this.onPopupClose,key:"1"},s.createElement(l,{parentItemId:e,animate:this.props.animate,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,onBlur:this.props.onBlur,onFocus:this.props.onFocus,onClick:this.props.onClick,onOriginalItemNeeded:this.props.onOriginalItemNeeded,onPopupClose:this.props.onPopupClose}))}renderMenuIconIfApplicable(){const{icon:e,svgIcon:t}=this.props.item;return e||t?s.createElement(a.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(M.MenuItemArrow,{itemId:this.props.item.id,verticalMenu:this.props.isMenuVertical,dir:p.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&&m.shouldOpenItem(e.item.id,e.lastItemIdToBeOpened)&&!this.isFirstRender}getPopupClassName(){return a.classNames("k-menu-popup",{"k-rtl":this.props.isDirectionRightToLeft})}getMenuItemClassName(e){return a.classNames("k-item","k-menu-item",{"k-first":m.isFirstItemFromSiblings(e.id),"k-last":e.isLastFromSiblings,"k-disabled":e.disabled},e.cssClass)}}exports.MenuItemInternal=u;exports.MenuItemInternalsList=l; |
@@ -11,6 +11,6 @@ /** | ||
| import { Popup as c } from "@progress/kendo-react-popup"; | ||
| import { shouldOpenItem as I, isFirstItemFromSiblings as M } from "../utils/itemsIdsUtils.mjs"; | ||
| import { getDOMElementId as d, convertBoolDirectionToString as m, getPopupSettings as g } from "../utils/misc.mjs"; | ||
| import { MenuItemLink as f } from "./MenuItemLink.mjs"; | ||
| import { MenuItemArrow as v } from "./MenuItemArrow.mjs"; | ||
| import { shouldOpenItem as I, isFirstItemFromSiblings as g } from "../utils/itemsIdsUtils.mjs"; | ||
| import { getDOMElementId as d, convertBoolDirectionToString as m, getPopupSettings as f } from "../utils/misc.mjs"; | ||
| import { MenuItemLink as v } from "./MenuItemLink.mjs"; | ||
| import { MenuItemArrow as M } from "./MenuItemArrow.mjs"; | ||
| class k extends s.Component { | ||
@@ -55,3 +55,2 @@ constructor() { | ||
| onMouseLeave: this.props.onMouseLeave, | ||
| onMouseDown: this.props.onMouseDown, | ||
| onBlur: this.props.onBlur, | ||
@@ -113,3 +112,2 @@ onFocus: this.props.onFocus, | ||
| onMouseLeave: this.onMouseLeave, | ||
| onMouseDown: (o) => this.props.onMouseDown(o), | ||
| onBlur: (o) => this.props.onBlur(t, o), | ||
@@ -149,6 +147,6 @@ onFocus: () => this.props.onFocus(t), | ||
| 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); | ||
| return /* @__PURE__ */ s.createElement(f, { url: e.url, opened: this.Opened }, this.renderMenuIconIfApplicable(), t, this.renderArrowIfApplicable()); | ||
| return /* @__PURE__ */ s.createElement(v, { url: e.url, opened: this.Opened }, this.renderMenuIconIfApplicable(), t, this.renderArrowIfApplicable()); | ||
| } | ||
| renderPopupIfOpened() { | ||
| const e = this.props.item.id, t = this.props.animate, { anchorAlign: i, popupAlign: n, collision: o, animationDirection: r } = g( | ||
| const e = this.props.item.id, t = this.props.animate, { anchorAlign: i, popupAlign: n, collision: o, animationDirection: r } = f( | ||
| e, | ||
@@ -192,3 +190,2 @@ this.props.isMenuVertical, | ||
| onMouseLeave: this.props.onMouseLeave, | ||
| onMouseDown: this.props.onMouseDown, | ||
| onBlur: this.props.onBlur, | ||
@@ -209,3 +206,3 @@ onFocus: this.props.onFocus, | ||
| return this.props.item.items.length > 0 ? /* @__PURE__ */ s.createElement("span", { className: "k-menu-expand-arrow", "aria-hidden": !0 }, /* @__PURE__ */ s.createElement( | ||
| v, | ||
| M, | ||
| { | ||
@@ -242,3 +239,3 @@ itemId: this.props.item.id, | ||
| { | ||
| "k-first": M(e.id), | ||
| "k-first": g(e.id), | ||
| "k-last": e.isLastFromSiblings, | ||
@@ -245,0 +242,0 @@ "k-disabled": e.disabled |
@@ -14,12 +14,7 @@ /** | ||
| private resetMenu; | ||
| private openItem; | ||
| private isMouseOverEnabled; | ||
| private mouseDown; | ||
| constructor(openOnClick: boolean | undefined, resetMenu: any, openItem: any); | ||
| constructor(openOnClick: boolean | undefined, resetMenu: any); | ||
| set OpenOnClick(value: boolean | undefined); | ||
| handleItemSelectedViaKeyboard(): void; | ||
| get IsMouseOverEnabled(): boolean; | ||
| handleItemMouseDown(): void; | ||
| handleItemFocus(): void; | ||
| handleItemClick(itemId: string, clickedItemIsWithDefaultClose: boolean): void; | ||
| } |
@@ -8,2 +8,2 @@ /** | ||
| */ | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class i{constructor(e,s,t){this.openOnClick=e,this.resetMenu=s,this.openItem=t,this.mouseDown=!1,this.openOnClick=e,this.isMouseOverEnabled=!e}set OpenOnClick(e){!!e!=!!this.openOnClick&&(this.mouseDown=!1,this.isMouseOverEnabled=!e),this.openOnClick=e}handleItemSelectedViaKeyboard(){this.openOnClick&&(this.isMouseOverEnabled=!1,this.resetMenu())}get IsMouseOverEnabled(){return this.isMouseOverEnabled}handleItemMouseDown(){this.mouseDown=!0}handleItemFocus(){this.openOnClick&&!this.mouseDown&&(this.isMouseOverEnabled=!0),this.mouseDown=!1}handleItemClick(e,s){this.openOnClick&&(this.isMouseOverEnabled?s&&(this.isMouseOverEnabled=!1,this.resetMenu()):(this.isMouseOverEnabled=!0,this.openItem(e)))}}exports.MouseOverHandler=i; | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class t{constructor(e,s){this.openOnClick=e,this.resetMenu=s,this.isMouseOverEnabled=!e}set OpenOnClick(e){!!e!=!!this.openOnClick&&(this.isMouseOverEnabled=!e),this.openOnClick=e}handleItemSelectedViaKeyboard(){this.openOnClick&&(this.isMouseOverEnabled=!1,this.resetMenu())}get IsMouseOverEnabled(){return this.isMouseOverEnabled}}exports.MouseOverHandler=t; |
@@ -8,8 +8,8 @@ /** | ||
| */ | ||
| class n { | ||
| constructor(e, s, i) { | ||
| this.openOnClick = e, this.resetMenu = s, this.openItem = i, this.mouseDown = !1, this.openOnClick = e, this.isMouseOverEnabled = !e; | ||
| class i { | ||
| constructor(e, s) { | ||
| this.openOnClick = e, this.resetMenu = s, this.isMouseOverEnabled = !e; | ||
| } | ||
| set OpenOnClick(e) { | ||
| !!e != !!this.openOnClick && (this.mouseDown = !1, this.isMouseOverEnabled = !e), this.openOnClick = e; | ||
| !!e != !!this.openOnClick && (this.isMouseOverEnabled = !e), this.openOnClick = e; | ||
| } | ||
@@ -22,14 +22,5 @@ handleItemSelectedViaKeyboard() { | ||
| } | ||
| handleItemMouseDown() { | ||
| this.mouseDown = !0; | ||
| } | ||
| handleItemFocus() { | ||
| this.openOnClick && !this.mouseDown && (this.isMouseOverEnabled = !0), this.mouseDown = !1; | ||
| } | ||
| handleItemClick(e, s) { | ||
| this.openOnClick && (this.isMouseOverEnabled ? s && (this.isMouseOverEnabled = !1, this.resetMenu()) : (this.isMouseOverEnabled = !0, this.openItem(e))); | ||
| } | ||
| } | ||
| export { | ||
| n as MouseOverHandler | ||
| i as MouseOverHandler | ||
| }; |
@@ -8,2 +8,2 @@ /** | ||
| */ | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Object.freeze({name:"@progress/kendo-react-layout",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate: 1771495833,version:"14.2.0-develop.1",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"});exports.packageMetadata=e; | ||
| "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=Object.freeze({name:"@progress/kendo-react-layout",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate: 1771509878,version:"14.2.0",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"});exports.packageMetadata=e; |
@@ -11,4 +11,4 @@ // Generated file. DO NOT EDIT. | ||
| publishDate: 0, | ||
| version: '14.2.0-develop.1', | ||
| version: '14.2.0', | ||
| licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/components/my-license/' | ||
| }); |
+8
-8
| { | ||
| "name": "@progress/kendo-react-layout", | ||
| "version": "14.2.0-develop.1", | ||
| "version": "14.2.0", | ||
| "description": "React Layout components enable you to create a perceptive and intuitive layout of web projects. KendoReact Layout package", | ||
@@ -29,8 +29,8 @@ "author": "Progress", | ||
| "@progress/kendo-licensing": "^1.7.2", | ||
| "@progress/kendo-react-animation": "14.2.0-develop.1", | ||
| "@progress/kendo-react-buttons": "14.2.0-develop.1", | ||
| "@progress/kendo-react-common": "14.2.0-develop.1", | ||
| "@progress/kendo-react-intl": "14.2.0-develop.1", | ||
| "@progress/kendo-react-popup": "14.2.0-develop.1", | ||
| "@progress/kendo-react-progressbars": "14.2.0-develop.1", | ||
| "@progress/kendo-react-animation": "14.2.0", | ||
| "@progress/kendo-react-buttons": "14.2.0", | ||
| "@progress/kendo-react-common": "14.2.0", | ||
| "@progress/kendo-react-intl": "14.2.0", | ||
| "@progress/kendo-react-popup": "14.2.0", | ||
| "@progress/kendo-react-progressbars": "14.2.0", | ||
| "@progress/kendo-svg-icons": "^4.0.0", | ||
@@ -80,3 +80,3 @@ "react": "^18.0.0 || ^19.0.0", | ||
| "productCode": "KENDOUIREACT", | ||
| "publishDate": 1771495833, | ||
| "publishDate": 1771509878, | ||
| "licensingDocsUrl": "https://www.telerik.com/kendo-react-ui/components/my-license/" | ||
@@ -83,0 +83,0 @@ } |
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
815539
0.16%64
-3.03%