UNPKG

primevue

Version:

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

2 lines (1 loc) 10.2 kB
"use strict";var e=require("primevue/utils"),t=require("primevue/basecomponent"),n=require("primevue/splitter/style"),i=require("vue");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(e){return u(e)||l(e)||a(e)||o()}function o(){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 a(e,t){if(e){if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}function l(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function u(e){if(Array.isArray(e))return h(e)}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var c={name:"Splitter",extends:{name:"BaseSplitter",extends:s(t).default,props:{layout:{type:String,default:"horizontal"},gutterSize:{type:Number,default:4},stateKey:{type:String,default:null},stateStorage:{type:String,default:"session"},step:{type:Number,default:5}},style:s(n).default,provide:function(){return{$parentInstance:this}}},emits:["resizestart","resizeend","resize"],dragging:!1,mouseMoveListener:null,mouseUpListener:null,touchMoveListener:null,touchEndListener:null,size:null,gutterElement:null,startPos:null,prevPanelElement:null,nextPanelElement:null,nextPanelSize:null,prevPanelSize:null,panelSizes:null,prevPanelIndex:null,timer:null,data:function(){return{prevSize:null}},mounted:function(){var e=this;if(this.panels&&this.panels.length){var t=!1;if(this.isStateful()&&(t=this.restoreState()),!t){var n=r(this.$el.children).filter((function(e){return"splitterpanel"===e.getAttribute("data-pc-name")})),i=[];this.panels.map((function(t,s){var r=(t.props&&t.props.size?t.props.size:null)||100/e.panels.length;i[s]=r,n[s].style.flexBasis="calc("+r+"% - "+(e.panels.length-1)*e.gutterSize+"px)"})),this.panelSizes=i,this.prevSize=parseFloat(i[0]).toFixed(4)}}},beforeUnmount:function(){this.clear(),this.unbindMouseListeners()},methods:{getPTOptions:function(){var t;return{context:{nested:"splitterpanel"===e.DomHandler.getAttribute(null===(t=this.$parentInstance)||void 0===t?void 0:t.$el,"data-pc-name")}}},isSplitterPanel:function(e){return"SplitterPanel"===e.type.name},onResizeStart:function(t,n,i){this.gutterElement=t.currentTarget||t.target.parentElement,this.size=this.horizontal?e.DomHandler.getWidth(this.$el):e.DomHandler.getHeight(this.$el),i||(this.dragging=!0,this.startPos="horizontal"===this.layout?t.pageX||t.changedTouches[0].pageX:t.pageY||t.changedTouches[0].pageY),this.prevPanelElement=this.gutterElement.previousElementSibling,this.nextPanelElement=this.gutterElement.nextElementSibling,i?(this.prevPanelSize=this.horizontal?e.DomHandler.getOuterWidth(this.prevPanelElement,!0):e.DomHandler.getOuterHeight(this.prevPanelElement,!0),this.nextPanelSize=this.horizontal?e.DomHandler.getOuterWidth(this.nextPanelElement,!0):e.DomHandler.getOuterHeight(this.nextPanelElement,!0)):(this.prevPanelSize=100*(this.horizontal?e.DomHandler.getOuterWidth(this.prevPanelElement,!0):e.DomHandler.getOuterHeight(this.prevPanelElement,!0))/this.size,this.nextPanelSize=100*(this.horizontal?e.DomHandler.getOuterWidth(this.nextPanelElement,!0):e.DomHandler.getOuterHeight(this.nextPanelElement,!0))/this.size),this.prevPanelIndex=n,this.$emit("resizestart",{originalEvent:t,sizes:this.panelSizes}),this.$refs.gutter[n].setAttribute("data-p-gutter-resizing",!0),this.$el.setAttribute("data-p-resizing",!0)},onResize:function(e,t,n){var i,s,r;n?this.horizontal?(s=100*(this.prevPanelSize+t)/this.size,r=100*(this.nextPanelSize-t)/this.size):(s=100*(this.prevPanelSize-t)/this.size,r=100*(this.nextPanelSize+t)/this.size):(s=this.prevPanelSize+(i=this.horizontal?100*e.pageX/this.size-100*this.startPos/this.size:100*e.pageY/this.size-100*this.startPos/this.size),r=this.nextPanelSize-i),this.validateResize(s,r)&&(this.prevPanelElement.style.flexBasis="calc("+s+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.nextPanelElement.style.flexBasis="calc("+r+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.panelSizes[this.prevPanelIndex]=s,this.panelSizes[this.prevPanelIndex+1]=r,this.prevSize=parseFloat(s).toFixed(4)),this.$emit("resize",{originalEvent:e,sizes:this.panelSizes})},onResizeEnd:function(e){this.isStateful()&&this.saveState(),this.$emit("resizeend",{originalEvent:e,sizes:this.panelSizes}),this.$refs.gutter.forEach((function(e){return e.setAttribute("data-p-gutter-resizing",!1)})),this.$el.setAttribute("data-p-resizing",!1),this.clear()},repeat:function(e,t,n){this.onResizeStart(e,t,!0),this.onResize(e,n,!0)},setTimer:function(e,t,n){var i=this;this.clearTimer(),this.timer=setTimeout((function(){i.repeat(e,t,n)}),40)},clearTimer:function(){this.timer&&clearTimeout(this.timer)},onGutterKeyUp:function(){this.clearTimer(),this.onResizeEnd()},onGutterKeyDown:function(e,t){switch(e.code){case"ArrowLeft":"horizontal"===this.layout&&this.setTimer(e,t,-1*this.step),e.preventDefault();break;case"ArrowRight":"horizontal"===this.layout&&this.setTimer(e,t,this.step),e.preventDefault();break;case"ArrowDown":"vertical"===this.layout&&this.setTimer(e,t,-1*this.step),e.preventDefault();break;case"ArrowUp":"vertical"===this.layout&&this.setTimer(e,t,this.step),e.preventDefault()}},onGutterMouseDown:function(e,t){this.onResizeStart(e,t),this.bindMouseListeners()},onGutterTouchStart:function(e,t){this.onResizeStart(e,t),this.bindTouchListeners(),e.preventDefault()},onGutterTouchMove:function(e){this.onResize(e),e.preventDefault()},onGutterTouchEnd:function(e){this.onResizeEnd(e),this.unbindTouchListeners(),e.preventDefault()},bindMouseListeners:function(){var e=this;this.mouseMoveListener||(this.mouseMoveListener=function(t){return e.onResize(t)},document.addEventListener("mousemove",this.mouseMoveListener)),this.mouseUpListener||(this.mouseUpListener=function(t){e.onResizeEnd(t),e.unbindMouseListeners()},document.addEventListener("mouseup",this.mouseUpListener))},bindTouchListeners:function(){var e=this;this.touchMoveListener||(this.touchMoveListener=function(t){return e.onResize(t.changedTouches[0])},document.addEventListener("touchmove",this.touchMoveListener)),this.touchEndListener||(this.touchEndListener=function(t){e.resizeEnd(t),e.unbindTouchListeners()},document.addEventListener("touchend",this.touchEndListener))},validateResize:function(t,n){if(t>100||t<0)return!1;if(n>100||n<0)return!1;var i=e.ObjectUtils.getVNodeProp(this.panels[this.prevPanelIndex],"minSize");if(this.panels[this.prevPanelIndex].props&&i&&i>t)return!1;var s=e.ObjectUtils.getVNodeProp(this.panels[this.prevPanelIndex+1],"minSize");return!(this.panels[this.prevPanelIndex+1].props&&s&&s>n)},unbindMouseListeners:function(){this.mouseMoveListener&&(document.removeEventListener("mousemove",this.mouseMoveListener),this.mouseMoveListener=null),this.mouseUpListener&&(document.removeEventListener("mouseup",this.mouseUpListener),this.mouseUpListener=null)},unbindTouchListeners:function(){this.touchMoveListener&&(document.removeEventListener("touchmove",this.touchMoveListener),this.touchMoveListener=null),this.touchEndListener&&(document.removeEventListener("touchend",this.touchEndListener),this.touchEndListener=null)},clear:function(){this.dragging=!1,this.size=null,this.startPos=null,this.prevPanelElement=null,this.nextPanelElement=null,this.prevPanelSize=null,this.nextPanelSize=null,this.gutterElement=null,this.prevPanelIndex=null},isStateful:function(){return null!=this.stateKey},getStorage:function(){switch(this.stateStorage){case"local":return window.localStorage;case"session":return window.sessionStorage;default:throw new Error(this.stateStorage+' is not a valid value for the state storage, supported values are "local" and "session".')}},saveState:function(){e.ObjectUtils.isArray(this.panelSizes)&&this.getStorage().setItem(this.stateKey,JSON.stringify(this.panelSizes))},restoreState:function(){var e=this,t=this.getStorage().getItem(this.stateKey);return!!t&&(this.panelSizes=JSON.parse(t),r(this.$el.children).filter((function(e){return"splitterpanel"===e.getAttribute("data-pc-name")})).forEach((function(t,n){t.style.flexBasis="calc("+e.panelSizes[n]+"% - "+(e.panels.length-1)*e.gutterSize+"px)"})),!0)}},computed:{panels:function(){var e=this,t=[];return this.$slots.default().forEach((function(n){e.isSplitterPanel(n)?t.push(n):n.children instanceof Array&&n.children.forEach((function(n){e.isSplitterPanel(n)&&t.push(n)}))})),t},gutterStyle:function(){return this.horizontal?{width:this.gutterSize+"px"}:{height:this.gutterSize+"px"}},horizontal:function(){return"horizontal"===this.layout}}},p=["onMousedown","onTouchstart","onTouchmove","onTouchend"],d=["aria-orientation","aria-valuenow","onKeydown"];c.render=function(e,t,n,s,r,o){return i.openBlock(),i.createElementBlock("div",i.mergeProps({class:e.cx("root"),style:e.sx("root"),"data-p-resizing":!1},e.ptm("root",o.getPTOptions()),{"data-pc-name":"splitter"}),[(i.openBlock(!0),i.createElementBlock(i.Fragment,null,i.renderList(o.panels,(function(n,s){return i.openBlock(),i.createElementBlock(i.Fragment,{key:s},[(i.openBlock(),i.createBlock(i.resolveDynamicComponent(n),{tabindex:"-1"})),s!==o.panels.length-1?(i.openBlock(),i.createElementBlock("div",i.mergeProps({key:0,ref_for:!0,ref:"gutter",class:e.cx("gutter"),role:"separator",tabindex:"-1",onMousedown:function(e){return o.onGutterMouseDown(e,s)},onTouchstart:function(e){return o.onGutterTouchStart(e,s)},onTouchmove:function(e){return o.onGutterTouchMove(e,s)},onTouchend:function(e){return o.onGutterTouchEnd(e,s)},"data-p-gutter-resizing":!1},e.ptm("gutter")),[i.createElementVNode("div",i.mergeProps({class:e.cx("gutterHandler"),tabindex:"0",style:[o.gutterStyle],"aria-orientation":e.layout,"aria-valuenow":r.prevSize,onKeyup:t[0]||(t[0]=function(){return o.onGutterKeyUp&&o.onGutterKeyUp.apply(o,arguments)}),onKeydown:function(e){return o.onGutterKeyDown(e,s)}},e.ptm("gutterHandler")),null,16,d)],16,p)):i.createCommentVNode("",!0)],64)})),128))],16)},module.exports=c;