UNPKG

flx-ui-datatable

Version:

## AUTHOR Felix Kakra Acheampong from (`Orcons Systems`) Ghana

2 lines 46.3 kB
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/http"),require("rxjs/operators"),require("rxjs"),require("@angular/forms"),require("@angular/common"),require("ngx-perfect-scrollbar")):"function"==typeof define&&define.amd?define("flx-ui-datatable",["exports","@angular/core","@angular/http","rxjs/operators","rxjs","@angular/forms","@angular/common","ngx-perfect-scrollbar"],e):e(t["flx-ui-datatable"]={},t.ng.core,t.ng.http,t.rxjs.operators,t.rxjs,t.ng.forms,t.ng.common,null)}(this,function(t,a,n,i,o,e,s,r){"use strict";var l=function(){function t(t){this.http=t,this.dataUrl="",this.behavior=new o.BehaviorSubject([]),this.flxData=this.behavior.asObservable(),this.pagination=[],this.totalItems=0,this.dataOffset=0,this.limit=20,this.dataSrcKey="",this.multipleDeletion=[],this.loadFinish=!1,this.lazyloadingConfig={},this.processedData={}}return t.prototype.setLazyloadingConfig=function(t){this.lazyloadingConfig=t},t.prototype.getData=function(t){var e=new n.Headers;return e.append("Content-Type","application/x-www-form-urlencoded"),this.http.get(t,{headers:e}).pipe(i.retry(5),i.map(function(t){return t.json()}))},t.prototype.postData=function(t,e,a){var o=new n.Headers;return o.append("Content-Type","application/json; charset=utf-8"),this.http.post(t+e,a,{headers:o}).pipe(i.map(function(t){return t.json()}))},t.prototype.setDataUrl=function(t){this.dataUrl=t},t.prototype.getDataUrl=function(){return this.dataUrl},t.prototype.chageDataTable=function(t){this.behavior.next(t)},t.prototype.createPagination=function(t,e){for(var a=[],o=1,n=0;n<t;n+=e)a.push({label:o,value:n}),o++;return this.isLazyLoadingEnabled||a.push({label:"All",value:"all"}),a},t.prototype.isLazyLoadingEnabled=function(){return this.lazyloadingConfig.hasOwnProperty("apiOffsetKey")&&this.lazyloadingConfig.apiOffsetKey},t.prototype.loadFlxDataTableData=function(t,o){var n=this;void 0===o&&(o=!0),this.loadFinish=!1,this.loader=this.getData(t).subscribe(function(t){try{n.multipleDeletion=[];var e=n.dataSrcKey?t[n.dataSrcKey]:t;n.chageDataTable(e),n.isLazyLoadingEnabled()?(n.totalItems=t.total,0<e.length&&(n.dataOffset=n.dataOffset+n.limit)):(n.totalItems=e.length,n.dataOffset=1),o&&(n.isLazyLoadingEnabled()?n.pagination=n.createPagination(t.total,n.limit):n.pagination=n.createPagination(e.length,n.limit)),n.loadFinish=!0}catch(a){console.log("Error in reading data in ",a)}},function(t){n.loadFinish=!0})},t.prototype.cancelLoading=function(){this.loader.unsubscribe()},t.prototype.setDataSrcKey=function(t){this.dataSrcKey=t},t.prototype.getDataLength=function(){var t=this;return new Promise(function(e){t.flxData.subscribe(function(t){e(t.length)},function(t){e(0)})})},t.decorators=[{type:a.Injectable}],t.ctorParameters=function(){return[{type:n.Http}]},t}(),d=function(){function t(t){var e=this;this.service=t,this.behavior=new o.BehaviorSubject([]),this.flxDatatableData=this.behavior.asObservable(),this.service.flxData.subscribe(function(t){e.ChangeData(t)})}return t.prototype.ChangeData=function(t){this.behavior.next(t)},t.prototype.reloadData=function(){this.service.loadFlxDataTableData(this.service.getDataUrl())},t.prototype.abortRequest=function(){this.service.cancelLoading()},t.decorators=[{type:a.Injectable}],t.ctorParameters=function(){return[{type:l}]},t}();function g(t){var e="function"==typeof Symbol&&t[Symbol.iterator],a=0;return e?e.call(t):{next:function(){return t&&a>=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}}}var p=function(){function t(t,e){this.__form=t,this.service=e,this.classes={},this.headers=[],this.lazyloadingConfig={},this.embedPictures={},this.dataKeys=[],this.enableDataExports=!1,this.dataExportsConfig={},this.searchKeys=[],this.dataSrcKey="",this.hasActionButtons=!1,this.hideNumbers=!1,this.enableMultipleSelection=!1,this.multipleSelectKey="",this.hasAddButton=!1,this.dataUrl="",this.actionButtonStart=!1,this.multipleSelectButton={text:"Selected",icon:""},this.searchPlaceholder="Enter name to search",this.actionHeader="Actions",this.limit=20,this.spinnerSrc="",this.actionButtons=[],this.paginationButtons={background:"#dddddd",textColor:"#335599"},this.tableHeader={background:"#ffffff",textColor:"#335599"},this.searchButton={background:"#cccccc",textColor:"#335599"},this.addButton={},this.searchBar={borderSize:"1px",borderColor:"#ccc",background:"#ffffff",textColor:"#000000"},this.actionButtonsConfig={position:"right",beforeNumbers:!0},this.firstActionButtonClicked=new a.EventEmitter,this.secondActionButtonClicked=new a.EventEmitter,this.thirdActionButtonClicked=new a.EventEmitter,this.multipleSelectClicked=new a.EventEmitter,this.addButtonClicked=new a.EventEmitter,this.textSubstring={},this.conditionManipulator={},this.isExportAll=!1,this.tData=[],this.behavior=new o.BehaviorSubject([]),this.searchDataTempOffset=[],this.displayData=this.behavior.asObservable(),this.offset=1,this.searchResultFound=[]}return t.prototype.reload=function(){this.service.loadFlxDataTableData(this.reloadUrl,!0)},t.prototype.checkToExportOption=function(t){this.isExportAll=t},t.prototype.exportDocumentsAs=function(b){var x=this,h=document.getElementById("export_loading");h.style.display="block";var m=!this.dataExportsConfig.dataColumns||this.dataExportsConfig.dataColumns.length<1?this.dataKeys:this.dataExportsConfig.dataColumns;(this.isExportAll?this.service.flxData:this.displayData).subscribe(function(t){var e,a,o=[];try{for(var n=g(t),i=n.next();!i.done;i=n.next()){for(var s=i.value,r={},l=0;l<m.length;l++)r[m[l]]=s[m[l]];o.push(r)}}catch(u){e={error:u}}finally{try{i&&!i.done&&(a=n["return"])&&a.call(n)}finally{if(e)throw e.error}}if("print"==b)try{printJS({printable:o,properties:m,type:"json"}),h.style.display="none"}catch(f){h.style.display="none"}else{var d="pdf"==b?"pdf":"excel"==b?"xlsx":"docx",p="pdf"==b?3:"excel"==b?5:4,c={data:JSON.stringify(o)};x.service.postData("http://exporter.azurewebsites.net/api/export/ExportFromJSON/",p,c).subscribe(function(t){var e="http://exporter.azurewebsites.net/api/export/GetFile/"+t;e+="?fileName=andrei&extension="+d,window.location.href=e,h.style.display="none"},function(t){})}}).unsubscribe()},t.prototype.hasImageEmbeded=function(){return this.embedPictures.hasOwnProperty("index")},t.prototype.getImage=function(){console.log("eoeoe")},t.prototype.JSONToCSVConvertor=function(t,e,a){var o="object"!=typeof t?JSON.parse(t):t,n="";if(n+=e+"\r\n\n",a){var i="";for(var s in o[0])i+=s+",";n+=(i=i.slice(0,-1))+"\r\n"}for(var r=0;r<o.length;r++){i="";for(var s in o[r])i+='"'+o[r][s]+'",';i.slice(0,i.length-1),n+=i+"\r\n"}if(""!=n){var l="MyReport_";l+=e.replace(/ /g,"_");var d="data:text/csv;charset=utf-8,"+escape(n),p=document.createElement("a");p.href=d,p.style="visibility:hidden",p.download=l+".csv",document.body.appendChild(p),p.click(),document.body.removeChild(p)}else alert("Invalid data")},t.prototype.changeDisplayData=function(t){this.behavior.next(t),this.setColumnWidths()},t.prototype.ngOnInit=function(){var o=this;$(window).resize(function(){}).resize(),this.isLazyloadingEnabled()?this.reloadUrl=this.dataUrl+"&"+this.lazyloadingConfig.apiOffsetKey+"=0&"+this.lazyloadingConfig.apiSearchKey+"=":this.reloadUrl=this.dataUrl,this.searchForm=this.__form.group({searchString:["",e.Validators.required]}),this.searchForm=this.__form.group({searchString:["",e.Validators.required]}),this.service.limit=this.limit,this.service.setLazyloadingConfig(this.lazyloadingConfig),this.service.setDataUrl(this.dataUrl),this.service.setDataSrcKey(this.dataSrcKey);var t=this.isLazyloadingEnabled()?this.dataUrl+"&"+this.lazyloadingConfig.apiOffsetKey+"=0&"+this.lazyloadingConfig.apiSearchKey+"=":this.dataUrl;this.service.loadFlxDataTableData(t),this.service.flxData.subscribe(function(t){o.tData=t;var e=[];if(o.tData.length>o.limit)for(var a=0;a<o.limit;a++)e.push(o.tData[a]);else for(a=0;a<o.tData.length;a++)e.push(o.tData[a]);o.searchDataTempOffset=e,o.changeDisplayData(e)})},t.prototype.searchDataInApi=function(t,e){this.service.chageDataTable([]),this.service.loadFlxDataTableData(this.dataUrl+"&"+this.lazyloadingConfig.apiOffsetKey+"=0&"+this.lazyloadingConfig.apiSearchKey+"="+t.searchString)},t.prototype.ngAfterViewInit=function(){var t=this.returColumnswidth();$(window).ready(function(){$(".flx-table-thead tr th").css({width:t+"%"})})},t.prototype.setColumnWidths=function(){var t=this.returColumnswidth();$(window).ready(function(){$(".flx-table-data tbody tr td").css({width:t+"%"})})},t.prototype.returColumnswidth=function(){var t=this.hideNumbers?1:0,e=this.hasActionButtons?1:0,a=this.headers.length+1+e+t;return console.log("number_of_columns",a),100/a},t.prototype.actionButtonClicked=function(e,a){var o=this;this.displayData.subscribe(function(t){return 0==a?o.firstActionButtonClicked.emit({index:e,data:t[e]}):1==a?o.secondActionButtonClicked.emit({index:e,data:t[e]}):void o.thirdActionButtonClicked.emit({index:e,data:t[e]})}).unsubscribe()},t.prototype.addButtonClick=function(){this.addButtonClicked.emit()},t.prototype.confirmDelete=function(){return this.multipleSelectClicked.emit(this.service.multipleDeletion)},t.prototype.addRemove=function(t){var l=this;t?this.displayData.subscribe(function(t){try{for(var e=g(t),a=e.next();!a.done;a=e.next()){var o=a.value;try{l.service.multipleDeletion.push(o[l.multipleSelectKey])}catch(s){}}}catch(r){n={error:r}}finally{try{a&&!a.done&&(i=e["return"])&&i.call(e)}finally{if(n)throw n.error}}var n,i}).unsubscribe():this.service.multipleDeletion=[]},t.prototype.addRemoveDeleteItem=function(t,e,a){var o=this;if(a)this.displayData.subscribe(function(t){o.service.multipleDeletion.push(t[e][o.multipleSelectKey])}).unsubscribe();else for(var n=0;n<this.service.multipleDeletion.length;n++)if(t==this.service.multipleDeletion[n]){this.service.multipleDeletion.splice(n,1);break}},t.prototype.getSearchColumns=function(){return this.hasAddButton?this.enableDataExports?"col-md-6 search-container":"col-md-7 search-container":this.enableDataExports?"col-md-7 search-container":"col-md-8 search-container"},t.prototype.disablePrevtButton=function(){return Math.ceil(this.service.dataOffset/this.limit)<=1},t.prototype.disableNextButton=function(){return Math.ceil(this.service.dataOffset/this.limit)==Math.ceil(this.service.totalItems/this.limit)},t.prototype.isLazyloadingEnabled=function(){return this.lazyloadingConfig.hasOwnProperty("apiOffsetKey")&&this.lazyloadingConfig.apiOffsetKey},t.prototype.nextPrevItem=function(a){var o=this;if(this.isLazyloadingEnabled())return this.service.loadFinish=!1,void this.service.getDataLength().then(function(t){o.service.chageDataTable([]),o.service.dataOffset="prev"==a?o.service.dataOffset-o.limit-o.limit:o.service.dataOffset;var e=o.isLazyloadingEnabled()?o.dataUrl+"&"+o.lazyloadingConfig.apiOffsetKey+"="+o.service.dataOffset+"&"+o.lazyloadingConfig.apiSearchKey+"=":o.dataUrl;o.service.loadFlxDataTableData(e)})["catch"](function(t){});"prev"==a?this.paginateDatatableRecord(this.service.dataOffset-this.limit-this.limit):this.service.dataOffset<this.limit?this.paginateDatatableRecord(this.service.dataOffset+(this.limit-1)):this.paginateDatatableRecord(this.service.dataOffset)},t.prototype.filterData=function(r){var l=this;void 0===r&&(r=""),this.isSearching=""!=r,this.changeDisplayData([]),this.service.flxData.subscribe(function(t){var e=[];if(""!=r.trim()){for(var a=l.searchKeys.length<1?l.dataKeys:l.searchKeys,o=0;o<t.length;o++){for(var n=-1,i=0;i<a.length;i++)try{if(-1!==t[o][String(a[i])].toLowerCase().indexOf(r.toLocaleLowerCase())){n=o;break}}catch(s){}-1<n&&e.push(t[n])}l.searchResultFound=e,l.changeDisplayData(e),l.setColumnWidths()}else l.changeDisplayData(l.searchDataTempOffset)}).unsubscribe()},t.prototype.paginateDatatable=function(e){var a=this;if(this.isLazyloadingEnabled())return this.service.loadFinish=!1,void this.service.getDataLength().then(function(){a.service.chageDataTable([]),"all"!=e&&(a.service.dataOffset=parseInt(e));var t=a.isLazyloadingEnabled()?a.dataUrl+"&"+a.lazyloadingConfig.apiOffsetKey+"="+e+"&"+a.lazyloadingConfig.apiSearchKey+"=":a.dataUrl;a.service.loadFlxDataTableData(t,!1)})["catch"](function(t){});this.paginateDatatableRecord(e)},t.prototype.paginateDatatableRecord=function(o){var n=this;if(this.lazyloadingConfig.hasOwnProperty("apiOffsetKey")&&this.lazyloadingConfig.apiOffsetKey)return this.service.loadFinish=!1,void this.service.getDataLength().then(function(t){n.service.chageDataTable([]),n.service.dataOffset=parseInt(o)+n.limit,n.service.loadFlxDataTableData(n.dataUrl+"&"+n.lazyloadingConfig.apiOffsetKey+"="+o+"&"+n.lazyloadingConfig.apiSearchKey+"="),n.setColumnWidths()})["catch"](function(t){});var t=parseInt(o);t<=0?(this.offset=1,this.service.dataOffset=this.limit):"all"!=o?(this.offset=t+1,this.service.dataOffset=t+this.limit):this.offset=1,this.service.flxData.subscribe(function(t){if("all"!==o){for(var e=[],a=o;a<n.limit+parseInt(o);a++)t[a]&&e.push(t[a]);0<e.length&&n.changeDisplayData(e)}else n.changeDisplayData(t),n.searchDataTempOffset=t;n.setColumnWidths()}).unsubscribe()},t.decorators=[{type:a.Component,args:[{selector:"flx-ui-datatable",template:'<div class="col-md-12 flx-ui-datatable-main {{ classes?.maincontainer }}">\n <div id="export_loading" class="col-md-12 text-center" style="display: none;margin-bottom:0.5em;color:#dddddd;font-size:13px;font-weight:bold;">Exporting...</div>\n <div class="col-md-12 flx-ui-datatable-header">\n <div class="container-fluid">\n <div class="row">\n <div class="col-xs-3 col-sm-3 pagination-select col-md-2" style="position:relative;z-index: 1;">\n <select class="form-control rmsh rmrd {{ classes?.paginationselect }}" (change)="paginateDatatable($event?.target?.value)">\n <option *ngFor="let paging of service?.pagination" [value]="paging?.value">{{ paging?.label }}</option>\n </select>\n </div>\n <div class="col-xs-5 col-sm-5 col-md-2 text-center flx-datatable-pagination rmpd" style="position:relative;z-index: 2;">\n <button mat-icon-button [ngClass]="{\'flx-pagination-end\': disablePrevtButton()}" (click)="nextPrevItem(\'prev\')" [disabled]="disablePrevtButton()" class="flx-ui-datatable-pagination-buttons {{ classes?.paginationButton }}"><span class="fa fa-angle-double-left fa-1x"></span> <span class="flx-datatable-tooltip-prev" [ngClass]="{\'flx-pagination-end\': disablePrevtButton()}">Previous</span> </button>\n <span *ngIf="!isSearching;else searching">{{ service?.dataOffset | ceil: limit }} / {{ service?.totalItems | ceil: limit }}</span>\n <ng-template #searching>\n \n </ng-template>\n <button mat-icon-button [ngClass]="{\'flx-pagination-end\': disableNextButton()}" (click)="nextPrevItem(\'next\')" [disabled]="disableNextButton()" class="flx-ui-datatable-pagination-buttons {{ classes?.paginationButton }}"><span class="fa fa-angle-double-right fa-1x"></span> <span class="flx-datatable-tooltip-next" [ngClass]="{\'flx-pagination-end\': disableNextButton()}">Next</span></button>\n </div>\n <div [class]="\'search-bar \'+getSearchColumns()">\n <input type="text" *ngIf="!isLazyloadingEnabled()" [style.background]="searchBar?.background" [style.color]="searchBar?.textColor" [ngStyle]="{border:searchBar?.borderSize +\' solid \'+ searchBar?.borderColor} " (keyup)="filterData($event?.target?.value)" class="form-control rmsh rmrd customclass" [placeholder]="searchPlaceholder">\n <form (ngSubmit)="searchDataInApi(srch?.value,srch)" #srch="ngForm" *ngIf="isLazyloadingEnabled()">\n <div class="input-group">\n <input type="text" required name="searchString" ngModel [style.background]="searchBar?.background" [style.color]="searchBar?.textColor" [ngStyle]="{border:searchBar?.borderSize +\' solid \'+ searchBar?.borderColor} " class="form-control rmsh rmrd {{ classes?.searchbar }}" [placeholder]="searchPlaceholder">\n <span class="input-group-addon">\n <button [disabled]="!srch?.valid" type="submit" class="btn btn-default btn-clear btn-md">\n <i class="fa fa-search"></i>\n </button>\n </span>\n </div>\n </form>\n </div>\n <div class="col-md-1 text-right rmpd" *ngIf="hasAddButton">\n <button (click)="addButtonClick()" class="{{ classes?.addButton }}" [style.background]="addButton?.background" [style.borderColor]="addButton?.background" [style.color]="addButton?.textColor"><span class="fa fa-plus"></span> Add</button>\n </div>\n <div class="col-md-1 text-right rmpd export-cnt" *ngIf="enableDataExports">\n <div class="dropdown">\n <button class="btn btn-default {{ classes?.exportButton }} dropdown-toggle" type="button" data-toggle="dropdown">\n <i class="fa fa-angle-down"></i>\n </button>\n <ul class="dropdown-menu dropdown-menu-export {{ classes?.exportDropdown }}">\n <li class="dropdown-header">{{ dataExportsConfig?.title }}. <input type="checkbox" (change)="checkToExportOption($event?.target?.checked)" style="position: relative;top:0.3em;"> <sup style="font-size:10px;color:#999;"> All</sup></li> \n <li class="divider"></li>\n <li class="dropdown-submenu" *ngFor="let export of dataExportsConfig?.exportsTo" (click)="exportDocumentsAs(export)">\n <a href="javascript:void(0)" class="btn btn-default btn-sm form-control" *ngIf="export==\'print\'"><i class="glyphicon glyphicon-print"></i> Print</a>\n <a href="javascript:void(0)" class="btn btn-default btn-sm form-control" *ngIf="export==\'pdf\'" style="color:#ff0000"><i class="glyphicon glyphicon-file"></i> PDF</a>\n <a href="javascript:void(0)" class="btn btn-default btn-sm form-control" *ngIf="export==\'excel\'" style="color:#009900;"><i class="glyphicon glyphicon-file"></i> Excel</a> \n <a href="javascript:void(0)" class="btn btn-default btn-sm form-control" *ngIf="export==\'word\'" style="color:#335599;"><i class="glyphicon glyphicon-file"></i> Word</a> \n </li>\n <li class="divider"></li>\n <li class="dropdown-header">\n <span *ngIf="!isExportAll">{{ (displayData | async)?.length }}</span>\n <span *ngIf="isExportAll">{{ (service?.flxData | async)?.length }}</span> \n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class="container-fluid">\n <div class="row">\n <div class="col-md-12 rmpd table-responsive flx-tabl-container">\n <table class="table {{ classes?.tableType }} th-table">\n <thead class="{{ classes?.tableHeader }} flx-table-thead">\n <tr>\n \x3c!-- Actions buttons header left before numbers --\x3e\n <th *ngIf="hasActionButtons && (actionButtonsConfig?.position==\'left\' && actionButtonsConfig?.beforeNumbers)">{{ actionHeader }} \n <input type="checkbox" [checked]="service?.multipleDeletion?.length>0" (change)="addRemove($event?.target?.checked)" *ngIf="enableMultipleSelection">\n <button class="btn btn-danger btn-xs flx-multiple-deletion-button" *ngIf="enableMultipleSelection && service?.multipleDeletion?.length>0" (click)="confirmDelete()"><span [class]="multipleSelectButton?.icon"></span> {{ multipleSelectButton?.text }}</button>\n </th>\n\n\n <th *ngIf="!hideNumbers">N<sup><u>o</u></sup></th>\n\n \x3c!-- Actions buttons header left after numbers --\x3e\n <th *ngIf="hasActionButtons && (actionButtonsConfig?.position==\'left\' && !actionButtonsConfig?.beforeNumbers)">{{ actionHeader }} \n <input type="checkbox" [checked]="service?.multipleDeletion?.length>0" (change)="addRemove($event?.target?.checked)" *ngIf="enableMultipleSelection">\n <button class="btn btn-danger btn-xs flx-multiple-deletion-button" *ngIf="enableMultipleSelection && service?.multipleDeletion?.length>0" (click)="confirmDelete()"><span [class]="multipleSelectButton?.icon"></span> {{ multipleSelectButton?.text }}</button>\n </th>\n\n\n <th *ngFor="let header of headers">{{ header }}</th>\n\n \x3c!-- Actions buttons header right --\x3e\n <th *ngIf="hasActionButtons && (actionButtonsConfig?.position==\'right\')">{{ actionHeader }} \n <input type="checkbox" [checked]="service?.multipleDeletion?.length>0" (change)="addRemove($event?.target?.checked)" *ngIf="enableMultipleSelection">\n <button class="btn btn-danger btn-xs flx-multiple-deletion-button" *ngIf="enableMultipleSelection && service?.multipleDeletion?.length>0" (click)="confirmDelete()"><span [class]="multipleSelectButton?.icon"></span> {{ multipleSelectButton?.text }}</button>\n </th>\n </tr>\n </thead>\n </table>\n <perfect-scrollbar class="data-scroll-content {{ classes?.dataScrollContent }}">\n <table class="table {{ classes?.tableType }} flx-table-data"> \n <tbody class="flxdatatablebodyscrollbar">\n <tr *ngIf="!service?.loadFinish"> \n <td colspan="20" class="text-center">\n <img *ngIf="spinnerSrc" [class]="classes?.spinner" [src]="spinnerSrc" style="margin-top:1em;margin-bottom:1em;">\n </td>\n </tr>\n <tr class="flxuidatatablerow" id="flxdatatable_singlerow" *ngFor="let data of displayData | async;let i=index">\n \n \x3c!-- Buttons Left Before Numbers --\x3e\n <td class="table-buttons" *ngIf="hasActionButtons && (actionButtonsConfig?.position==\'left\' && actionButtonsConfig?.beforeNumbers)" scope="row">\n <span *ngFor="let aButton of actionButtons;let buttonIndex=index">\n <button type="button" (click)="actionButtonClicked(i,buttonIndex)" class="btn {{ aButton?.class }}">\n <div class="toltip" class="flx-tooltip" [ngClass]="{\'flx-tooltip-left\':aButton?.tooltipPosition==\'left\',\'flx-tooltip-bottom\':aButton?.tooltipPosition==\'bottom\',\'flx-tooltip-right\':aButton?.tooltipPosition==\'right\'}" *ngIf="aButton?.tooltip">{{ aButton?.tooltip }}</div>\n <span class="action-button-icon-left" [class]="aButton?.icon" *ngIf="!aButton?.iconPosition || aButton?.iconPosition!=\'right\'"></span>\n <span class="button-text"> {{ aButton?.text }} </span>\n <span [class]="aButton?.icon" *ngIf="aButton?.iconPosition==\'right\'"></span>\n </button>\n </span> \n <input type="checkbox" checked (change)="addRemoveDeleteItem(data[multipleSelectKey],i,$event?.target?.checked)" *ngIf="enableMultipleSelection && service?.multipleDeletion?.length>0">\n </td>\n \n \x3c!-- Numbers --\x3e\n <td class="{{ classes?.tableData }}" *ngIf="!hideNumbers" style="color: #999;">{{ offset+i }}</td>\n \n \x3c!-- Buttons Left After Numbers --\x3e\n <td class="table-buttons" *ngIf="hasActionButtons && (actionButtonsConfig?.position==\'left\' && !actionButtonsConfig?.beforeNumbers)" scope="row">\n <span *ngFor="let aButton of actionButtons;let buttonIndex=index">\n <button type="button" (click)="actionButtonClicked(i,buttonIndex)" class="btn {{ aButton?.class }}">\n <div class="toltip" class="flx-tooltip" [ngClass]="{\'flx-tooltip-left\':aButton?.tooltipPosition==\'left\',\'flx-tooltip-bottom\':aButton?.tooltipPosition==\'bottom\',\'flx-tooltip-right\':aButton?.tooltipPosition==\'right\'}" *ngIf="aButton?.tooltip">{{ aButton?.tooltip }}</div>\n <span class="action-button-icon-left" [class]="aButton?.icon" *ngIf="!aButton?.iconPosition || aButton?.iconPosition!=\'right\'"></span>\n <span class="button-text"> {{ aButton?.text }} </span>\n <span [class]="aButton?.icon" *ngIf="aButton?.iconPosition==\'right\'"></span>\n </button>\n </span> \n <input type="checkbox" checked (change)="addRemoveDeleteItem(data[multipleSelectKey],i,$event?.target?.checked)" *ngIf="enableMultipleSelection && service?.multipleDeletion?.length>0">\n </td>\n \n \x3c!-- Main --\x3e\n <td class="{{ classes?.tableData }}" *ngFor="let dataKey of dataKeys;let x=index">\n <img *ngIf="hasImageEmbeded() && x==embedPictures?.index; else nopicture" [class]="\'img-fall-back \' +embedPictures?.class" [src]="embedPictures?.rootFolder+data[dataKey]" [flx-ui-datatable-img-fallback]="embedPictures?.fallbackUrl" >\n <ng-template #nopicture>\n <section *ngIf="textSubstring?.atIndexes && (textSubstring?.atIndexes | haslimittext:x);else nolimittext">\n {{ textSubstring | limittext: data[dataKey] }}\n </section>\n <ng-template #nolimittext>\n <span>{{ data[dataKey] }}</span>\n </ng-template>\n </ng-template> \n </td>\n \x3c!-- Buttons --\x3e\n <td class="table-buttons" *ngIf="hasActionButtons && actionButtonsConfig?.position!=\'left\'">\n <span *ngFor="let aButton of actionButtons;let buttonIndex=index">\n <button type="button" (click)="actionButtonClicked(i,buttonIndex)" class="btn {{ aButton?.class }}">\n <div class="toltip" class="flx-tooltip" [ngClass]="{\'flx-tooltip-left\':aButton?.tooltipPosition==\'left\',\'flx-tooltip-bottom\':aButton?.tooltipPosition==\'bottom\',\'flx-tooltip-right\':aButton?.tooltipPosition==\'right\'}" *ngIf="aButton?.tooltip">{{ aButton?.tooltip }}</div>\n <span class="action-button-icon-left" [class]="aButton?.icon" *ngIf="!aButton?.iconPosition || aButton?.iconPosition!=\'right\'"></span>\n <span class="button-text"> {{ aButton?.text }} </span>\n <span [class]="aButton?.icon" *ngIf="aButton?.iconPosition==\'right\'"></span>\n </button>\n </span> \n <input type="checkbox" checked (change)="addRemoveDeleteItem(data[multipleSelectKey],i,$event?.target?.checked)" *ngIf="enableMultipleSelection && service?.multipleDeletion?.length>0">\n </td>\n </tr>\n <tr *ngIf="tData?.length<1">\n <td colspan="10" class="text-center" *ngIf="service?.loadFinish">\n <span style="color:#ff0000;font-size:13px;">No data found</span> <br>\n <button type="button" style="margin-top:1em;" (click)="reload()" class="btn btn-default {{ classes?.reloadbutton }}" color="primary"><span class="fa fa-refresh"></span> Reload</button>\n </td>\n </tr>\n </tbody>\n </table>\n </perfect-scrollbar>\n <div class="row">\n <div class="col-md-12 rmpd flx-total-data" *ngIf="showBottomInfo">\n <div class="row" *ngIf="!isSearching;else bottomInfoSearching">\n <div class="col-md-4 text-left rmpd">Total pagination: <span> {{ service?.totalItems | ceil: limit }}</span></div>\n <div class="col-md-4 text-center rmpd"># of items per pagination: <span>{{ limit }}</span></div>\n <div class="col-md-4 text-right rmpd">Total items: <span>{{ (service?.flxData | async)?.length }}</span></div>\n </div>\n <ng-template #bottomInfoSearching>\n <div class="row">\n <div class="col-md-12 text-right rmpd">Total search result: <span>{{ searchResultFound?.length }}</span></div>\n </div>\n </ng-template>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>',styles:['.flx-ui-datatable-main{background-color:#fff;padding-top:1em;padding-bottom:1em}.flx-ui-datatable-main .btn-danger{background-color:#f50057;border:1px solid #f50057;box-shadow:0 3px 5px 1px #ddd;-moz-box-shadow:0 3px 5px 1px #ddd;-webkit-box-shadow:0 3px 5px 1px #ddd;-o-box-shadow:0 3px 5px 1px #ddd;-ms-box-shadow:0 3px 5px 1px #ddd;border-radius:3px;margin-left:.3em}.flx-ui-datatable-main #flxdatatablebodyscrollbar,.flx-ui-datatable-main .table-responsive,.flx-ui-datatable-main .table-responsive table{width:100%}.flx-ui-datatable-main img.img-fall-back{width:30px;height:30px}.flx-ui-datatable-main .pagination-select input[type=text],.flx-ui-datatable-main .pagination-select select,.flx-ui-datatable-main .search-bar input[type=text],.flx-ui-datatable-main .search-bar select{border-top:none!important;border-left:none!important;border-right:none!important;border-bottom:2px solid #ddd!important;border-radius:0!important;box-shadow:0 0 0 0 transparent!important;-moz-box-shadow:0 0 0 0 transparent!important;-webkit-box-shadow:0 0 0 0 transparent!important;-o-box-shadow:0 0 0 0 transparent!important;-ms-box-shadow:0 0 0 0 transparent!important}.flx-ui-datatable-main .pagination-select input[type=text]:focus,.flx-ui-datatable-main .pagination-select select:focus,.flx-ui-datatable-main .search-bar input[type=text]:focus,.flx-ui-datatable-main .search-bar select:focus{border-bottom-color:#359!important;transition:.5s;-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flx-ui-datatable-main .pagination-select select,.flx-ui-datatable-main .search-bar select{-webkit-appearance:none;appearance:none;-moz-appearance:none}.flx-ui-datatable-main .dropdown-toggle::after{display:none}.flx-ui-datatable-main .dropdown-menu-export{margin-left:-130px;padding-left:1em;padding-right:1em;width:100px!important;margin-top:1em;border:1px solid #ddd!important}.flx-ui-datatable-main .dropdown-menu-export::before{content:"";width:auto;height:auto;position:absolute;top:-20px;right:3px;border:10px solid;border-color:transparent transparent #ddd}.flx-ui-datatable-main .flx-datatable-pagination{padding-top:.5em}.flx-ui-datatable-main .flx-datatable-pagination button{width:35px!important;height:35px!important;border-radius:50em!important;border:none!important;box-shadow:0 3px 10px 0 #b3c4e6;-moz-box-shadow:0 3px 10px 0 #b3c4e6;-webkit-box-shadow:0 3px 10px 0 #b3c4e6;-o-box-shadow:0 3px 10px 0 #b3c4e6;-ms-box-shadow:0 3px 10px 0 #b3c4e6;background-color:#359;color:#fff;font-size:23px;font-weight:700;position:absolute;top:0}.flx-ui-datatable-main .flx-datatable-pagination button:first-child{left:0}.flx-ui-datatable-main .flx-datatable-pagination button:first-child .flx-datatable-tooltip-prev{position:absolute;left:0;font-size:13px;font-weight:400;color:#fff;background-color:#359;padding-left:.3em;padding-right:.3em;border-radius:3px;margin-left:-57px;margin-top:.3em;box-shadow:0 3px 10px 0 #b3c4e6!important;-moz-box-shadow:0 3px 10px 0 #b3c4e6!important;-webkit-box-shadow:0 3px 10px 0 #b3c4e6!important;-o-box-shadow:0 3px 10px 0 #b3c4e6!important;-ms-box-shadow:0 3px 10px 0 #b3c4e6!important;visibility:hidden}.flx-ui-datatable-main .flx-datatable-pagination button:hover>span.flx-datatable-tooltip-next,.flx-ui-datatable-main .flx-datatable-pagination button:hover>span.flx-datatable-tooltip-prev{visibility:visible}.flx-ui-datatable-main .flx-datatable-pagination .flx-pagination-end{background-color:#f50057!important;box-shadow:0 3px 10px 0 #ffc2d8!important;-moz-box-shadow:0 3px 10px 0 #ffc2d8!important;-webkit-box-shadow:0 3px 10px 0 #ffc2d8!important;-o-box-shadow:0 3px 10px 0 #ffc2d8!important;-ms-box-shadow:0 3px 10px 0 #ffc2d8!important;cursor:not-allowed}.flx-ui-datatable-main .flx-datatable-pagination .flx-pagination-end:hover>span.flx-datatable-tooltip-next,.flx-ui-datatable-main .flx-datatable-pagination .flx-pagination-end:hover>span.flx-datatable-tooltip-prev{visibility:hidden}.flx-ui-datatable-main .flx-datatable-pagination button:last-child{right:0}.flx-ui-datatable-main .flx-datatable-pagination button:last-child .flx-datatable-tooltip-next{position:absolute;left:0;font-size:13px;font-weight:400;color:#fff;background-color:#359;padding-left:.3em;padding-right:.3em;border-radius:3px;margin-left:35px;margin-top:.5em;box-shadow:0 3px 10px 0 #b3c4e6!important;-moz-box-shadow:0 3px 10px 0 #b3c4e6!important;-webkit-box-shadow:0 3px 10px 0 #b3c4e6!important;-o-box-shadow:0 3px 10px 0 #b3c4e6!important;-ms-box-shadow:0 3px 10px 0 #b3c4e6!important;visibility:hidden}.flx-ui-datatable-main .export-cnt button{border-radius:50em!important}.flx-ui-datatable-main .flx-tabl-container table.th-table{margin-top:.5em}.flx-ui-datatable-main table tbody tr{padding-top:0!important}.flx-ui-datatable-main table tbody tr td{padding-top:.5em;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.flx-ui-datatable-main table tbody tr td button{margin-right:.3em;margin-left:0}.flx-ui-datatable-main table tbody tr td button div.flx-tooltip{position:absolute;background-color:rgba(32,27,27,.808);text-align:center;font-size:13px;color:#fff;border-radius:3px;box-shadow:0 3px 20px 0 #4b4949;-moz-box-shadow:0 3px 20px 0 #4b4949;-webkit-box-shadow:0 3px 20px 0 #4b4949;-o-box-shadow:0 3px 20px 0 #4b4949;-ms-box-shadow:0 3px 20px 0 #4b4949;margin-left:-2.5em;margin-top:-2.8em;visibility:hidden;width:80px;padding:.3em .5em}.flx-ui-datatable-main table tbody tr td button .flx-tooltip-left{margin-left:-95px!important;margin-top:-.3em!important}.flx-ui-datatable-main table tbody tr td button .flx-tooltip-bottom{margin-top:2.3em!important}.flx-ui-datatable-main table tbody tr td button .flx-tooltip-right{margin-left:28px!important;margin-top:-.3em!important}.flx-ui-datatable-main table tbody tr td button:hover>div.flx-tooltip{transition:.3s;visibility:visible}.flx-ui-datatable-main table tbody tr td.table-buttons{padding-top:.2em;padding-bottom:.2em}.flx-ui-datatable-main table tbody tr:nth-of-type(even){background-color:#f8f9fa}.flx-ui-datatable-main table tbody tr:nth-of-type(odd){background-color:#fff}.flx-ui-datatable-main .btn-danger:hover{background-color:#ff146b;border:1px solid #ff146b;box-shadow:0 3px 10px 1px #ff5fb6;-moz-box-shadow:0 3px 10px 1px #ff5fb6;-webkit-box-shadow:0 3px 10px 1px #ff5fb6;-o-box-shadow:0 3px 10px 1px #ff5fb6;-ms-box-shadow:0 3px 10px 1px #ff5fb6;transition:.5s;-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flx-ui-datatable-main .btn-danger:focus{background-color:#f50057;border:1px solid #f50057}.flx-ui-datatable-main .btn-white{background-color:#fff}.flx-ui-datatable-main .btn-dark{background-color:#222!important}.flx-ui-datatable-main .btn-primary{background-color:#359;color:#fff;border:1px solid #359;box-shadow:0 3px 5px 1px #ddd;-moz-box-shadow:0 3px 5px 1px #ddd;-webkit-box-shadow:0 3px 5px 1px #ddd;-o-box-shadow:0 3px 5px 1px #ddd;-ms-box-shadow:0 3px 5px 1px #ddd;border-radius:3px}.flx-ui-datatable-main .btn-primary:hover{background-color:#4769ad;border:1px solid #4769ad;box-shadow:0 3px 10px 0 #b3c4e6;-moz-box-shadow:0 3px 10px 0 #b3c4e6;-webkit-box-shadow:0 3px 10px 0 #b3c4e6;-o-box-shadow:0 3px 10px 0 #b3c4e6;-ms-box-shadow:0 3px 10px 0 #b3c4e6;transition:.5s;-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flx-ui-datatable-main .btn-primary:focus{background-color:#359;border:1px solid #359}.flx-ui-datatable-main .btn-large{padding-top:1em!important;padding-bottom:1em!important}.flx-ui-datatable-main .btn-medium{padding-top:.7em!important;padding-bottom:.7em!important}.flx-ui-datatable-main .btn-success{box-shadow:0 3px 5px 1px #ddd;-moz-box-shadow:0 3px 5px 1px #ddd;-webkit-box-shadow:0 3px 5px 1px #ddd;-o-box-shadow:0 3px 5px 1px #ddd;-ms-box-shadow:0 3px 5px 1px #ddd;border-radius:3px;background-color:#5cb85c;border:1px solid #5cb85c}.flx-ui-datatable-main .btn-success:hover{background-color:#70cc70;border:1px solid #70cc70;box-shadow:0 3px 10px 1px #9df99d;-moz-box-shadow:0 3px 10px 1px #9df99d;-webkit-box-shadow:0 3px 10px 1px #9df99d;-o-box-shadow:0 3px 10px 1px #9df99d;-ms-box-shadow:0 3px 10px 1px #9df99d;transition:.5s;-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flx-ui-datatable-main .btn-success:focus{background-color:#5cb85c;border:1px solid #5cb85c}.flx-ui-datatable-main .btn-default{background-color:#fff;box-shadow:0 3px 5px 1px #eee;-moz-box-shadow:0 3px 5px 1px #eee;-webkit-box-shadow:0 3px 5px 1px #eee;-o-box-shadow:0 3px 5px 1px #eee;-ms-box-shadow:0 3px 5px 1px #eee;border-radius:3px;border:1px solid #ddd}.flx-ui-datatable-main .btn-default:hover{background-color:#fff;border:1px solid #e7e7e7;box-shadow:0 3px 10px 1px #e2e2e2;-moz-box-shadow:0 3px 10px 1px #e2e2e2;-webkit-box-shadow:0 3px 10px 1px #e2e2e2;-o-box-shadow:0 3px 10px 1px #e2e2e2;-ms-box-shadow:0 3px 10px 1px #e2e2e2;transition:.5s;-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flx-ui-datatable-main .btn-default:focus{background-color:#fff;border:1px solid #ddd}.flx-ui-datatable-main .btn-secondary{box-shadow:0 3px 5px 1px #ddd;-moz-box-shadow:0 3px 5px 1px #ddd;-webkit-box-shadow:0 3px 5px 1px #ddd;-o-box-shadow:0 3px 5px 1px #ddd;-ms-box-shadow:0 3px 5px 1px #ddd;border-radius:3px;background-color:#1e88e5;color:#fff}.flx-ui-datatable-main .btn-secondary:hover{color:#fff;background-color:#2892ef;border:1px solid #2892ef;box-shadow:0 3px 10px 1px #55bfff;-moz-box-shadow:0 3px 10px 1px #55bfff;-webkit-box-shadow:0 3px 10px 1px #55bfff;-o-box-shadow:0 3px 10px 1px #55bfff;-ms-box-shadow:0 3px 10px 1px #55bfff;transition:.5s;-moz-transition:.5s;-webkit-transition:.5s;-o-transition:.5s;-ms-transition:.5s}.flx-ui-datatable-main .btn-secondary:focus{color:#fff}.flx-ui-datatable-main .pagination-button{background-color:#359;color:#fff}.flx-ui-datatable-main .table-font{font-family:Khula,sans-serif!important}.flx-ui-datatable-main .table-header-icon{position:absolute;right:.2em;width:80px;height:80px;font-size:50px;margin-top:-30px;border-radius:5px!important}.flx-ui-datatable-main .table-title{background-color:#359;color:#fff;border-radius:2px;padding:1em;font-size:15px;font-weight:700;margin-bottom:1.5em;font-family:Roboto,sans-serif;box-shadow:0 1px 5px 1px #ddd;-moz-box-shadow:0 1px 5px 1px #ddd;-webkit-box-shadow:0 1px 5px 1px #ddd;-o-box-shadow:0 1px 5px 1px #ddd;-ms-box-shadow:0 1px 5px 1px #ddd}.flx-ui-datatable-main .danger{background-color:#f50057;color:#fff}.flx-ui-datatable-main .primary{background-color:#359;color:#fff}.flx-ui-datatable-main .success{background-color:#5cb85c;color:#fff}.flx-ui-datatable-main .default{background-color:#fff;color:#000}.flx-ui-datatable-main .secondary{background-color:#1e88e5;color:#fff}.flx-ui-datatable-main .btn-clear{border:none!important;box-shadow:none!important}.flx-ui-datatable-main .input-group,.flx-ui-datatable-main .input-group input{background-color:transparent!important}.flx-ui-datatable-main .input-group-addon{border:none!important;padding:0!important;box-shadow:none!important;background-color:transparent!important}.flx-ui-datatable-main .input-group-addon button{border:1px solid transparent!important;box-shadow:none!important;border-top:none!important;border-bottom:none!important;background-color:transparent!important;border-radius:50em!important;color:#359;width:30px;height:30px}.flx-ui-datatable-main .input-group-addon button i{font-size:18px}.flx-ui-datatable-main .input-group-addon button:disabled{background-color:transparent!important}.flx-ui-datatable-main .input-group-addon button:disabled i{color:#f50057}.flx-ui-datatable-main .data-scroll-content{max-width:100%;max-height:400px;margin-top:-1em}.flx-ui-datatable-main .data-scroll-content table tbody tr:first-child td,.flx-ui-datatable-main .flx-table-thead tr th{border-top:none!important}']}]}],t.ctorParameters=function(){return[{type:e.FormBuilder},{type:l}]},t.propDecorators={classes:[{type:a.Input}],headers:[{type:a.Input}],lazyloadingConfig:[{type:a.Input}],embedPictures:[{type:a.Input}],dataKeys:[{type:a.Input}],enableDataExports:[{type:a.Input}],dataExportsConfig:[{type:a.Input}],showBottomInfo:[{type:a.Input}],searchKeys:[{type:a.Input}],dataSrcKey:[{type:a.Input}],hasActionButtons:[{type:a.Input}],hideNumbers:[{type:a.Input}],enableMultipleSelection:[{type:a.Input}],multipleSelectKey:[{type:a.Input}],hasAddButton:[{type:a.Input}],dataUrl:[{type:a.Input}],actionButtonStart:[{type:a.Input}],multipleSelectButton:[{type:a.Input}],searchPlaceholder:[{type:a.Input}],actionHeader:[{type:a.Input}],limit:[{type:a.Input}],spinnerSrc:[{type:a.Input}],actionButtons:[{type:a.Input}],paginationButtons:[{type:a.Input}],tableHeader:[{type:a.Input}],searchButton:[{type:a.Input}],addButton:[{type:a.Input}],searchBar:[{type:a.Input}],actionButtonsConfig:[{type:a.Input}],firstActionButtonClicked:[{type:a.Output}],secondActionButtonClicked:[{type:a.Output}],thirdActionButtonClicked:[{type:a.Output}],multipleSelectClicked:[{type:a.Output}],addButtonClicked:[{type:a.Output}],textSubstring:[{type:a.Input}],conditionManipulator:[{type:a.Input}]},t}(),c=function(){function t(t){this.isApplied=!1,this.EVENT_TYPE="error",this.el=t.nativeElement,this.el.addEventListener(this.EVENT_TYPE,this.onError.bind(this))}return t.prototype.onError=function(){this.removeEvents(),this.isApplied||(this.isApplied=!0,this.el.setAttribute("src",this.imgSrc))},t.prototype.removeEvents=function(){this.el.removeEventListener(this.EVENT_TYPE,this.onError)},t.prototype.ngOnDestroy=function(){this.removeEvents()},t.decorators=[{type:a.Directive,args:[{selector:"[flx-ui-datatable-img-fallback]"}]}],t.ctorParameters=function(){return[{type:a.ElementRef}]},t.propDecorators={imgSrc:[{type:a.Input,args:["flx-ui-datatable-img-fallback"]}]},t}(),u=function(){function t(){}return t.prototype.transform=function(t,e){return Math.ceil(t/e)},t.decorators=[{type:a.Pipe,args:[{name:"ceil"}]}],t.ctorParameters=function(){return[]},t}(),f=function(){function t(t){this.service=t}return t.prototype.transform=function(t,e){var a,o,n;try{for(var i=g(t),s=i.next();!s.done;s=i.next()){if(s.value==e){a=!0;break}}}catch(r){o={error:r}}finally{try{s&&!s.done&&(n=i["return"])&&n.call(i)}finally{if(o)throw o.error}}return a},t.decorators=[{type:a.Pipe,args:[{name:"haslimittext"}]}],t.ctorParameters=function(){return[{type:l}]},t}(),b=function(){function t(t){this.service=t}return t.prototype.transform=function(t,e){var a=t.hasOwnProperty("from")?t.from:0,o=t.hasOwnProperty("to")?t.to:e.length,n=t.hasOwnProperty("appendDots")?t.appendDots:"";return e.length>o?e.substring(a,o)+n:e},t.decorators=[{type:a.Pipe,args:[{name:"limittext"}]}],t.ctorParameters=function(){return[{type:l}]},t}(),x=function(){function t(t){this.service=t}return t.prototype.transform=function(t){for(var e=!1,a=-1,o=0;o<this.service.processedData.length;o++)o==t&&(e=!0,a=o);return a<0&&this.service.processedData.push(t),e},t.decorators=[{type:a.Pipe,args:[{name:"isprocessed"}]}],t.ctorParameters=function(){return[{type:l}]},t}(),h={suppressScrollX:!0},m=function(){function t(){}return t.decorators=[{type:a.NgModule,args:[{imports:[s.CommonModule,e.ReactiveFormsModule,e.FormsModule,n.HttpModule,r.PerfectScrollbarModule],declarations:[p,u,c,f,b,x],exports:[p,u],providers:[l,{provide:r.PERFECT_SCROLLBAR_CONFIG,useValue:h}]}]}],t}();t.FlxUiDataTable=d,t.FlxUiDatatableModule=m,t.ɵb=p,t.ɵc=c,t.ɵa=l,t.ɵd=u,t.ɵe=f,t.ɵf=b,t.ɵg=x,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=flx-ui-datatable.umd.min.js.map