primeng
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primeng) [ • 10.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("primeng/dom")):"function"==typeof define&&define.amd?define("primeng/splitter",["exports","@angular/core","@angular/common","primeng/dom"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).primeng=e.primeng||{},e.primeng.splitter={}),e.ng.core,e.ng.common,e.primeng.dom)}(this,(function(e,t,n,i){"use strict";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */Object.create;function s(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,s,r=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(i=r.next()).done;)l.push(i.value)}catch(e){s={error:e}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(s)throw s.error}}return l}function r(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(s(arguments[t]));return e}Object.create;var l=function(){function e(e,n){this.cd=e,this.el=n,this.stateStorage="session",this.stateKey=null,this.layout="horizontal",this.gutterSize=4,this.panelSizes=[],this.minSizes=[],this.onResizeEnd=new t.EventEmitter,this.nested=!1,this.dragging=!1,this.mouseMoveListener=null,this.mouseUpListener=null,this.size=null,this.gutterElement=null,this.startPos=null,this.prevPanelElement=null,this.nextPanelElement=null,this.nextPanelSize=null,this.prevPanelSize=null,this._panelSizes=null,this.prevPanelIndex=null}return e.prototype.ngOnInit=function(){this.nested=this.isNested()},e.prototype.ngAfterViewInit=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.nativeElement.children[0].children).filter((function(e){return i.DomHandler.hasClass(e,"p-splitter-panel")})),s=[];this.panels.map((function(t,i){var r=(e.panelSizes.length-1>=i?e.panelSizes[i]:null)||100/e.panels.length;s[i]=r,n[i].style.flexBasis="calc("+r+"% - "+(e.panels.length-1)*e.gutterSize+"px)"})),this._panelSizes=s}}},e.prototype.onResizeStart=function(e,t){this.gutterElement=e.currentTarget,this.size=this.horizontal()?i.DomHandler.getWidth(this.containerViewChild.nativeElement):i.DomHandler.getHeight(this.containerViewChild.nativeElement),this.dragging=!0,this.startPos=this.horizontal()?e.pageX:e.pageY,this.prevPanelElement=this.gutterElement.previousElementSibling,this.nextPanelElement=this.gutterElement.nextElementSibling,this.prevPanelSize=100*(this.horizontal()?i.DomHandler.getOuterWidth(this.prevPanelElement,!0):i.DomHandler.getOuterHeight(this.prevPanelElement,!0))/this.size,this.nextPanelSize=100*(this.horizontal()?i.DomHandler.getOuterWidth(this.nextPanelElement,!0):i.DomHandler.getOuterHeight(this.nextPanelElement,!0))/this.size,this.prevPanelIndex=t,i.DomHandler.addClass(this.gutterElement,"p-splitter-gutter-resizing"),i.DomHandler.addClass(this.containerViewChild.nativeElement,"p-splitter-resizing")},e.prototype.onResize=function(e){var t;t=this.horizontal()?100*e.pageX/this.size-100*this.startPos/this.size:100*e.pageY/this.size-100*this.startPos/this.size;var n=this.prevPanelSize+t,i=this.nextPanelSize-t;this.validateResize(n,i)&&(this.prevPanelElement.style.flexBasis="calc("+n+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this.nextPanelElement.style.flexBasis="calc("+i+"% - "+(this.panels.length-1)*this.gutterSize+"px)",this._panelSizes[this.prevPanelIndex]=n,this._panelSizes[this.prevPanelIndex+1]=i)},e.prototype.resizeEnd=function(e){this.isStateful()&&this.saveState(),this.onResizeEnd.emit({originalEvent:e,sizes:this._panelSizes}),i.DomHandler.removeClass(this.gutterElement,"p-splitter-gutter-resizing"),i.DomHandler.removeClass(this.containerViewChild.nativeElement,"p-splitter-resizing"),this.clear()},e.prototype.onGutterMouseDown=function(e,t){this.onResizeStart(e,t),this.bindMouseListeners()},e.prototype.onGutterTouchStart=function(e,t){this.onResizeStart(e,t),e.preventDefault()},e.prototype.onGutterTouchMove=function(e){this.onResize(e),e.preventDefault()},e.prototype.onGutterTouchEnd=function(e){this.resizeEnd(e),e.preventDefault()},e.prototype.validateResize=function(e,t){return!(this.minSizes.length>=1&&this.minSizes[0]&&this.minSizes[0]>e)&&!(this.minSizes.length>1&&this.minSizes[1]&&this.minSizes[1]>t)},e.prototype.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.resizeEnd(t),e.unbindMouseListeners()},document.addEventListener("mouseup",this.mouseUpListener))},e.prototype.unbindMouseListeners=function(){this.mouseMoveListener&&(document.removeEventListener("mousemove",this.mouseMoveListener),this.mouseMoveListener=null),this.mouseUpListener&&(document.removeEventListener("mouseup",this.mouseUpListener),this.mouseUpListener=null)},e.prototype.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},e.prototype.isNested=function(){if(this.el.nativeElement){for(var e=this.el.nativeElement.parentElement;e&&!i.DomHandler.hasClass(e,"p-splitter");)e=e.parentElement;return null!==e}return!1},e.prototype.isStateful=function(){return null!=this.stateKey},e.prototype.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".')}},e.prototype.saveState=function(){this.getStorage().setItem(this.stateKey,JSON.stringify(this._panelSizes))},e.prototype.restoreState=function(){var e=this,t=this.getStorage().getItem(this.stateKey);return!!t&&(this._panelSizes=JSON.parse(t),r(this.containerViewChild.nativeElement.children).filter((function(e){return i.DomHandler.hasClass(e,"p-splitter-panel")})).forEach((function(t,n){t.style.flexBasis="calc("+e._panelSizes[n]+"% - "+(e.panels.length-1)*e.gutterSize+"px)"})),!0)},e.prototype.containerClass=function(){return{"p-splitter p-component":!0,"p-splitter-horizontal":"horizontal"===this.layout,"p-splitter-vertical":"vertical"===this.layout}},e.prototype.panelContainerClass=function(){return{"p-splitter-panel":!0,"p-splitter-panel-nested":!0}},e.prototype.gutterStyle=function(){return this.horizontal()?{width:this.gutterSize+"px"}:{height:this.gutterSize+"px"}},e.prototype.horizontal=function(){return"horizontal"===this.layout},e}();l.decorators=[{type:t.Component,args:[{selector:"p-splitter",template:'\n <div #container [ngClass]="containerClass()" [class]="styleClass" [ngStyle]="style">\n <ng-template ngFor let-panel let-i="index" [ngForOf]="panels">\n <div [ngClass]="panelContainerClass()" [class]="panelStyleClass">\n <ng-container *ngTemplateOutlet="panel"></ng-container>\n </div>\n <div class="p-splitter-gutter" *ngIf="i !== (panels.length - 1)" [ngStyle]="gutterStyle()" \n (mousedown)="onGutterMouseDown($event, i)" (touchstart)="onGutterTouchStart($event, i)" (touchmove)="onGutterTouchMove($event, i)" (touchend)="onGutterTouchEnd($event, i)">\n <div class="p-splitter-gutter-handle"></div>\n </div>\n </ng-template>\n </div>\n ',encapsulation:t.ViewEncapsulation.None,changeDetection:t.ChangeDetectionStrategy.OnPush,host:{"[class.p-splitter-panel-nested]":"nested"},styles:[".p-splitter{display:flex;flex-wrap:nowrap}.p-splitter-vertical{flex-direction:column}.p-splitter-panel{flex-grow:1}.p-splitter-panel-nested{display:flex}.p-splitter-panel p-splitter{flex-grow:1}.p-splitter-panel .p-splitter{border:0;flex-grow:1}.p-splitter-gutter{align-items:center;cursor:col-resize;display:flex;flex-grow:0;flex-shrink:0;justify-content:center}.p-splitter-horizontal.p-splitter-resizing{-ms-user-select:none;-webkit-user-select:none;cursor:col-resize;user-select:none}.p-splitter-horizontal>.p-splitter-gutter>.p-splitter-gutter-handle{height:24px;width:100%}.p-splitter-horizontal>.p-splitter-gutter{cursor:col-resize}.p-splitter-vertical.p-splitter-resizing{-ms-user-select:none;-webkit-user-select:none;cursor:row-resize;user-select:none}.p-splitter-vertical>.p-splitter-gutter{cursor:row-resize}.p-splitter-vertical>.p-splitter-gutter>.p-splitter-gutter-handle{height:100%;width:24px}"]}]}],l.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:t.ElementRef}]},l.propDecorators={styleClass:[{type:t.Input}],panelStyleClass:[{type:t.Input}],style:[{type:t.Input}],stateStorage:[{type:t.Input}],stateKey:[{type:t.Input}],layout:[{type:t.Input}],gutterSize:[{type:t.Input}],panelSizes:[{type:t.Input}],minSizes:[{type:t.Input}],onResizeEnd:[{type:t.Output}],panels:[{type:t.ContentChildren,args:[t.TemplateRef]}],containerViewChild:[{type:t.ViewChild,args:["container",{static:!1}]}]};var o=function(){};o.decorators=[{type:t.NgModule,args:[{imports:[n.CommonModule],exports:[l],declarations:[l]}]}],e.Splitter=l,e.SplitterModule=o,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=primeng-splitter.umd.min.js.map