UNPKG

ng2-data-table

Version:

Data Table component for Angular2 framework

1 lines 15.4 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("lodash")):"function"==typeof define&&define.amd?define(["exports","@angular/core","@angular/common","lodash"],e):e((t.angular2=t.angular2||{},t.angular2.data=t.angular2.data||{},t.angular2.data.table=t.angular2.data.table||{}),t.ng.core,t.ng.common,t._)}(this,function(t,e,a,n){"use strict";var i=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},o=function(){function t(){this._locStorVar="ng2-data-table-pagination"}return t.prototype.getPagination=function(t){var e=window.localStorage.getItem(this._locStorVar);return e?parseInt(e):t},t.prototype.setPagination=function(t){window.localStorage.setItem(this._locStorVar,t)},t=i([e.Injectable()],t)}(),s=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},r=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},c=function(){function t(t){this.stateManager=t,this.inputData=[],this.sortBy="",this.sortOrder="asc",this.rowsOnPage=1e3,this.saveRowsOnPage=!1,this.activePage=1,this.selectedEntitiesEmitter=new e.EventEmitter,this.selectedEntities=[],this.mustRecalculateData=!1,this.onDataChange=new e.EventEmitter,this.onSortChange=new e.EventEmitter,this.onPageChange=new e.EventEmitter,this.onSelectChange=new e.EventEmitter}return t.prototype.addRemoveSelectedEntity=function(t){this.onSelectChange.emit({}),this.updateSelectedEntities(),this.selectedEntitiesEmitter.emit(this.selectedEntities)},t.prototype.updateSelectedEntities=function(){this.selectedEntities=this.inputData.filter(function(t){return t.__isSelected__})},t.prototype.selectAllRows=function(){this.inputData.forEach(function(t){(0==t.hasOwnProperty("mfIsSelectable")||t.hasOwnProperty("mfIsSelectable")&&t.mfIsSelectable)&&(t.__isSelected__=!0)}),this.updateSelectedEntities(),this.selectedEntitiesEmitter.emit(this.selectedEntities)},t.prototype.deselectAllRows=function(){this.inputData.forEach(function(t){t.__isSelected__=!1}),this.updateSelectedEntities(),this.selectedEntitiesEmitter.emit(this.selectedEntities)},t.prototype.getSort=function(){return{sortBy:this.sortBy,sortOrder:this.sortOrder}},t.prototype.setSort=function(t,e){this.sortBy===t&&this.sortOrder===e||(this.sortBy=t,this.sortOrder=e,this.mustRecalculateData=!0,this.onSortChange.emit({sortBy:t,sortOrder:e}))},t.prototype.getPage=function(){return{activePage:this.activePage,rowsOnPage:this.rowsOnPage,dataLength:this.inputData.length}},t.prototype.setPage=function(t,e){this.rowsOnPage===e&&this.activePage===t||(this.activePage=this.activePage!==t?t:this.calculateNewActivePage(this.rowsOnPage,e),this.saveRowsOnPage&&this.rowsOnPage!=e&&this.stateManager.setPagination(e.toString()),this.rowsOnPage=e,this.mustRecalculateData=!0,this.onPageChange.emit({activePage:this.activePage,rowsOnPage:this.rowsOnPage,dataLength:this.inputData.length}))},t.prototype.calculateNewActivePage=function(t,e){var a=(this.activePage-1)*t+1;return Math.ceil(a/e)},t.prototype.ngOnInit=function(){if(this.inputDataLength=this.inputData.length,this.saveRowsOnPage){var t=this.stateManager.getPagination(this.rowsOnPage);this.setPage(1,t)}},t.prototype.ngOnChanges=function(t){t.inputData&&(this.mustRecalculateData=!0,this.ngDoCheck())},t.prototype.addIsSelectedProperty=function(){this.inputData.forEach(function(t){null==t.__isSelected__&&Object.defineProperty(t,"__isSelected__",{value:!1,writable:!0})})},t.prototype.ngDoCheck=function(){(this.mustRecalculateData||this.isInputDataChanged())&&(this.addIsSelectedProperty(),this.inputData=this.inputData||[],this.onPageChange.emit({activePage:this.activePage,rowsOnPage:this.rowsOnPage,dataLength:this.inputData.length}),this.onDataChange.emit({length:this.inputData.length}),this.fillData(),this.mustRecalculateData=!1)},t.prototype.isInputDataChanged=function(){var t=this.inputDataLength!=this.inputData.length;return this.inputDataLength=this.inputData.length,t},t.prototype.fillData=function(){var t=this;this.activePage=this.activePage,this.rowsOnPage=this.rowsOnPage;var e=(this.activePage-1)*this.rowsOnPage,a=this.inputData;a=n.orderBy(a,function(e){var a=e[t.sortBy];return a&&"string"==typeof a||a instanceof String?a.toLowerCase():a},[this.sortOrder]),a=n.slice(a,e,e+this.rowsOnPage),this.data=a},s([e.Input("mfData"),r("design:type",Array)],t.prototype,"inputData",void 0),s([e.Input("mfRowsOnPage"),r("design:type",Object)],t.prototype,"rowsOnPage",void 0),s([e.Input("mfSaveRowsOnPage"),r("design:type",Object)],t.prototype,"saveRowsOnPage",void 0),s([e.Input("mfActivePage"),r("design:type",Object)],t.prototype,"activePage",void 0),s([e.Output("mfSelectedEntities"),r("design:type",Object)],t.prototype,"selectedEntitiesEmitter",void 0),t=s([e.Directive({selector:"table[mfData]",exportAs:"mfDataTable"}),r("design:paramtypes",[o])],t)}(),l=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},p=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},g=function(){function t(){this.rowsOnPageSet=[],this.minRowsOnPage=0}return t.prototype.ngOnChanges=function(t){t.rowsOnPageSet&&(this.minRowsOnPage=n.min(this.rowsOnPageSet))},l([e.Input("rowsOnPageSet"),p("design:type",Object)],t.prototype,"rowsOnPageSet",void 0),l([e.Input("mfTable"),p("design:type",c)],t.prototype,"mfTable",void 0),t=l([e.Component({selector:"mfBootstrapPaginator",template:'\n <mfPaginator #p [mfTable]="mfTable">\n <nav class="pagination" *ngIf="p.dataLength > p.rowsOnPage">\n <li [class.disabled]="p.activePage <= 1" (click)="p.setPage(1)">\n <a style="cursor: pointer">&laquo;</a>\n </li>\n <li *ngIf="p.activePage > 4 && p.activePage + 1 > p.lastPage" (click)="p.setPage(p.activePage - 4)">\n <a style="cursor: pointer">{{p.activePage-4}}</a>\n </li>\n <li *ngIf="p.activePage > 3 && p.activePage + 2 > p.lastPage" (click)="p.setPage(p.activePage - 3)">\n <a style="cursor: pointer">{{p.activePage-3}}</a>\n </li>\n <li *ngIf="p.activePage > 2" (click)="p.setPage(p.activePage - 2)">\n <a style="cursor: pointer">{{p.activePage-2}}</a>\n </li>\n <li *ngIf="p.activePage > 1" (click)="p.setPage(p.activePage - 1)">\n <a style="cursor: pointer">{{p.activePage-1}}</a>\n </li>\n <li class="active">\n <a style="cursor: pointer">{{p.activePage}}</a>\n </li>\n <li *ngIf="p.activePage + 1 <= p.lastPage" (click)="p.setPage(p.activePage + 1)">\n <a style="cursor: pointer">{{p.activePage+1}}</a>\n </li>\n <li *ngIf="p.activePage + 2 <= p.lastPage" (click)="p.setPage(p.activePage + 2)">\n <a style="cursor: pointer">{{p.activePage+2}}</a>\n </li>\n <li *ngIf="p.activePage + 3 <= p.lastPage && p.activePage < 3" (click)="p.setPage(p.activePage + 3)">\n <a style="cursor: pointer">{{p.activePage+3}}</a>\n </li>\n <li *ngIf="p.activePage + 4 <= p.lastPage && p.activePage < 2" (click)="p.setPage(p.activePage + 4)">\n <a style="cursor: pointer">{{p.activePage+4}}</a>\n </li>\n <li [class.disabled]="p.activePage >= p.lastPage" (click)="p.setPage(p.lastPage)">\n <a style="cursor: pointer">&raquo;</a>\n </li>\n </nav>\n <nav class="pagination pull-right" *ngIf="p.dataLength > minRowsOnPage">\n <li *ngFor="let rows of rowsOnPageSet" [class.active]="p.rowsOnPage===rows" (click)="p.setRowsOnPage(rows)">\n <a style="cursor: pointer">{{rows}}</a>\n </li>\n </nav>\n </mfPaginator>\n '})],t)}(),f=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},h=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},u=function(){function t(t){var e=this;this.mfTable=t,this.showSortableArrows=!1,this.sortArrowStyleClass="",this.styleClass="",this.isSortedByMeAsc=!1,this.isSortedByMeDesc=!1,t.onSortChange.subscribe(function(t){e.isSortedByMeAsc=t.sortBy===e.sortBy&&"asc"===t.sortOrder,e.isSortedByMeDesc=t.sortBy===e.sortBy&&"desc"===t.sortOrder})}return t.prototype.sort=function(){this.isSortedByMeAsc?this.mfTable.setSort(this.sortBy,"desc"):this.mfTable.setSort(this.sortBy,"asc")},f([e.Input("by"),h("design:type",String)],t.prototype,"sortBy",void 0),f([e.Input("mfShowSortableArrows"),h("design:type",Object)],t.prototype,"showSortableArrows",void 0),f([e.Input("mfSortArrowStyleClass"),h("design:type",Object)],t.prototype,"sortArrowStyleClass",void 0),f([e.Input("mfStyleClass"),h("design:type",Object)],t.prototype,"styleClass",void 0),t=f([e.Component({selector:"mfDefaultSorter",template:'\n <a style="cursor: pointer" (click)="sort()" class="text-nowrap" [ngClass]="styleClass">\n <ng-content></ng-content>\n <span *ngIf="!showSortableArrows">\n <span *ngIf="isSortedByMeAsc" class="glyphicon glyphicon-triangle-top" aria-hidden="true" [ngClass]="sortArrowStyleClass"></span>\n <span *ngIf="isSortedByMeDesc" class="glyphicon glyphicon-triangle-bottom" aria-hidden="true" [ngClass]="sortArrowStyleClass"></span>\n </span>\n <span *ngIf="showSortableArrows">\n <span *ngIf="isSortedByMeAsc" class="fa fa-fw fa-sort fa-sort-asc" aria-hidden="true" [ngClass]="sortArrowStyleClass"></span>\n <span *ngIf="isSortedByMeDesc" class="fa fa-fw fa-sort fa-sort-desc" aria-hidden="true" [ngClass]="sortArrowStyleClass"></span>\n <span *ngIf="!isSortedByMeDesc && !isSortedByMeAsc" class="fa fa-fw fa-sort" aria-hidden="true" [ngClass]="sortArrowStyleClass"></span>\n </span>\n </a>'}),h("design:paramtypes",[c])],t)}(),d=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},y=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},P=function(t,e){return function(a,n){e(a,n,t)}},v=function(){function t(t){var e=this;this.injectMfTable=t,this.dataLength=0,this.onPageChangeSubscriber=function(t){e.activePage=t.activePage,e.rowsOnPage=t.rowsOnPage,e.dataLength=t.dataLength,e.lastPage=Math.ceil(e.dataLength/e.rowsOnPage)}}return t.prototype.ngOnChanges=function(t){this.mfTable=this.inputMfTable||this.injectMfTable,this.onPageChangeSubscriber(this.mfTable.getPage()),this.mfTable.onPageChange.subscribe(this.onPageChangeSubscriber)},t.prototype.setPage=function(t){this.mfTable.setPage(t,this.rowsOnPage)},t.prototype.setRowsOnPage=function(t){this.mfTable.setPage(this.activePage,t)},d([e.Input("mfTable"),y("design:type",c)],t.prototype,"inputMfTable",void 0),t=d([e.Component({selector:"mfPaginator",template:"<ng-content></ng-content>"}),P(0,e.Optional()),y("design:paramtypes",[c])],t)}(),b=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},m=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},w=function(){function t(t){this.mfTable=t,this.entity=Object,this.isChecked=!1}return t.prototype.ngOnInit=function(){this.getIsChecked()},t.prototype.ngDoCheck=function(){this.getIsChecked()},t.prototype.getIsChecked=function(){this.isChecked=this.entity.__isSelected__},t.prototype.onChange=function(){this.entity.__isSelected__=!this.entity.__isSelected__,this.mfTable.addRemoveSelectedEntity(this.entity)},b([e.Input(),m("design:type",Object)],t.prototype,"entity",void 0),b([e.Input(),m("design:type",String)],t.prototype,"checkboxId",void 0),t=b([e.Component({selector:"mfRowSelector",template:'\n <input type="checkbox" id="{{checkboxId}}" [checked]="isChecked" (change)="onChange()" />\n <label attr.for="{{checkboxId}}"></label>\n '}),m("design:paramtypes",[c])],t)}(),O=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},S=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},R=function(){function t(t){var e=this;this.mfTable=t,this.isChecked=!1,t.onDataChange.subscribe(function(){e.isChecked=!1}),t.onSelectChange.subscribe(function(){e.isChecked=!1})}return t.prototype.onChange=function(t){this.isChecked=!this.isChecked,this.isChecked?this.mfTable.selectAllRows():this.mfTable.deselectAllRows()},O([e.Input("checkboxId"),S("design:type",String)],t.prototype,"checkboxId",void 0),t=O([e.Component({selector:"mfRowSelectorHead",template:'\n <input type="checkbox" id="{{checkboxId}}" [checked]="isChecked" (change)="onChange($event)" />\n <label attr.for="{{checkboxId}}"></label>\n '}),S("design:paramtypes",[c])],t)}(),C=function(t,e,a,n){var i,o=arguments.length,s=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,a):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,a,n);else for(var r=t.length-1;r>=0;r--)(i=t[r])&&(s=(o<3?i(s):o>3?i(e,a,s):i(e,a))||s);return o>3&&s&&Object.defineProperty(e,a,s),s},D=function(){function t(){}return t=C([e.NgModule({imports:[a.CommonModule],providers:[o],declarations:[g,c,u,v,w,R],exports:[g,c,u,v,w,R]})],t)}();t.DataTableModule=D,t.DataTable=c,t.DefaultSorter=u,t.Paginator=v,t.BootstrapPaginator=g,t.RowSelector=w,t.RowSelectorHead=R,t.StateManager=o,Object.defineProperty(t,"__esModule",{value:!0})});