UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime

2 lines (1 loc) 8.95 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),r=require("primereact/utils");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var u=n(e);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}function l(e){return l="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},l(e)}function i(e,t){if("object"!==l(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function c(e){var t=i(e,"string");return"symbol"===l(t)?t:String(t)}function a(e,t,r){return(t=c(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function p(e){if(Array.isArray(e))return s(e)}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function d(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function y(e){if(Array.isArray(e))return e}function g(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,u,o,l,i=[],c=!0,a=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=o.call(r)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){a=!0,u=e}finally{try{if(!c&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(a)throw u}}return i}}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e,t){return y(e)||g(e,t)||d(e,t)||h()}var v={defaultProps:{__TYPE:"Splitter",className:null,gutterSize:4,id:null,layout:"horizontal",onResizeEnd:null,stateKey:null,stateStorage:"session",style:null,children:void 0},getProps:function(e){return r.ObjectUtils.getMergedProps(e,v.defaultProps)},getOtherProps:function(e){return r.ObjectUtils.getDiffProps(e,v.defaultProps)}},O={defaultProps:{__TYPE:"SplitterPanel",className:null,minSize:null,size:null,style:null,children:void 0},getCProps:function(e){return r.ObjectUtils.getComponentProps(e,O.defaultProps)},getCOtherProps:function(e){return r.ObjectUtils.getComponentDiffProps(e,O.defaultProps)},getCProp:function(e,t){return r.ObjectUtils.getComponentProp(e,t,O.defaultProps)}};function S(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function P(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?S(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):S(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var j=function(){},w=u.memo(u.forwardRef((function(e,n){var l=v.getProps(e),i=u.useRef(null),c=u.useRef(),a=u.useRef({}),s=u.useRef(null),y=u.useRef(null),g=u.useRef(null),h=u.useRef(null),S=u.useRef(null),j=u.useRef(null),w=u.useRef(null),E=u.useRef(null),z=u.useRef(null),D=u.useRef(null),C=b(u.useState([]),2),H=C[0],N=C[1],R=null!=l.stateKey,x=l.children&&l.children.length||1,A=function(e,t){return t in e?e[t]:l.children&&[].concat(l.children)[t].props.size||100/x},I=b(t.useEventListener({type:"mousemove",listener:function(e){return J(e)}}),2),T=I[0],_=I[1],U=b(t.useEventListener({type:"mouseup",listener:function(e){F(e),M()}}),2),k=U[0],L=U[1],M=function(){_(),L()},Y=function(e,t){return O.getCProp(e,t)},K=function(e,t){return!(e>100||e<0)&&(!(t>100||t<0)&&(!(l.children[D.current].props&&l.children[D.current].props.minSize&&l.children[D.current].props.minSize>e)&&!(l.children[D.current+1].props&&l.children[D.current+1].props.minSize&&l.children[D.current+1].props.minSize>t)))},X=u.useCallback((function(){switch(l.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(l.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}}),[l.stateStorage]),q=function(e){X().setItem(l.stateKey,JSON.stringify(e))},B=u.useCallback((function(){var e=X().getItem(l.stateKey);e&&N(JSON.parse(e))}),[X,l.stateKey]),W=function(e,t){c.current=a.current[t];var n="touchstart"===e.type?e.touches[0].pageX:e.pageX,u="touchstart"===e.type?e.touches[0].pageY:e.pageY;s.current="horizontal"===l.layout?r.DomHandler.getWidth(i.current):r.DomHandler.getHeight(i.current),y.current=!0,g.current="horizontal"===l.layout?n:u,h.current=c.current.previousElementSibling,S.current=c.current.nextElementSibling,j.current=100*("horizontal"===l.layout?r.DomHandler.getOuterWidth(h.current,!0):r.DomHandler.getOuterHeight(h.current,!0))/s.current,w.current=j.current,E.current=100*("horizontal"===l.layout?r.DomHandler.getOuterWidth(S.current,!0):r.DomHandler.getOuterHeight(S.current,!0))/s.current,z.current=E.current,D.current=t,r.DomHandler.addClass(c.current,"p-splitter-gutter-resizing"),r.DomHandler.addClass(i.current,"p-splitter-resizing")},J=function(e){var t,r=j.current+(t="horizontal"===l.layout?100*("touchmove"===e.type?e.touches[0].pageX:e.pageX)/s.current-100*g.current/s.current:100*("touchmove"===e.type?e.touches[0].pageY:e.pageY)/s.current-100*g.current/s.current),n=E.current-t;K(r,n)&&(w.current=r,z.current=n,h.current.style.flexBasis="calc("+r+"% - "+(l.children.length-1)*l.gutterSize+"px)",S.current.style.flexBasis="calc("+n+"% - "+(l.children.length-1)*l.gutterSize+"px)")},F=function(e){N((function(t){for(var r=[],n=0;n<l.children.length;n++)r[n]=A(t,n);return r[D.current]=w.current,r[D.current+1]=z.current,l.onResizeEnd&&l.onResizeEnd({originalEvent:e,sizes:r}),R&&q(r),r})),r.DomHandler.removeClass(c.current,"p-splitter-gutter-resizing"),r.DomHandler.removeClass(i.current,"p-splitter-resizing"),y.current=!1,s.current=null,g.current=null,h.current=null,S.current=null,j.current=null,w.current=null,E.current=null,z.current=null,D.current=null},$=function(e,t){W(e,t),T(),k()},G=function(e,t){W(e,t),window.addEventListener("touchmove",Q,{passive:!1,cancelable:!1}),window.addEventListener("touchend",V)},Q=function(e){J(e)},V=function e(t){F(t),window.removeEventListener("touchmove",Q),window.removeEventListener("touchend",e)};u.useImperativeHandle(n,(function(){return{props:l,getElement:function(){return i.current}}})),u.useEffect((function(){var e;(e=i.current.children,p(e)||f(e)||d(e)||m()).filter((function(e){return r.DomHandler.hasClass(e,"p-splitter-panel")})).map((function(e){e.childNodes&&r.ObjectUtils.isNotEmpty(r.DomHandler.find(e,".p-splitter"))&&r.DomHandler.addClass(e,"p-splitter-panel-nested")}))}),[]),u.useEffect((function(){R&&B()}),[B,R]);var Z=function(e,t){var n=O.getCOtherProps(e),i=r.classNames("p-splitter-panel",Y(e,"className")),c=t!==l.children.length-1&&u.createElement("div",{ref:function(e){return a.current[t]=e},className:"p-splitter-gutter",style:"horizontal"===l.layout?{width:l.gutterSize+"px"}:{height:l.gutterSize+"px"},onMouseDown:function(e){return $(e,t)},onTouchStart:function(e){return G(e,t)},onTouchMove:function(e){return Q(e)},onTouchEnd:function(e){return V(e)}},u.createElement("div",{className:"p-splitter-gutter-handle"})),s="calc("+A(H,t)+"% - "+(x-1)*l.gutterSize+"px)";return u.createElement(u.Fragment,null,u.createElement("div",o({key:t,className:i,style:P(P({},Y(e,"style")),{},{flexBasis:s})},n),Y(e,"children")),c)},ee=v.getOtherProps(l),te=r.classNames("p-splitter p-component p-splitter-".concat(l.layout),l.className),re=u.Children.map(l.children,Z);return u.createElement("div",o({ref:i,id:l.id,className:te,style:l.style},ee),re)})));j.displayName="SplitterPanel",w.displayName="Splitter",exports.Splitter=w,exports.SplitterPanel=j;