UNPKG

ngx-bootstrap

Version:
16 lines (14 loc) 6.95 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("rxjs")):"function"==typeof define&&define.amd?define("ngx-bootstrap/sortable",["exports","@angular/core","@angular/common","@angular/forms","rxjs"],t):t(((e=e||self)["ngx-bootstrap"]=e["ngx-bootstrap"]||{},e["ngx-bootstrap"].sortable={}),e.ng.core,e.ng.common,e.ng.forms,e.rxjs)}(this,(function(e,t,n,r,i){"use strict"; /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */function o(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function a(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(o(arguments[t]));return e}var s=function(){function e(){this.onCapture=new i.Subject}return e.prototype.dragStart=function(e){this.draggableItem=e},e.prototype.getItem=function(){return this.draggableItem},e.prototype.captureItem=function(e,t){return this.draggableItem.overZoneIndex!==e&&(this.draggableItem.lastZoneIndex=this.draggableItem.overZoneIndex,this.draggableItem.overZoneIndex=e,this.onCapture.next(this.draggableItem),this.draggableItem=Object.assign({},this.draggableItem,{overZoneIndex:e,i:t})),this.draggableItem},e.prototype.onCaptureItem=function(){return this.onCapture},e.decorators=[{type:t.Injectable}],e}();var l=function(){function e(n){var r=this;this.wrapperClass="",this.wrapperStyle={},this.itemClass="",this.itemStyle={},this.itemActiveClass="",this.itemActiveStyle={},this.placeholderClass="",this.placeholderStyle={},this.placeholderItem="",this.onChange=new t.EventEmitter,this.showPlaceholder=!1,this.activeItem=-1,this.onTouched=Function.prototype,this.onChanged=Function.prototype,this.transfer=n,this.currentZoneIndex=e.globalZoneIndex++,this.transfer.onCaptureItem().subscribe((function(e){return r.onDrop(e)}))}return Object.defineProperty(e.prototype,"items",{get:function(){return this._items},set:function(e){this._items=e;var t=this.items.map((function(e){return e.initData}));this.onChanged(t),this.onChange.emit(t)},enumerable:!0,configurable:!0}),e.prototype.onItemDragstart=function(e,t,n){this.initDragstartEvent(e),this.onTouched(),this.transfer.dragStart({event:e,item:t,i:n,initialIndex:n,lastZoneIndex:this.currentZoneIndex,overZoneIndex:this.currentZoneIndex})},e.prototype.onItemDragover=function(e,t){if(this.transfer.getItem()){e.preventDefault();var n=this.transfer.captureItem(this.currentZoneIndex,this.items.length),r=[];r=this.items.length?n.i>t?a(this.items.slice(0,t),[n.item],this.items.slice(t,n.i),this.items.slice(n.i+1)):a(this.items.slice(0,n.i),this.items.slice(n.i+1,t+1),[n.item],this.items.slice(t+1)):[n.item],this.items=r,n.i=t,this.activeItem=t,this.updatePlaceholderState()}},e.prototype.cancelEvent=function(e){this.transfer.getItem()&&e&&e.preventDefault()},e.prototype.onDrop=function(e){e&&e.overZoneIndex!==this.currentZoneIndex&&e.lastZoneIndex===this.currentZoneIndex&&(this.items=this.items.filter((function(t,n){return n!==e.i})),this.updatePlaceholderState()),this.resetActiveItem(void 0)},e.prototype.resetActiveItem=function(e){this.cancelEvent(e),this.activeItem=-1},e.prototype.registerOnChange=function(e){this.onChanged=e},e.prototype.registerOnTouched=function(e){this.onTouched=e},e.prototype.writeValue=function(e){var t=this;this.items=e?e.map((function(e,n){return{id:n,initData:e,value:t.fieldName?e[t.fieldName]:e}})):[],this.updatePlaceholderState()},e.prototype.updatePlaceholderState=function(){this.showPlaceholder=!this._items.length},e.prototype.getItemStyle=function(e){return e?Object.assign({},this.itemStyle,this.itemActiveStyle):this.itemStyle},e.prototype.initDragstartEvent=function(e){e.dataTransfer.setData("Text","placeholder")},e.globalZoneIndex=0,e.decorators=[{type:t.Component,args:[{selector:"bs-sortable",exportAs:"bs-sortable",template:'\n<div\n [ngClass]="wrapperClass"\n [ngStyle]="wrapperStyle"\n (dragover)="cancelEvent($event)"\n (dragenter)="cancelEvent($event)"\n (drop)="resetActiveItem($event)"\n (mouseleave)="resetActiveItem($event)">\n <div\n *ngIf="showPlaceholder"\n [ngClass]="placeholderClass"\n [ngStyle]="placeholderStyle"\n (dragover)="onItemDragover($event, 0)"\n (dragenter)="cancelEvent($event)"\n >{{placeholderItem}}</div>\n <div\n *ngFor="let item of items; let i=index;"\n [ngClass]="[ itemClass, i === activeItem ? itemActiveClass : \'\' ]"\n [ngStyle]="getItemStyle(i === activeItem)"\n draggable="true"\n (dragstart)="onItemDragstart($event, item, i)"\n (dragend)="resetActiveItem($event)"\n (dragover)="onItemDragover($event, i)"\n (dragenter)="cancelEvent($event)"\n aria-dropeffect="move"\n [attr.aria-grabbed]="i === activeItem"\n ><ng-template [ngTemplateOutlet]="itemTemplate || defItemTemplate"\n [ngTemplateOutletContext]="{item:item, index: i}"></ng-template></div>\n</div>\n\n<ng-template #defItemTemplate let-item="item">{{item.value}}</ng-template> \n',providers:[{provide:r.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return e})),multi:!0}]}]}],e.ctorParameters=function(){return[{type:s}]},e.propDecorators={fieldName:[{type:t.Input}],wrapperClass:[{type:t.Input}],wrapperStyle:[{type:t.Input}],itemClass:[{type:t.Input}],itemStyle:[{type:t.Input}],itemActiveClass:[{type:t.Input}],itemActiveStyle:[{type:t.Input}],placeholderClass:[{type:t.Input}],placeholderStyle:[{type:t.Input}],placeholderItem:[{type:t.Input}],itemTemplate:[{type:t.Input}],onChange:[{type:t.Output}]},e}();var p=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[s]}},e.decorators=[{type:t.NgModule,args:[{declarations:[l],imports:[n.CommonModule],exports:[l]}]}],e}();e.DraggableItemService=s,e.SortableComponent=l,e.SortableModule=p,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=ngx-bootstrap-sortable.umd.min.js.map