2 lines
8.4 KiB
JavaScript
2 lines
8.4 KiB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/utils"),n=require("primereact/csstransition"),i=require("primereact/ripple"),r=require("primereact/overlayservice"),o=require("primereact/portal"),l=require("primereact/api");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=s(e),c=s(l);function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function f(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function d(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function p(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&h(e,t)}function v(e){return v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},v(e)}function y(e,t){if(t&&("object"===v(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return d(e)}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function b(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}var k,C,E,L=function(l){p(L,e.Component);var s,h,v,k,C,E=(s=L,h=b(),function(){var e,t=m(s);if(h){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return y(this,e)});function L(e){var n;return u(this,L),(n=E.call(this,e)).state={visible:!1},n.onCloseClick=n.onCloseClick.bind(d(n)),n.onPanelClick=n.onPanelClick.bind(d(n)),n.onEnter=n.onEnter.bind(d(n)),n.onEntered=n.onEntered.bind(d(n)),n.onExit=n.onExit.bind(d(n)),n.onExited=n.onExited.bind(d(n)),n.onContentClick=n.onContentClick.bind(d(n)),n.attributeSelector=t.UniqueComponentId(),n.overlayRef=a.default.createRef(),n}return v=L,(k=[{key:"bindDocumentClickListener",value:function(){var e=this;!this.documentClickListener&&this.props.dismissable&&(this.documentClickListener=function(t){!e.isPanelClicked&&e.isOutsideClicked(t.target)&&e.hide(),e.isPanelClicked=!1},document.addEventListener("click",this.documentClickListener))}},{key:"unbindDocumentClickListener",value:function(){this.documentClickListener&&(document.removeEventListener("click",this.documentClickListener),this.documentClickListener=null)}},{key:"bindScrollListener",value:function(){var e=this;this.scrollHandler||(this.scrollHandler=new t.ConnectedOverlayScrollHandler(this.target,(function(){e.state.visible&&e.hide()}))),this.scrollHandler.bindScrollListener()}},{key:"unbindScrollListener",value:function(){this.scrollHandler&&this.scrollHandler.unbindScrollListener()}},{key:"bindResizeListener",value:function(){var e=this;this.resizeListener||(this.resizeListener=function(){e.state.visible&&!t.DomHandler.isTouchDevice()&&e.hide()},window.addEventListener("resize",this.resizeListener))}},{key:"unbindResizeListener",value:function(){this.resizeListener&&(window.removeEventListener("resize",this.resizeListener),this.resizeListener=null)}},{key:"isOutsideClicked",value:function(e){return this.overlayRef&&this.overlayRef.current&&!(this.overlayRef.current.isSameNode(e)||this.overlayRef.current.contains(e))}},{key:"hasTargetChanged",value:function(e,t){return null!=this.target&&this.target!==(t||e.currentTarget||e.target)}},{key:"onCloseClick",value:function(e){this.hide(),e.preventDefault()}},{key:"onPanelClick",value:function(e){this.isPanelClicked=!0,r.OverlayService.emit("overlay-click",{originalEvent:e,target:this.target})}},{key:"onContentClick",value:function(){this.isPanelClicked=!0}},{key:"toggle",value:function(e,t){var n=this;this.state.visible?(this.hide(),this.hasTargetChanged(e,t)&&(this.target=t||e.currentTarget||e.target,setTimeout((function(){n.show(e,n.target)}),200))):this.show(e,t)}},{key:"show",value:function(e,t){var n=this;this.target=t||e.currentTarget||e.target,this.state.visible?this.align():this.setState({visible:!0},(function(){n.overlayEventListener=function(e){n.isOutsideClicked(e.target)||(n.isPanelClicked=!0)},r.OverlayService.on("overlay-click",n.overlayEventListener)}))}},{key:"hide",value:function(){var e=this;this.setState({visible:!1},(function(){r.OverlayService.off("overlay-click",e.overlayEventListener),e.overlayEventListener=null}))}},{key:"onEnter",value:function(){t.ZIndexUtils.set("overlay",this.overlayRef.current,c.default.autoZIndex,c.default.zIndex.overlay),this.overlayRef.current.setAttribute(this.attributeSelector,""),this.align()}},{key:"onEntered",value:function(){this.bindDocumentClickListener(),this.bindScrollListener(),this.bindResizeListener(),this.props.onShow&&this.props.onShow()}},{key:"onExit",value:function(){this.unbindDocumentClickListener(),this.unbindScrollListener(),this.unbindResizeListener()}},{key:"onExited",value:function(){t.ZIndexUtils.clear(this.overlayRef.current),this.props.onHide&&this.props.onHide()}},{key:"align",value:function(){if(this.target){t.DomHandler.absolutePosition(this.overlayRef.current,this.target);var e=t.DomHandler.getOffset(this.overlayRef.current),n=t.DomHandler.getOffset(this.target),i=0;e.left<n.left&&(i=n.left-e.left),this.overlayRef.current.style.setProperty("--overlayArrowLeft","".concat(i,"px")),e.top<n.top&&t.DomHandler.addClass(this.overlayRef.current,"p-overlaypanel-flipped")}}},{key:"createStyle",value:function(){if(!this.styleElement){this.styleElement=t.DomHandler.createInlineStyle(c.default.nonce);var e="";for(var n in this.props.breakpoints)e+="\n @media screen and (max-width: ".concat(n,") {\n .p-overlaypanel[").concat(this.attributeSelector,"] {\n width: ").concat(this.props.breakpoints[n]," !important;\n }\n }\n ");this.styleElement.innerHTML=e}}},{key:"componentDidMount",value:function(){this.props.breakpoints&&this.createStyle()}},{key:"componentWillUnmount",value:function(){this.unbindDocumentClickListener(),this.unbindResizeListener(),this.scrollHandler&&(this.scrollHandler.destroy(),this.scrollHandler=null),this.styleElement=t.DomHandler.removeInlineStyle(this.styleElement),this.overlayEventListener&&(r.OverlayService.off("overlay-click",this.overlayEventListener),this.overlayEventListener=null),t.ZIndexUtils.clear(this.overlayRef.current)}},{key:"renderCloseIcon",value:function(){return this.props.showCloseIcon?a.default.createElement("button",{type:"button",className:"p-overlaypanel-close p-link",onClick:this.onCloseClick,"aria-label":this.props.ariaCloseLabel},a.default.createElement("span",{className:"p-overlaypanel-close-icon pi pi-times"}),a.default.createElement(i.Ripple,null)):null}},{key:"renderElement",value:function(){var e=t.classNames("p-overlaypanel p-component",this.props.className),i=this.renderCloseIcon();return a.default.createElement(n.CSSTransition,{nodeRef:this.overlayRef,classNames:"p-overlaypanel",in:this.state.visible,timeout:{enter:120,exit:100},options:this.props.transitionOptions,unmountOnExit:!0,onEnter:this.onEnter,onEntered:this.onEntered,onExit:this.onExit,onExited:this.onExited},a.default.createElement("div",{ref:this.overlayRef,id:this.props.id,className:e,style:this.props.style,onClick:this.onPanelClick},a.default.createElement("div",{className:"p-overlaypanel-content",onClick:this.onContentClick,onMouseDown:this.onContentClick},this.props.children),i))}},{key:"render",value:function(){var e=this.renderElement();return a.default.createElement(o.Portal,{element:e,appendTo:this.props.appendTo})}}])&&f(v.prototype,k),C&&f(v,C),Object.defineProperty(v,"prototype",{writable:!1}),L}();E={id:null,dismissable:!0,showCloseIcon:!1,style:null,className:null,appendTo:null,breakpoints:null,ariaCloseLabel:"close",transitionOptions:null,onShow:null,onHide:null},(C="defaultProps")in(k=L)?Object.defineProperty(k,C,{value:E,enumerable:!0,configurable:!0,writable:!0}):k[C]=E,exports.OverlayPanel=L;
|