@progress/kendo-react-tooltip 8.2.0-develop.33 → 8.2.0-develop.34
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/dist/cdn/js/kendo-react-tooltip.js +1 -1
- package/index.d.mts +18 -0
- package/index.d.ts +18 -0
- package/package-metadata.mjs +1 -1
- package/package.json +3 -3
- package/popover/Popover.js +1 -1
- package/popover/Popover.mjs +97 -83
- package/popover/utils.js +8 -0
- package/popover/utils.mjs +30 -0
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("react-dom"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-react-popup")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","prop-types","@progress/kendo-react-common","@progress/kendo-react-popup"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).KendoReactTooltip={},t.React,t.ReactDOM,t.PropTypes,t.KendoReactCommon,t.KendoReactPopup)}(this,(function(t,e,o,n,i,l){"use strict";function r(t){var e=Object.create(null);return t&&Object.keys(t).forEach((function(o){if("default"!==o){var n=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,n.get?n:{enumerable:!0,get:function(){return t[o]}})}})),e.default=t,Object.freeze(e)}var s=r(e),a=r(o);const p=["k-tooltip-content","k-animation-container","k-tooltip","k-tooltip-title","k-tooltip k-tooltip-closable","k-icon k-i-close"],c=t=>{if(null===t)return!1;let e=t;for(;e;){if(null!==e&&e.classList&&e.classList.contains("k-tooltip"))return!0;e=null!==e.parentNode&&e.parentNode}return p.filter((e=>e===t.className)).length>0},u={name:"@progress/kendo-react-tooltip",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},h=class t extends s.PureComponent{constructor(t){super(t),this.context=0,this.state={targetElement:null,open:!1,title:""},this.top=0,this.left=0,this.willOpen=!1,this.handleMouseOut=t=>{const{targetElement:e}=this.state,o=e?e.ownerDocument:document;let n=o&&o.elementFromPoint(t.clientX,t.clientY);c(n)||this.props.open||(clearInterval(this.updateIntervalId),this.willOpen=!1,this.onClose(t))},this.handleMouseOver=t=>{const e=t.target;!this.isVisible(e)||c(e)||e===this.state.targetElement||this.showToolTip(t)},this.handleBodyMousemove=t=>{this.top=t.clientY,this.left=t.clientX},this.onClose=t=>{i.dispatchEvent(this.props.onClose,t,this,void 0),this.setState({targetElement:null,open:!1,title:""})},this.setUpdateInterval=()=>{this.props.updateInterval&&(this.updateIntervalId=setInterval(this.onIntervalUpdate,this.props.updateInterval))},this.onIntervalUpdate=()=>{const t=this.state.targetElement;t&&(null===t.parentElement?this.onClose({target:t}):this.showToolTip({target:t}))},this.position=t=>{let e=(t=>null!==t?t.getBoundingClientRect():document.body.getBoundingClientRect())(this.state.targetElement);const o=((t,e,o,n,i)=>{switch(i){case"bottom":case"top":return"pointer"===n?t-e/2:o.left-e/2+o.width/2;case"left":return"pointer"===n?t-e-10:o.left-e-10;case"right":return"pointer"===n?t+10:o.right+10;default:return"pointer"===n?t<window.screen.availWidth/2?t-10:t-e+10:t<window.screen.availWidth/2?o.left:o.right-e}})(this.left,t.offsetWidth,e,this.props.anchorElement,this.props.position),n=((t,e,o,n,i)=>{switch(i){case"bottom":return"pointer"===n?t+10:e.bottom+10;case"left":case"right":return"pointer"===n?t-o/2:e.top-o/2+e.height/2;case"top":return"pointer"===n?t-o-10:e.top-o-10;default:return"pointer"===n?t<window.innerHeight/2?t+10:t-o-10:t<window.innerHeight/2?e.bottom+10:e.top-o-10}})(this.top,e,t.offsetHeight,this.props.anchorElement,this.props.position);return{left:o,top:n}},this.getTitle=t=>{for(;t;){if(null!==t.getAttribute("title")||t.titleExpando)return{title:t.getAttribute("title")||t.titleExpando,element:t};t=this.props.parentTitle&&t.parentElement||null}return{title:"",element:t}},this.calloutClassName=()=>{switch(this.props.position){case"bottom":return"k-callout k-callout-n";case"left":return"k-callout k-callout-e";case"right":return"k-callout k-callout-w";case"top":return"k-callout k-callout-s";default:return this.top<window.innerHeight/2?"k-callout k-callout-n":"k-callout k-callout-s"}},this.getCurrentZIndex=()=>this.context?this.context:100,i.validatePackage(u)}componentDidMount(){document&&document.body.addEventListener("mousemove",this.handleBodyMousemove)}componentWillUnmount(){clearTimeout(this.openTimeoutId),clearInterval(this.updateIntervalId),document&&document.body.removeEventListener("mousemove",this.handleBodyMousemove)}componentDidUpdate(){this.props.open&&this.props.targetElement&&this.showToolTip({target:this.props.targetElement})}render(){if(this.props.children){const{children:e,...o}=this.props;let n=null;return s.createElement("div",{onMouseOver:t=>{n&&n.handleMouseOver(t)},onMouseOut:t=>{n&&n.handleMouseOut(t)}},s.createElement(t,{ref:t=>n=t,...o}),e)}if(!1===this.props.open)return null;const{targetElement:e}=this.state,o=this.getCurrentZIndex();return e&&this.state.title&&e.ownerDocument&&a.createPortal(s.createElement("div",{ref:t=>{if(!t)return;let e;if(this.props.onPosition){const o={element:t,targetElement:this.state.targetElement,mouseTop:this.top,mouseLeft:this.left,anchorElement:this.props.anchorElement,position:this.props.position,target:this,syntheticEvent:null,nativeEvent:null};e=this.props.onPosition.call(void 0,o)}else e=this.position(t);t.style.left=e.left+"px",t.style.top=e.top+"px"},className:i.classNames("k-animation-container","k-animation-container-fixed","k-animation-container-shown",this.props.className),style:{zIndex:o,...this.props.style},tabIndex:0},s.createElement("div",{className:"k-child-animation-container"},s.createElement("div",{id:this.props.id,role:"tooltip",className:i.classNames("k-tooltip",this.props.tooltipClassName),style:{position:"relative",...this.props.tooltipStyle}},s.createElement("div",{className:"k-tooltip-content"},this.props.content&&s.createElement(this.props.content,{title:this.state.title,target:this.state.targetElement})||this.state.title),this.props.showCallout&&s.createElement("div",{ref:t=>{t&&(t.className=this.calloutClassName(),"auto"===this.props.position&&(this.left<window.screen.availWidth/2?t.style.left=this.props.setCalloutOnPositionAuto||"25%":t.style.left=this.props.setCalloutOnPositionAuto||"75%"))}})))),this.props.appendTo?this.props.appendTo:e.ownerDocument.body)}showToolTip(t){clearTimeout(this.openTimeoutId),clearInterval(this.updateIntervalId),t.target.hasChildNodes()&&t.target.childNodes.forEach((e=>{"title"===e.nodeName&&(t.target.titleExpando=e.innerHTML,e.remove())}));const e=this.props.targetElement||t.target;let o=this.getTitle(e);o.title?(o.element&&(o.element.titleExpando=o.title,o.element.title=""),this.willOpen=!0,this.props.openDelay?this.openTimeoutId=window.setTimeout((()=>{this.willOpen&&this.setState({targetElement:e,open:!0,title:o.title},this.setUpdateInterval)}),this.props.openDelay):this.setState({targetElement:e,open:!0,title:o.title},this.setUpdateInterval),this.state.title!==o.title&&i.dispatchEvent(this.props.onOpen,t,this,void 0)):this.state.open&&this.onClose(t)}isVisible(t){return!this.props.filter||this.props.filter(t)}};h.propTypes={anchorElement:n.oneOf(["pointer","target"]),content:n.func,filter:n.func,openDelay:n.number,position:n.oneOf(["right","left","top","bottom","auto"]),updateInterval:n.number},h.defaultProps={anchorElement:"pointer",openDelay:400,position:"auto",showCallout:!0,parentTitle:!1},h.contextType=i.ZIndexContext;let d=h;const m=s.forwardRef(((t,e)=>{const o=s.useRef(null),n=s.useRef(null),{alignment:l=f.alignment,orientation:r=f.orientation}=t;return s.useImperativeHandle(n,(()=>({props:t,element:o.current}))),s.useImperativeHandle(e,(()=>n.current)),s.createElement("div",{ref:o,className:i.classNames("k-popover-actions","k-actions",{[`k-actions-${l}`]:l,[`k-actions-${r}`]:r})},t.children)})),f={alignment:"stretched",orientation:"horizontal"};m.propTypes={alignment:n.oneOf(["start","center","end","stretched"]),orientation:n.oneOf(["horizontal","vertical"]),children:n.oneOfType([n.element,n.node])},m.displayName="KendoReactPopoverActionsBar";const v={top:"k-callout-s",left:"k-callout-e",bottom:"k-callout-n",right:"k-callout-w"},g={top:"k-callout-n",left:"k-callout-w",bottom:"k-callout-s",right:"k-callout-e"},y={top:{vertical:"bottom",horizontal:"center"},left:{vertical:"center",horizontal:"right"},bottom:{vertical:"top",horizontal:"center"},right:{vertical:"center",horizontal:"left"}},E={top:{vertical:"top",horizontal:"center"},left:{vertical:"center",horizontal:"left"},bottom:{vertical:"bottom",horizontal:"center"},right:{vertical:"center",horizontal:"right"}},k=t=>s.Children.toArray(t).filter((t=>t&&t.type===m)),b=t=>s.Children.toArray(t).filter((t=>t&&t.type!==m)),w=s.forwardRef(((t,e)=>{i.validatePackage(u);const{callout:o=T.callout,position:n=T.position,collision:r=T.collision,title:a,children:p,show:c,anchor:h,appendTo:d,offset:m,animate:f,positionMode:w,scale:O,popoverClass:I,className:C,id:N,style:x,contentStyle:P,onPosition:R,onClose:D,onOpen:M}=t,[z,A]=s.useState(!1),j="top"===n||"bottom"===n,K=t.margin||{vertical:o&&j?15:0,horizontal:o&&!j?15:0},U=y[n],H=E[n],B=s.useContext(i.ZIndexContext),L=B?B+2e3:12e3,S=s.useRef(null);s.useImperativeHandle(S,(()=>({props:t}))),s.useImperativeHandle(e,(()=>S.current));const q=s.useCallback((t=>{if(setTimeout((()=>A(t.flipped))),R){const e={target:S.current,flipped:t.flipped,fitted:t.fitted};R.call(void 0,e)}}),[R,A]),W=s.useCallback((()=>{if(M){const t={target:S.current};M.call(void 0,t)}}),[M]),Z=s.useCallback((()=>{if(D){const t={target:S.current};D.call(void 0,t)}}),[D]),V={"k-popover":!0};Array.isArray(I)?I.forEach((t=>V[t]=!0)):"object"==typeof I?Object.keys(I).forEach((t=>{V[t]=I[t]})):I&&(V[I]=!0);const F=z?g[n]:v[n],X=s.useMemo((()=>s.createElement(s.Fragment,null,a&&s.createElement("div",{className:"k-popover-header"},a),s.createElement("div",{className:"k-popover-body",style:P},b(p)),k(p))),[p,P,a]);return s.createElement(i.ZIndexContext.Provider,{value:L},s.createElement(l.Popup,{id:N,role:"tooltip",animate:f,collision:r,anchor:h,offset:m,margin:K,popupAlign:U,anchorAlign:H,appendTo:d,show:c,scale:O,positionMode:w,style:x,className:C,popupClass:V,onOpen:W,onClose:Z,onPosition:q},o&&n?s.createElement(s.Fragment,null,s.createElement("div",{className:i.classNames("k-popover-callout",F)}),s.createElement("div",{className:"k-popover-inner"},X)):X))})),T={callout:!0,position:"top",collision:{horizontal:"none",vertical:"none"}};w.propTypes={callout:n.bool,title:n.node,position:n.oneOf(["top","left","bottom","right"]),show:n.bool,animate:n.oneOfType([n.bool,n.shape({openDuration:n.number,closeDuration:n.number})]),anchor:function(t){const e=t.anchor;return e&&"number"!=typeof e.nodeType?new Error("Invalid prop `anchor` supplied to `Kendo React Popover`. Validation failed."):null},appendTo:function(t){const e=t.appendTo;return e&&"number"!=typeof e.nodeType?new Error("Invalid prop `appendTo` supplied to `Kendo React Popover`. Validation failed."):null},positionMode:n.oneOf(["fixed","absolute"]),scale:n.number,offset:n.shape({left:n.number,top:n.number}),children:n.oneOfType([n.element,n.node]),className:n.oneOfType([n.string,n.arrayOf(n.string),n.object]),id:n.string,popoverClass:n.oneOfType([n.string,n.arrayOf(n.string),n.object]),style:n.object,onClose:n.func,onPosition:n.func,onOpen:n.func},w.displayName="KendoReactPopover",t.Popover=w,t.PopoverActionsBar=m,t.Tooltip=d}));
|
|
8
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("react-dom"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-react-popup")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","prop-types","@progress/kendo-react-common","@progress/kendo-react-popup"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).KendoReactTooltip={},t.React,t.ReactDOM,t.PropTypes,t.KendoReactCommon,t.KendoReactPopup)}(this,(function(t,e,o,n,i,r){"use strict";function l(t){var e=Object.create(null);return t&&Object.keys(t).forEach((function(o){if("default"!==o){var n=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,n.get?n:{enumerable:!0,get:function(){return t[o]}})}})),e.default=t,Object.freeze(e)}var s=l(e),a=l(o);const p=["k-tooltip-content","k-animation-container","k-tooltip","k-tooltip-title","k-tooltip k-tooltip-closable","k-icon k-i-close"],c=t=>{if(null===t)return!1;let e=t;for(;e;){if(null!==e&&e.classList&&e.classList.contains("k-tooltip"))return!0;e=null!==e.parentNode&&e.parentNode}return p.filter((e=>e===t.className)).length>0},u={name:"@progress/kendo-react-tooltip",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},h=class t extends s.PureComponent{constructor(t){super(t),this.context=0,this.state={targetElement:null,open:!1,title:""},this.top=0,this.left=0,this.willOpen=!1,this.handleMouseOut=t=>{const{targetElement:e}=this.state,o=e?e.ownerDocument:document;let n=o&&o.elementFromPoint(t.clientX,t.clientY);c(n)||this.props.open||(clearInterval(this.updateIntervalId),this.willOpen=!1,this.onClose(t))},this.handleMouseOver=t=>{const e=t.target;!this.isVisible(e)||c(e)||e===this.state.targetElement||this.showToolTip(t)},this.handleBodyMousemove=t=>{this.top=t.clientY,this.left=t.clientX},this.onClose=t=>{i.dispatchEvent(this.props.onClose,t,this,void 0),this.setState({targetElement:null,open:!1,title:""})},this.setUpdateInterval=()=>{this.props.updateInterval&&(this.updateIntervalId=setInterval(this.onIntervalUpdate,this.props.updateInterval))},this.onIntervalUpdate=()=>{const t=this.state.targetElement;t&&(null===t.parentElement?this.onClose({target:t}):this.showToolTip({target:t}))},this.position=t=>{let e=(t=>null!==t?t.getBoundingClientRect():document.body.getBoundingClientRect())(this.state.targetElement);const o=((t,e,o,n,i)=>{switch(i){case"bottom":case"top":return"pointer"===n?t-e/2:o.left-e/2+o.width/2;case"left":return"pointer"===n?t-e-10:o.left-e-10;case"right":return"pointer"===n?t+10:o.right+10;default:return"pointer"===n?t<window.screen.availWidth/2?t-10:t-e+10:t<window.screen.availWidth/2?o.left:o.right-e}})(this.left,t.offsetWidth,e,this.props.anchorElement,this.props.position),n=((t,e,o,n,i)=>{switch(i){case"bottom":return"pointer"===n?t+10:e.bottom+10;case"left":case"right":return"pointer"===n?t-o/2:e.top-o/2+e.height/2;case"top":return"pointer"===n?t-o-10:e.top-o-10;default:return"pointer"===n?t<window.innerHeight/2?t+10:t-o-10:t<window.innerHeight/2?e.bottom+10:e.top-o-10}})(this.top,e,t.offsetHeight,this.props.anchorElement,this.props.position);return{left:o,top:n}},this.getTitle=t=>{for(;t;){if(null!==t.getAttribute("title")||t.titleExpando)return{title:t.getAttribute("title")||t.titleExpando,element:t};t=this.props.parentTitle&&t.parentElement||null}return{title:"",element:t}},this.calloutClassName=()=>{switch(this.props.position){case"bottom":return"k-callout k-callout-n";case"left":return"k-callout k-callout-e";case"right":return"k-callout k-callout-w";case"top":return"k-callout k-callout-s";default:return this.top<window.innerHeight/2?"k-callout k-callout-n":"k-callout k-callout-s"}},this.getCurrentZIndex=()=>this.context?this.context:100,i.validatePackage(u)}componentDidMount(){document&&document.body.addEventListener("mousemove",this.handleBodyMousemove)}componentWillUnmount(){clearTimeout(this.openTimeoutId),clearInterval(this.updateIntervalId),document&&document.body.removeEventListener("mousemove",this.handleBodyMousemove)}componentDidUpdate(){this.props.open&&this.props.targetElement&&this.showToolTip({target:this.props.targetElement})}render(){if(this.props.children){const{children:e,...o}=this.props;let n=null;return s.createElement("div",{onMouseOver:t=>{n&&n.handleMouseOver(t)},onMouseOut:t=>{n&&n.handleMouseOut(t)}},s.createElement(t,{ref:t=>n=t,...o}),e)}if(!1===this.props.open)return null;const{targetElement:e}=this.state,o=this.getCurrentZIndex();return e&&this.state.title&&e.ownerDocument&&a.createPortal(s.createElement("div",{ref:t=>{if(!t)return;let e;if(this.props.onPosition){const o={element:t,targetElement:this.state.targetElement,mouseTop:this.top,mouseLeft:this.left,anchorElement:this.props.anchorElement,position:this.props.position,target:this,syntheticEvent:null,nativeEvent:null};e=this.props.onPosition.call(void 0,o)}else e=this.position(t);t.style.left=e.left+"px",t.style.top=e.top+"px"},className:i.classNames("k-animation-container","k-animation-container-fixed","k-animation-container-shown",this.props.className),style:{zIndex:o,...this.props.style},tabIndex:0},s.createElement("div",{className:"k-child-animation-container"},s.createElement("div",{id:this.props.id,role:"tooltip",className:i.classNames("k-tooltip",this.props.tooltipClassName),style:{position:"relative",...this.props.tooltipStyle}},s.createElement("div",{className:"k-tooltip-content"},this.props.content&&s.createElement(this.props.content,{title:this.state.title,target:this.state.targetElement})||this.state.title),this.props.showCallout&&s.createElement("div",{ref:t=>{t&&(t.className=this.calloutClassName(),"auto"===this.props.position&&(this.left<window.screen.availWidth/2?t.style.left=this.props.setCalloutOnPositionAuto||"25%":t.style.left=this.props.setCalloutOnPositionAuto||"75%"))}})))),this.props.appendTo?this.props.appendTo:e.ownerDocument.body)}showToolTip(t){clearTimeout(this.openTimeoutId),clearInterval(this.updateIntervalId),t.target.hasChildNodes()&&t.target.childNodes.forEach((e=>{"title"===e.nodeName&&(t.target.titleExpando=e.innerHTML,e.remove())}));const e=this.props.targetElement||t.target;let o=this.getTitle(e);o.title?(o.element&&(o.element.titleExpando=o.title,o.element.title=""),this.willOpen=!0,this.props.openDelay?this.openTimeoutId=window.setTimeout((()=>{this.willOpen&&this.setState({targetElement:e,open:!0,title:o.title},this.setUpdateInterval)}),this.props.openDelay):this.setState({targetElement:e,open:!0,title:o.title},this.setUpdateInterval),this.state.title!==o.title&&i.dispatchEvent(this.props.onOpen,t,this,void 0)):this.state.open&&this.onClose(t)}isVisible(t){return!this.props.filter||this.props.filter(t)}};h.propTypes={anchorElement:n.oneOf(["pointer","target"]),content:n.func,filter:n.func,openDelay:n.number,position:n.oneOf(["right","left","top","bottom","auto"]),updateInterval:n.number},h.defaultProps={anchorElement:"pointer",openDelay:400,position:"auto",showCallout:!0,parentTitle:!1},h.contextType=i.ZIndexContext;let d=h;const m=s.forwardRef(((t,e)=>{const o=s.useRef(null),n=s.useRef(null),{alignment:r=f.alignment,orientation:l=f.orientation}=t;return s.useImperativeHandle(n,(()=>({props:t,element:o.current}))),s.useImperativeHandle(e,(()=>n.current)),s.createElement("div",{ref:o,className:i.classNames("k-popover-actions","k-actions",{[`k-actions-${r}`]:r,[`k-actions-${l}`]:l})},t.children)})),f={alignment:"stretched",orientation:"horizontal"};m.propTypes={alignment:n.oneOf(["start","center","end","stretched"]),orientation:n.oneOf(["horizontal","vertical"]),children:n.oneOfType([n.element,n.node])},m.displayName="KendoReactPopoverActionsBar";const v=t=>{if(t){const e=t.querySelectorAll(i.FOCUSABLE_ELEMENTS.join(", "));if(e.length)return e[0]}},g=t=>{const e=v(document.querySelector(".k-popover-inner")),o=(t=>{if(t){const e=t.querySelectorAll(i.FOCUSABLE_ELEMENTS.join(", "));if(e.length)return e[e.length-1]}})(document.querySelector(".k-popover-inner"));t.shiftKey&&t.target===e?(o&&o.focus(),t.preventDefault()):!t.shiftKey&&t.target===o&&(e&&e.focus(),t.preventDefault())},y={top:"k-callout-s",left:"k-callout-e",bottom:"k-callout-n",right:"k-callout-w"},E={top:"k-callout-n",left:"k-callout-w",bottom:"k-callout-s",right:"k-callout-e"},k={top:{vertical:"bottom",horizontal:"center"},left:{vertical:"center",horizontal:"right"},bottom:{vertical:"top",horizontal:"center"},right:{vertical:"center",horizontal:"left"}},b={top:{vertical:"top",horizontal:"center"},left:{vertical:"center",horizontal:"left"},bottom:{vertical:"bottom",horizontal:"center"},right:{vertical:"center",horizontal:"right"}},w=t=>s.Children.toArray(t).filter((t=>t&&t.type===m)),T=t=>s.Children.toArray(t).filter((t=>t&&t.type!==m)),O=s.forwardRef(((t,e)=>{i.validatePackage(u);const{callout:o=C.callout,position:n=C.position,collision:l=C.collision,title:a,children:p,show:c,anchor:h,appendTo:d,offset:m,animate:f,positionMode:O,scale:I,popoverClass:N,className:x,id:P,style:D,contentStyle:M,onPosition:R,onClose:A,onOpen:S,onKeyDown:z}=t,[K,j]=s.useState(!1),U="top"===n||"bottom"===n,L=t.margin||{vertical:o&&U?15:0,horizontal:o&&!U?15:0},q=k[n],B=b[n],H=s.useContext(i.ZIndexContext),F=H?H+2e3:12e3,W=s.useRef(null);s.useImperativeHandle(W,(()=>({props:t}))),s.useImperativeHandle(e,(()=>W.current));const Z=s.useCallback((t=>{if(setTimeout((()=>j(t.flipped))),R){const e={target:W.current,flipped:t.flipped,fitted:t.fitted};R.call(void 0,e)}}),[R,j]),V=s.useCallback((()=>{const t=v(document.querySelector(".k-popover-inner"));if(t&&t.focus(),S){const t={target:W.current};S.call(void 0,t)}}),[S]),X=s.useCallback((t=>{if(z&&"Escape"===t.key){const t={target:W.current,show:!1};z.call(void 0,t)}"Tab"===t.key&&g(t)}),[z]),Y=s.useCallback((t=>{if(A){const t={target:W.current};A.call(void 0,t)}t&&t.target&&t.target.props&&t.target.props.anchor&&t.target.props.anchor.focus()}),[A]),$={"k-popover":!0};Array.isArray(N)?N.forEach((t=>$[t]=!0)):"object"==typeof N?Object.keys(N).forEach((t=>{$[t]=N[t]})):N&&($[N]=!0);const _=K?E[n]:y[n],G=s.useMemo((()=>s.createElement(s.Fragment,null,a&&s.createElement("div",{className:"k-popover-header"},a),s.createElement("div",{className:"k-popover-body",style:M},T(p)),w(p))),[p,M,a]);return s.createElement(i.ZIndexContext.Provider,{value:F},s.createElement(r.Popup,{id:P,role:"tooltip",animate:f,collision:l,anchor:h,offset:m,margin:L,popupAlign:q,anchorAlign:B,appendTo:d,show:c,scale:I,positionMode:O,style:D,className:x,popupClass:$,onOpen:V,onClose:Y,onPosition:Z,onKeyDown:X},o&&n?s.createElement(s.Fragment,null,s.createElement("div",{className:i.classNames("k-popover-callout",_)}),s.createElement("div",{className:"k-popover-inner"},G)):G))})),C={callout:!0,position:"top",collision:{horizontal:"none",vertical:"none"}};O.propTypes={callout:n.bool,title:n.node,position:n.oneOf(["top","left","bottom","right"]),show:n.bool,animate:n.oneOfType([n.bool,n.shape({openDuration:n.number,closeDuration:n.number})]),anchor:function(t){const e=t.anchor;return e&&"number"!=typeof e.nodeType?new Error("Invalid prop `anchor` supplied to `Kendo React Popover`. Validation failed."):null},appendTo:function(t){const e=t.appendTo;return e&&"number"!=typeof e.nodeType?new Error("Invalid prop `appendTo` supplied to `Kendo React Popover`. Validation failed."):null},positionMode:n.oneOf(["fixed","absolute"]),scale:n.number,offset:n.shape({left:n.number,top:n.number}),children:n.oneOfType([n.element,n.node]),className:n.oneOfType([n.string,n.arrayOf(n.string),n.object]),id:n.string,popoverClass:n.oneOfType([n.string,n.arrayOf(n.string),n.object]),style:n.object,onClose:n.func,onPosition:n.func,onOpen:n.func},O.displayName="KendoReactPopover",t.Popover=O,t.PopoverActionsBar=m,t.Tooltip=d}));
|
package/index.d.mts
CHANGED
|
@@ -119,6 +119,20 @@ export declare interface PopoverHandle {
|
|
|
119
119
|
props: PopoverProps;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Represents the object of the `KeyDown` Popover event.
|
|
124
|
+
*/
|
|
125
|
+
export declare interface PopoverKeyDownEvent {
|
|
126
|
+
/**
|
|
127
|
+
* An event target.
|
|
128
|
+
*/
|
|
129
|
+
target: PopoverHandle;
|
|
130
|
+
/**
|
|
131
|
+
* A boolean value that indicates whether the Popover is visible.
|
|
132
|
+
*/
|
|
133
|
+
show?: boolean;
|
|
134
|
+
}
|
|
135
|
+
|
|
122
136
|
/**
|
|
123
137
|
* Defines the horizontal and the vertical margin offset of the component.
|
|
124
138
|
*/
|
|
@@ -287,6 +301,10 @@ export declare interface PopoverProps {
|
|
|
287
301
|
* Fires after the Popover position is set.
|
|
288
302
|
*/
|
|
289
303
|
onPosition?: (event: PopoverPositionEvent) => void;
|
|
304
|
+
/**
|
|
305
|
+
* Fires when the Popover is focused and a key is pressed.
|
|
306
|
+
*/
|
|
307
|
+
onKeyDown?: (event: PopoverKeyDownEvent) => void;
|
|
290
308
|
/**
|
|
291
309
|
* @hidden
|
|
292
310
|
*/
|
package/index.d.ts
CHANGED
|
@@ -119,6 +119,20 @@ export declare interface PopoverHandle {
|
|
|
119
119
|
props: PopoverProps;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Represents the object of the `KeyDown` Popover event.
|
|
124
|
+
*/
|
|
125
|
+
export declare interface PopoverKeyDownEvent {
|
|
126
|
+
/**
|
|
127
|
+
* An event target.
|
|
128
|
+
*/
|
|
129
|
+
target: PopoverHandle;
|
|
130
|
+
/**
|
|
131
|
+
* A boolean value that indicates whether the Popover is visible.
|
|
132
|
+
*/
|
|
133
|
+
show?: boolean;
|
|
134
|
+
}
|
|
135
|
+
|
|
122
136
|
/**
|
|
123
137
|
* Defines the horizontal and the vertical margin offset of the component.
|
|
124
138
|
*/
|
|
@@ -287,6 +301,10 @@ export declare interface PopoverProps {
|
|
|
287
301
|
* Fires after the Popover position is set.
|
|
288
302
|
*/
|
|
289
303
|
onPosition?: (event: PopoverPositionEvent) => void;
|
|
304
|
+
/**
|
|
305
|
+
* Fires when the Popover is focused and a key is pressed.
|
|
306
|
+
*/
|
|
307
|
+
onKeyDown?: (event: PopoverKeyDownEvent) => void;
|
|
290
308
|
/**
|
|
291
309
|
* @hidden
|
|
292
310
|
*/
|
package/package-metadata.mjs
CHANGED
|
@@ -10,7 +10,7 @@ const e = {
|
|
|
10
10
|
name: "@progress/kendo-react-tooltip",
|
|
11
11
|
productName: "KendoReact",
|
|
12
12
|
productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
|
|
13
|
-
publishDate:
|
|
13
|
+
publishDate: 1722585616,
|
|
14
14
|
version: "",
|
|
15
15
|
licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
|
|
16
16
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-react-tooltip",
|
|
3
|
-
"version": "8.2.0-develop.
|
|
3
|
+
"version": "8.2.0-develop.34",
|
|
4
4
|
"description": "React Tooltips library represents popups with information that is related to a UI element. KendoReact Tooltips package",
|
|
5
5
|
"author": "Progress",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"sideEffects": false,
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@progress/kendo-licensing": "^1.3.4",
|
|
26
|
-
"@progress/kendo-react-common": "8.2.0-develop.
|
|
27
|
-
"@progress/kendo-react-popup": "8.2.0-develop.
|
|
26
|
+
"@progress/kendo-react-common": "8.2.0-develop.34",
|
|
27
|
+
"@progress/kendo-react-popup": "8.2.0-develop.34",
|
|
28
28
|
"@progress/kendo-svg-icons": "^3.0.0",
|
|
29
29
|
"react": "^16.8.2 || ^17.0.0 || ^18.0.0",
|
|
30
30
|
"react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
|
package/popover/Popover.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
8
|
+
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const J=require("react"),e=require("prop-types"),u=require("@progress/kendo-react-common"),Q=require("../package-metadata.js"),W=require("@progress/kendo-react-popup"),w=require("./PopoverActionsBar.js"),T=require("./utils.js");function Y(n){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const l in n)if(l!=="default"){const a=Object.getOwnPropertyDescriptor(n,l);Object.defineProperty(r,l,a.get?a:{enumerable:!0,get:()=>n[l]})}}return r.default=n,Object.freeze(r)}const t=Y(J),$=12e3,ee=2e3,A=15,te={top:"k-callout-s",left:"k-callout-e",bottom:"k-callout-n",right:"k-callout-w"},oe={top:"k-callout-n",left:"k-callout-w",bottom:"k-callout-s",right:"k-callout-e"},ne={top:{vertical:"bottom",horizontal:"center"},left:{vertical:"center",horizontal:"right"},bottom:{vertical:"top",horizontal:"center"},right:{vertical:"center",horizontal:"left"}},re={top:{vertical:"top",horizontal:"center"},left:{vertical:"center",horizontal:"left"},bottom:{vertical:"bottom",horizontal:"center"},right:{vertical:"center",horizontal:"right"}},ae=n=>t.Children.toArray(n).filter(r=>r&&r.type===w.PopoverActionsBar),le=n=>t.Children.toArray(n).filter(r=>r&&r.type!==w.PopoverActionsBar),y=t.forwardRef((n,r)=>{u.validatePackage(Q.packageMetadata);const{callout:l=b.callout,position:a=b.position,collision:z=b.collision,title:d,children:f,show:R,anchor:N,appendTo:j,offset:D,animate:x,positionMode:I,scale:S,popoverClass:c,className:q,id:F,style:_,contentStyle:P,onPosition:m,onClose:v,onOpen:g,onKeyDown:h}=n,[M,k]=t.useState(!1),O=a==="top"||a==="bottom",B=n.margin||{vertical:l&&O?A:0,horizontal:l&&!O?A:0},K=ne[a],Z=re[a],C=t.useContext(u.ZIndexContext),V=C?C+ee:$,s=t.useRef(null);t.useImperativeHandle(s,()=>({props:n})),t.useImperativeHandle(r,()=>s.current);const L=t.useCallback(o=>{if(setTimeout(()=>k(o.flipped)),m){const i={target:s.current,flipped:o.flipped,fitted:o.fitted};m.call(void 0,i)}},[m,k]),H=t.useCallback(()=>{const o=T.getFirstFocusableElement(document.querySelector(".k-popover-inner"));if(o&&o.focus(),g){const i={target:s.current};g.call(void 0,i)}},[g]),U=t.useCallback(o=>{if(h&&o.key==="Escape"){const i={target:s.current,show:!1};h.call(void 0,i)}o.key==="Tab"&&T.handleFocusTrap(o)},[h]),X=t.useCallback(o=>{if(v){const i={target:s.current};v.call(void 0,i)}o&&o.target&&o.target.props&&o.target.props.anchor&&o.target.props.anchor.focus()},[v]),p={"k-popover":!0};Array.isArray(c)?c.forEach(o=>p[o]=!0):typeof c=="object"?Object.keys(c).forEach(o=>{p[o]=c[o]}):c&&(p[c]=!0);const G=M?oe[a]:te[a],E=t.useMemo(()=>t.createElement(t.Fragment,null,d&&t.createElement("div",{className:"k-popover-header"},d),t.createElement("div",{className:"k-popover-body",style:P},le(f)),ae(f)),[f,P,d]);return t.createElement(u.ZIndexContext.Provider,{value:V},t.createElement(W.Popup,{id:F,role:"tooltip",animate:x,collision:z,anchor:N,offset:D,margin:B,popupAlign:K,anchorAlign:Z,appendTo:j,show:R,scale:S,positionMode:I,style:_,className:q,popupClass:p,onOpen:H,onClose:X,onPosition:L,onKeyDown:U},l&&a?t.createElement(t.Fragment,null,t.createElement("div",{className:u.classNames("k-popover-callout",G)}),t.createElement("div",{className:"k-popover-inner"},E)):E))}),b={callout:!0,position:"top",collision:{horizontal:"none",vertical:"none"}};y.propTypes={callout:e.bool,title:e.node,position:e.oneOf(["top","left","bottom","right"]),show:e.bool,animate:e.oneOfType([e.bool,e.shape({openDuration:e.number,closeDuration:e.number})]),anchor:function(n){const r=n.anchor;return r&&typeof r.nodeType!="number"?new Error("Invalid prop `anchor` supplied to `Kendo React Popover`. Validation failed."):null},appendTo:function(n){const r=n.appendTo;return r&&typeof r.nodeType!="number"?new Error("Invalid prop `appendTo` supplied to `Kendo React Popover`. Validation failed."):null},positionMode:e.oneOf(["fixed","absolute"]),scale:e.number,offset:e.shape({left:e.number,top:e.number}),children:e.oneOfType([e.element,e.node]),className:e.oneOfType([e.string,e.arrayOf(e.string),e.object]),id:e.string,popoverClass:e.oneOfType([e.string,e.arrayOf(e.string),e.object]),style:e.object,onClose:e.func,onPosition:e.func,onOpen:e.func};y.displayName="KendoReactPopover";exports.Popover=y;
|
package/popover/Popover.mjs
CHANGED
|
@@ -8,116 +8,130 @@
|
|
|
8
8
|
"use client";
|
|
9
9
|
import * as o from "react";
|
|
10
10
|
import e from "prop-types";
|
|
11
|
-
import { validatePackage as
|
|
12
|
-
import { packageMetadata as
|
|
13
|
-
import { Popup as
|
|
14
|
-
import { PopoverActionsBar as
|
|
15
|
-
|
|
11
|
+
import { validatePackage as G, ZIndexContext as C, classNames as J } from "@progress/kendo-react-common";
|
|
12
|
+
import { packageMetadata as Q } from "../package-metadata.mjs";
|
|
13
|
+
import { Popup as W } from "@progress/kendo-react-popup";
|
|
14
|
+
import { PopoverActionsBar as T } from "./PopoverActionsBar.mjs";
|
|
15
|
+
import { getFirstFocusableElement as Y, handleFocusTrap as $ } from "./utils.mjs";
|
|
16
|
+
const ee = 12e3, oe = 2e3, O = 15, te = {
|
|
16
17
|
top: "k-callout-s",
|
|
17
18
|
left: "k-callout-e",
|
|
18
19
|
bottom: "k-callout-n",
|
|
19
20
|
right: "k-callout-w"
|
|
20
|
-
},
|
|
21
|
+
}, ne = {
|
|
21
22
|
top: "k-callout-n",
|
|
22
23
|
left: "k-callout-w",
|
|
23
24
|
bottom: "k-callout-s",
|
|
24
25
|
right: "k-callout-e"
|
|
25
|
-
},
|
|
26
|
+
}, re = {
|
|
26
27
|
top: { vertical: "bottom", horizontal: "center" },
|
|
27
28
|
left: { vertical: "center", horizontal: "right" },
|
|
28
29
|
bottom: { vertical: "top", horizontal: "center" },
|
|
29
30
|
right: { vertical: "center", horizontal: "left" }
|
|
30
|
-
},
|
|
31
|
+
}, le = {
|
|
31
32
|
top: { vertical: "top", horizontal: "center" },
|
|
32
33
|
left: { vertical: "center", horizontal: "left" },
|
|
33
34
|
bottom: { vertical: "bottom", horizontal: "center" },
|
|
34
35
|
right: { vertical: "center", horizontal: "right" }
|
|
35
|
-
},
|
|
36
|
-
|
|
36
|
+
}, ae = (r) => o.Children.toArray(r).filter((n) => n && n.type === T), ie = (r) => o.Children.toArray(r).filter((n) => n && n.type !== T), A = o.forwardRef((r, n) => {
|
|
37
|
+
G(Q);
|
|
37
38
|
const {
|
|
38
|
-
callout:
|
|
39
|
-
position: l =
|
|
40
|
-
collision:
|
|
41
|
-
title:
|
|
42
|
-
children:
|
|
43
|
-
show:
|
|
44
|
-
anchor:
|
|
45
|
-
appendTo:
|
|
46
|
-
offset:
|
|
47
|
-
animate:
|
|
48
|
-
positionMode:
|
|
49
|
-
scale:
|
|
39
|
+
callout: p = g.callout,
|
|
40
|
+
position: l = g.position,
|
|
41
|
+
collision: w = g.collision,
|
|
42
|
+
title: u,
|
|
43
|
+
children: f,
|
|
44
|
+
show: z,
|
|
45
|
+
anchor: N,
|
|
46
|
+
appendTo: R,
|
|
47
|
+
offset: x,
|
|
48
|
+
animate: D,
|
|
49
|
+
positionMode: F,
|
|
50
|
+
scale: I,
|
|
50
51
|
popoverClass: a,
|
|
51
|
-
className:
|
|
52
|
-
id:
|
|
53
|
-
style:
|
|
54
|
-
contentStyle:
|
|
55
|
-
onPosition:
|
|
56
|
-
onClose:
|
|
57
|
-
onOpen:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
52
|
+
className: K,
|
|
53
|
+
id: j,
|
|
54
|
+
style: S,
|
|
55
|
+
contentStyle: y,
|
|
56
|
+
onPosition: d,
|
|
57
|
+
onClose: m,
|
|
58
|
+
onOpen: h,
|
|
59
|
+
onKeyDown: v
|
|
60
|
+
} = r, [V, b] = o.useState(!1), P = l === "top" || l === "bottom", Z = r.margin || {
|
|
61
|
+
vertical: p && P ? O : 0,
|
|
62
|
+
horizontal: p && !P ? O : 0
|
|
63
|
+
}, _ = re[l], B = le[l], k = o.useContext(C), M = k ? k + oe : ee, c = o.useRef(null);
|
|
64
|
+
o.useImperativeHandle(c, () => ({ props: r })), o.useImperativeHandle(n, () => c.current);
|
|
65
|
+
const L = o.useCallback(
|
|
66
|
+
(t) => {
|
|
67
|
+
if (setTimeout(() => b(t.flipped)), d) {
|
|
68
|
+
const i = { target: c.current, flipped: t.flipped, fitted: t.fitted };
|
|
69
|
+
d.call(void 0, i);
|
|
68
70
|
}
|
|
69
71
|
},
|
|
70
|
-
[
|
|
71
|
-
),
|
|
72
|
+
[d, b]
|
|
73
|
+
), H = o.useCallback(
|
|
72
74
|
() => {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
const t = Y(document.querySelector(".k-popover-inner"));
|
|
76
|
+
if (t && t.focus(), h) {
|
|
77
|
+
const i = { target: c.current };
|
|
78
|
+
h.call(void 0, i);
|
|
76
79
|
}
|
|
77
80
|
},
|
|
78
|
-
[
|
|
79
|
-
),
|
|
80
|
-
() => {
|
|
81
|
-
if (
|
|
82
|
-
const
|
|
83
|
-
|
|
81
|
+
[h]
|
|
82
|
+
), U = o.useCallback(
|
|
83
|
+
(t) => {
|
|
84
|
+
if (v && t.key === "Escape") {
|
|
85
|
+
const i = { target: c.current, show: !1 };
|
|
86
|
+
v.call(void 0, i);
|
|
84
87
|
}
|
|
88
|
+
t.key === "Tab" && $(t);
|
|
85
89
|
},
|
|
86
|
-
[
|
|
87
|
-
),
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
[v]
|
|
91
|
+
), X = o.useCallback(
|
|
92
|
+
(t) => {
|
|
93
|
+
if (m) {
|
|
94
|
+
const i = { target: c.current };
|
|
95
|
+
m.call(void 0, i);
|
|
96
|
+
}
|
|
97
|
+
t && t.target && t.target.props && t.target.props.anchor && t.target.props.anchor.focus();
|
|
98
|
+
},
|
|
99
|
+
[m]
|
|
100
|
+
), s = { "k-popover": !0 };
|
|
101
|
+
Array.isArray(a) ? a.forEach((t) => s[t] = !0) : typeof a == "object" ? Object.keys(a).forEach((t) => {
|
|
102
|
+
s[t] = a[t];
|
|
103
|
+
}) : a && (s[a] = !0);
|
|
104
|
+
const q = V ? ne[l] : te[l], E = o.useMemo(
|
|
105
|
+
() => /* @__PURE__ */ o.createElement(o.Fragment, null, u && /* @__PURE__ */ o.createElement("div", { className: "k-popover-header" }, u), /* @__PURE__ */ o.createElement("div", { className: "k-popover-body", style: y }, ie(f)), ae(f)),
|
|
106
|
+
[f, y, u]
|
|
94
107
|
);
|
|
95
108
|
return /* @__PURE__ */ o.createElement(C.Provider, { value: M }, /* @__PURE__ */ o.createElement(
|
|
96
|
-
|
|
109
|
+
W,
|
|
97
110
|
{
|
|
98
|
-
id:
|
|
111
|
+
id: j,
|
|
99
112
|
role: "tooltip",
|
|
100
|
-
animate:
|
|
101
|
-
collision:
|
|
102
|
-
anchor:
|
|
103
|
-
offset:
|
|
113
|
+
animate: D,
|
|
114
|
+
collision: w,
|
|
115
|
+
anchor: N,
|
|
116
|
+
offset: x,
|
|
104
117
|
margin: Z,
|
|
105
118
|
popupAlign: _,
|
|
106
119
|
anchorAlign: B,
|
|
107
|
-
appendTo:
|
|
108
|
-
show:
|
|
109
|
-
scale:
|
|
110
|
-
positionMode:
|
|
111
|
-
style:
|
|
112
|
-
className:
|
|
113
|
-
popupClass:
|
|
114
|
-
onOpen:
|
|
115
|
-
onClose:
|
|
116
|
-
onPosition:
|
|
120
|
+
appendTo: R,
|
|
121
|
+
show: z,
|
|
122
|
+
scale: I,
|
|
123
|
+
positionMode: F,
|
|
124
|
+
style: S,
|
|
125
|
+
className: K,
|
|
126
|
+
popupClass: s,
|
|
127
|
+
onOpen: H,
|
|
128
|
+
onClose: X,
|
|
129
|
+
onPosition: L,
|
|
130
|
+
onKeyDown: U
|
|
117
131
|
},
|
|
118
|
-
|
|
132
|
+
p && l ? /* @__PURE__ */ o.createElement(o.Fragment, null, /* @__PURE__ */ o.createElement("div", { className: J("k-popover-callout", q) }), /* @__PURE__ */ o.createElement("div", { className: "k-popover-inner" }, E)) : E
|
|
119
133
|
));
|
|
120
|
-
}),
|
|
134
|
+
}), g = {
|
|
121
135
|
callout: !0,
|
|
122
136
|
position: "top",
|
|
123
137
|
collision: {
|
|
@@ -125,7 +139,7 @@ const Q = 12e3, W = 2e3, E = 15, Y = {
|
|
|
125
139
|
vertical: "none"
|
|
126
140
|
}
|
|
127
141
|
};
|
|
128
|
-
|
|
142
|
+
A.propTypes = {
|
|
129
143
|
callout: e.bool,
|
|
130
144
|
title: e.node,
|
|
131
145
|
position: e.oneOf(["top", "left", "bottom", "right"]),
|
|
@@ -138,14 +152,14 @@ O.propTypes = {
|
|
|
138
152
|
})
|
|
139
153
|
]),
|
|
140
154
|
anchor: function(r) {
|
|
141
|
-
const
|
|
142
|
-
return
|
|
155
|
+
const n = r.anchor;
|
|
156
|
+
return n && typeof n.nodeType != "number" ? new Error(
|
|
143
157
|
"Invalid prop `anchor` supplied to `Kendo React Popover`. Validation failed."
|
|
144
158
|
) : null;
|
|
145
159
|
},
|
|
146
160
|
appendTo: function(r) {
|
|
147
|
-
const
|
|
148
|
-
return
|
|
161
|
+
const n = r.appendTo;
|
|
162
|
+
return n && typeof n.nodeType != "number" ? new Error(
|
|
149
163
|
"Invalid prop `appendTo` supplied to `Kendo React Popover`. Validation failed."
|
|
150
164
|
) : null;
|
|
151
165
|
},
|
|
@@ -178,7 +192,7 @@ O.propTypes = {
|
|
|
178
192
|
onPosition: e.func,
|
|
179
193
|
onOpen: e.func
|
|
180
194
|
};
|
|
181
|
-
|
|
195
|
+
A.displayName = "KendoReactPopover";
|
|
182
196
|
export {
|
|
183
|
-
|
|
197
|
+
A as Popover
|
|
184
198
|
};
|
package/popover/utils.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 n=require("@progress/kendo-react-common"),r=e=>{if(e){const t=e.querySelectorAll(n.FOCUSABLE_ELEMENTS.join(", "));if(t.length)return t[0]}},l=e=>{if(e){const t=e.querySelectorAll(n.FOCUSABLE_ELEMENTS.join(", "));if(t.length)return t[t.length-1]}},s=e=>{const t=r(document.querySelector(".k-popover-inner")),o=l(document.querySelector(".k-popover-inner"));e.shiftKey&&e.target===t?(o&&o.focus(),e.preventDefault()):!e.shiftKey&&e.target===o&&(t&&t.focus(),e.preventDefault())};exports.getFirstFocusableElement=r;exports.getLastFocusableElement=l;exports.handleFocusTrap=s;
|
|
@@ -0,0 +1,30 @@
|
|
|
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 { FOCUSABLE_ELEMENTS as n } from "@progress/kendo-react-common";
|
|
10
|
+
const r = (e) => {
|
|
11
|
+
if (e) {
|
|
12
|
+
const t = e.querySelectorAll(n.join(", "));
|
|
13
|
+
if (t.length)
|
|
14
|
+
return t[0];
|
|
15
|
+
}
|
|
16
|
+
}, l = (e) => {
|
|
17
|
+
if (e) {
|
|
18
|
+
const t = e.querySelectorAll(n.join(", "));
|
|
19
|
+
if (t.length)
|
|
20
|
+
return t[t.length - 1];
|
|
21
|
+
}
|
|
22
|
+
}, c = (e) => {
|
|
23
|
+
const t = r(document.querySelector(".k-popover-inner")), o = l(document.querySelector(".k-popover-inner"));
|
|
24
|
+
e.shiftKey && e.target === t ? (o && o.focus(), e.preventDefault()) : !e.shiftKey && e.target === o && (t && t.focus(), e.preventDefault());
|
|
25
|
+
};
|
|
26
|
+
export {
|
|
27
|
+
r as getFirstFocusableElement,
|
|
28
|
+
l as getLastFocusableElement,
|
|
29
|
+
c as handleFocusTrap
|
|
30
|
+
};
|