UNPKG

ngx-mariem-datatable

Version:

Advanced table extension with sorting, filtering, paging and more... for Angular apps

610 lines 59.3 kB
/** * @fileoverview added by tsickle * Generated from: lib/ngx-mariem-datatable.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Pipe, Output, EventEmitter, Input, } from "@angular/core"; import { Animations } from "./animations"; import { DatePipe } from "@angular/common"; export class NgxMariemDatatableComponent { constructor() { // when row clicked this.onRowClicked = new EventEmitter(); //when action clicked this.onActionClicked = new EventEmitter(); //when link clicked this.onlinkClicked = new EventEmitter(); //when Toggle All clicked this.onToggleAllClicked = new EventEmitter(); //when Toggle clicked this.onToggleClicked = new EventEmitter(); //toDisplay Small Cells this.smallCells = false; //to Hide actions in parent child row this.hideParentAction = false; //loading List this.loadingList = false; this.nbRows = 4; this.hideTheader = false; this.textalign = "left"; //Regroupping this.regroupbylabel = ""; this.regroupbylist = [""]; this.regroupby = false; this.display = [true]; this._datatable = []; this.datatableChange = new EventEmitter(); //************server Side pagination/////////////////// this.numberOfRecords = 0; //required when serverSidePagination true //required when serverSidePagination true this.serverSidePagination = false; this.startDisplay = new EventEmitter(); //************server Side pagination/////////////////////// //************server Side search/////////////////// this.serverSidesearch = false; this.search = new EventEmitter(); this.displayedColomnList = []; this._Actions = []; //Empty list message this.nothingToShowMessage = "Pas de résultats"; //pagination message this.paginationmessag = ""; //if false first and last buttons will be hidden this.showBoundaryLinks = true; this._itemsPerPage = 10; //limit number for page links in pager this.maxSize = 5; //if true datatable items should contain id & selected columns this.checkboxes = false; this.checkboxesMultiselect = true; //set if show pagination or not this.pagination = true; // @Input() filterInside: boolean = false; //******For PDF/Exel && CSV files /// this.nameOnExtract = "Liste"; // @Input() showExtracttns: boolean = true; //******For PDF/Exel && CSV files /// this.Advancedfilter = true; this.visibility = true; this.datatableexist = false; this.searchexist = false; this._searchvalue = ""; this.startItem = 0; this.endItem = 10; this.dataChild = []; this.dataChildRow = []; this.filtreopen = true; this.filters = []; this.associations = []; this.checkAll = false; } //data /** * @param {?} value * @return {?} */ set datatable(value) { if (value && this._datatable != value) { if (this.regroupby && this.regroupbylabel) { this.regroupbylist = []; value.map((/** * @param {?} el * @return {?} */ (el) => { if (this.regroupbylist.indexOf(el[this.regroupbylabel]) < 0) this.regroupbylist.push(el[this.regroupbylabel]); this.display.push(true); })); } // this._datatable = cloneDeep(value); this._datatable = value; } } //************server Side search/////////////////////// //columns to display from datatable /** * @param {?} value * @return {?} */ set displayedColomn(value) { /** @type {?} */ let searchexist = value.find((/** * @param {?} el * @return {?} */ (el) => { return el.search == true; })); this.searchexist = searchexist ? true : false; this.displayedColomnList = value.map((/** * @param {?} el * @return {?} */ (el) => { return el; })); } //list of actions /** * @param {?} value * @return {?} */ set Actions(value) { this._Actions = value; this._Actions = value.map((/** * @param {?} el * @return {?} */ (el) => { return el; })); } /** * @return {?} */ get Actions() { return this._Actions; } //maximum number of items per page. If value less than 1 will display all items on one page /** * @param {?} value * @return {?} */ set itemsPerPage(value) { this._itemsPerPage = value; // this.endItem = cloneDeep(value); this.endItem = value; this.startItem = 0; } /** * @param {?} value * @return {?} */ set searchvalue(value) { // this._searchvalue = cloneDeep(value); this._searchvalue = value; this.refreshPagination(); } /** * @return {?} */ ngOnInit() { } /** * @return {?} */ checkAllClicked() { // this._datatable = cloneDeep( // this._datatable.map((el) => { // el.selected = this.checkAll; // return el; // }) // ); this._datatable = this._datatable.map((/** * @param {?} el * @return {?} */ (el) => { el.selected = this.checkAll; return el; })); this.datatableChanged(); } /** * @param {?} row * @return {?} */ ckeckBoxClicked(row) { if (!this.checkboxesMultiselect) { this._datatable = this._datatable.map((/** * @param {?} el * @return {?} */ (el) => { if (el.selected && el.id != row.id) { el.selected = false; } return el; })); } /** @type {?} */ let allschecked = this._datatable.find((/** * @param {?} el * @return {?} */ (el) => !el.selected)); this.checkAll = allschecked ? false : true; this.datatableChanged(); } /** * @return {?} */ datatableChanged() { this.datatableChange.emit(this._datatable); } /** * @param {?} item * @return {?} */ rowClicked(item) { this.onRowClicked.emit(item); } /** * @param {?} event * @return {?} */ actionClicked(event) { this.onActionClicked.emit(event); } /** * @param {?} data * @return {?} */ sortAsc(data) { this._datatable.sort((/** * @param {?} a * @param {?} b * @return {?} */ (a, b) => { if (typeof a[data] == "number") return a[data] - b[data]; /** @type {?} */ let item1 = a[data] ? a[data].toUpperCase() : ""; /** @type {?} */ let item2 = b[data] ? b[data].toUpperCase() : ""; if (item1 < item2) { return -1; } if (item1 > item2) { return 1; } return 0; })); } /** * @param {?} data * @return {?} */ sortDesc(data) { this._datatable.sort((/** * @param {?} b * @param {?} a * @return {?} */ (b, a) => { if (typeof a[data] == "number") return a[data] - b[data]; /** @type {?} */ let item1 = a[data] ? a[data].toUpperCase() : ""; /** @type {?} */ let item2 = b[data] ? b[data].toUpperCase() : ""; if (item1 < item2) { return -1; } if (item1 > item2) { return 1; } return 0; })); } /** * @param {?} title * @return {?} */ sortBy(title) { /** @type {?} */ let data = title.data; title.sorted = title.sorted ? !title.sorted : true; this.sortByItem = title; if (title.sorted) { this.sortAsc(data); } else { this.sortDesc(data); } } /** * @param {?} event * @return {?} */ pageChanged(event) { this.startItem = (event.page - 1) * event.itemsPerPage; this.endItem = event.page * event.itemsPerPage; if (this.serverSidePagination) { this.startDisplay.emit(this.startItem); } } /** * @return {?} */ refreshPagination() { this.startItem = 0; this.endItem = this._itemsPerPage; if (this.serverSidePagination) { this.startDisplay.emit(this.startItem); } } /** * @param {?} event * @return {?} */ searchServerSide(event) { this.searchvalue = event.target.value; this.startItem = 0; this.endItem = 10; this.search.emit(this.searchvalue); } /** * @param {?} event * @return {?} */ filtersChange(event) { // this.filters = cloneDeep(event.filters); // this.associations = cloneDeep(event.associations); this.filters = event.filters; this.associations = event.associations; if (this.filters.length == 0) { this.filtreopen = !this.filtreopen; } } /** * @return {?} */ get searchvalue() { return this._searchvalue; } } NgxMariemDatatableComponent.decorators = [ { type: Component, args: [{ selector: "ngx-mariem-datatable", template: "<div\r\n id=\"ngx-datatable\"\r\n class=\"position-relative\"\r\n [style.text-align]=\"textalign\"\r\n>\r\n <div class=\"table-container table-responsive-sm\">\r\n <table class=\"table\" [@animateStagger]=\"{ value: '50' }\">\r\n <thead>\r\n <tr\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n *ngIf=\"!hideTheader\"\r\n >\r\n <th class=\"w-2rem\" *ngIf=\"checkboxes\">\r\n <span *ngIf=\"checkboxesMultiselect\" class=\"checkboxTemplate\">\r\n <input\r\n [(ngModel)]=\"checkAll\"\r\n (change)=\"checkAllClicked()\"\r\n [id]=\"'checkAll'\"\r\n class=\"w-0 field-checkbox\"\r\n type=\"checkbox\"\r\n [name]=\"'checkAll'\"\r\n />\r\n <label [for]=\"'checkAll'\"></label>\r\n </span>\r\n </th>\r\n <th\r\n class=\"p3\"\r\n [ngClass]=\"{\r\n 'bg-blue-light thsorted': title == sortByItem\r\n }\"\r\n *ngFor=\"let title of displayedColomnList\"\r\n >\r\n <span\r\n (click)=\"title.sort && !loadingList ? sortBy(title) : ''\"\r\n class=\"title-header p3 cursor-pointer\"\r\n [ngClass]=\"{\r\n sorting: title.sort && !loadingList && title != sortByItem,\r\n sorting_asc:\r\n title == sortByItem && title.sorted && !loadingList,\r\n sorting_desc:\r\n title == sortByItem && !title.sorted && !loadingList\r\n }\"\r\n >\r\n {{ title.value }}\r\n <!-- <i class=\"sortIcon material-icons\">\r\n {{\r\n title == sortByItem\r\n ? title.sorted && !loadingList\r\n ? \"keyboard_arrow_up\"\r\n : \"keyboard_arrow_down\"\r\n : \"\"\r\n }}\r\n </i> -->\r\n </span>\r\n </th>\r\n <th class=\"p3 action\" *ngFor=\"let action of Actions\">\r\n <span class=\"color-primary block p3 cursor-pointer\">\r\n {{ action.value }}\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngIf=\"loadingList\">\r\n <tr\r\n loading-rows\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n [displayedColomnList]=\"displayedColomnList\"\r\n [nbRows]=\"nbRows\"\r\n [Actions]=\"Actions\"\r\n [checkboxes]=\"checkboxes\"\r\n ></tr>\r\n <tr\r\n loading-rows\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n [displayedColomnList]=\"displayedColomnList\"\r\n [Actions]=\"Actions\"\r\n [checkboxes]=\"checkboxes\"\r\n ></tr>\r\n <tr\r\n loading-rows\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n [displayedColomnList]=\"displayedColomnList\"\r\n [Actions]=\"Actions\"\r\n [checkboxes]=\"checkboxes\"\r\n ></tr>\r\n <tr\r\n loading-rows\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n [displayedColomnList]=\"displayedColomnList\"\r\n [Actions]=\"Actions\"\r\n [checkboxes]=\"checkboxes\"\r\n ></tr>\r\n </ng-container>\r\n <ng-container *ngIf=\"!loadingList\">\r\n <ng-container\r\n *ngFor=\"let groupeby of regroupbylist; let gbIndex = index\"\r\n >\r\n <ng-container *ngIf=\"display[gbIndex]\">\r\n <tr\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n class=\"tr-small\"\r\n *ngIf=\"regroupby\"\r\n >\r\n <td\r\n (click)=\"display[gbIndex] = !display[gbIndex]\"\r\n [ngClass]=\"\r\n display[gbIndex]\r\n ? 'collapsed-group-opened'\r\n : 'collapsed-group-closed'\r\n \"\r\n class=\"collapsed-group\"\r\n [attr.colspan]=\"\r\n displayedColomnList.length +\r\n Actions.length +\r\n (checkboxes ? 1 : 0)\r\n \"\r\n >\r\n {{ groupeby }}\r\n </td>\r\n </tr>\r\n <ng-container\r\n *ngFor=\"\r\n let row of _datatable\r\n | grouppigBy\r\n : {\r\n groupeby: groupeby,\r\n regroupbylabel: regroupbylabel,\r\n regroupby: regroupby\r\n }\r\n | filterData\r\n : {\r\n searchvalue: searchvalue,\r\n displayedColomnList: displayedColomnList,\r\n serverSidesearch: serverSidesearch,\r\n filters: filters,\r\n associations: associations\r\n }\r\n | paginate\r\n : {\r\n startItem: startItem,\r\n endItem: pagination && !regroupby ? endItem : 'all',\r\n serverSidePagination: serverSidePagination\r\n };\r\n let rowindex = index\r\n \"\r\n >\r\n <tr\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n datatable-row\r\n [row]=\"row\"\r\n [displayedColomnList]=\"displayedColomnList\"\r\n [sortByItem]=\"sortByItem\"\r\n [Actions]=\"Actions\"\r\n [textalign]=\"textalign\"\r\n [checkboxes]=\"checkboxes\"\r\n (rowClicked)=\"rowClicked($event)\"\r\n (onActionClicked)=\"actionClicked($event)\"\r\n (onckeckBoxClicked)=\"ckeckBoxClicked($event)\"\r\n [class]=\"row.rowClass\"\r\n [ngClass]=\"{\r\n rowSelected: row.selected,\r\n 'tr-small': smallCells\r\n }\"\r\n (click)=\"rowClicked(row)\"\r\n ></tr>\r\n </ng-container>\r\n </ng-container>\r\n <tr\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n *ngIf=\"\r\n (\r\n _datatable\r\n | filterData\r\n : {\r\n searchvalue: searchvalue,\r\n displayedColomnList: displayedColomnList,\r\n\r\n serverSidesearch: serverSidesearch,\r\n filters: filters,\r\n associations: associations\r\n }\r\n ).length == 0\r\n \"\r\n class=\"odd\"\r\n >\r\n <td\r\n [style.background]=\"'#fff'\"\r\n valign=\"top\"\r\n [attr.colspan]=\"\r\n displayedColomnList.length +\r\n Actions.length +\r\n (checkboxes ? 1 : 0)\r\n \"\r\n class=\"dataTables_empty\"\r\n >\r\n {{ nothingToShowMessage }}\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n <!-- //pagination section -->\r\n\r\n <div\r\n *ngIf=\"pagination && !loadingList\"\r\n [@animate]=\"{ value: '*', params: { y: '100%' } }\"\r\n [attr.colspan]=\"\r\n displayedColomnList.length + Actions.length + (checkboxes ? 1 : 0)\r\n \"\r\n datatable-footer\r\n [totalItems]=\"\r\n serverSidePagination\r\n ? numberOfRecords\r\n : (\r\n _datatable\r\n | filterData\r\n : {\r\n searchvalue: searchvalue,\r\n displayedColomnList: displayedColomnList,\r\n serverSidesearch: serverSidesearch,\r\n filters: filters,\r\n associations: associations\r\n }\r\n )?.length\r\n \"\r\n [itemsPerPage]=\"_itemsPerPage\"\r\n [endItem]=\"endItem\"\r\n [startItem]=\"startItem\"\r\n [maxSize]=\"maxSize\"\r\n [showBoundaryLinks]=\"showBoundaryLinks\"\r\n (onpageChanged)=\"pageChanged($event)\"\r\n class=\"footer-table\"\r\n ></div>\r\n <!-- //pagination section -->\r\n </div>\r\n</div>\r\n", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [Animations], styles: ["@charset \"UTF-8\";#ngx-datatable{line-height:1.42857143;color:rgba(0,0,0,.87);font-size:.8rem;font-weight:400;background-color:#fdfdfd;box-shadow:.25rem .1875rem .3rem 0 #c5c5c585;overflow:auto}#ngx-datatable .w-2rem{width:2rem}#ngx-datatable .bg-light-datatable{background:#f6f8f9}#ngx-datatable .thsorted{border-radius:.75rem .75rem 0 0}#ngx-datatable .dropdown-item.active,#ngx-datatable .dropdown-item:active{color:#000!important;background-color:#fdfdfd!important}#ngx-datatable .actionitem{flex:1;border-right:.0625rem solid #dee2e6;display:flex;padding:.6875rem .625rem;opacity:.6}#ngx-datatable .action{text-align:center}#ngx-datatable .checkboxTemplate{display:flex;justify-content:left;width:1.125rem;margin:auto}#ngx-datatable .isParent{background-color:rgba(221,221,221,.75)!important}#ngx-datatable .datatableinfolist{float:left;text-align:left;padding:.5rem .75rem}#ngx-datatable .table{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);border-radius:.25rem;background:#ffff;border:none;margin-bottom:0;border-collapse:collapse;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;width:100%;color:#000}#ngx-datatable .table .searchInput{color:#000;background-image:url(img/search.png);background-position:99.1% center;background-repeat:no-repeat;font-size:.6875rem;font-weight:400;width:100%;outline:0;padding:0 .9375rem 0 .3125rem;border:.0625rem solid #ccc;height:1.125rem}#ngx-datatable .sorting_asc{background:url(img/sorting/sort_asc.png) 99.6% center no-repeat}#ngx-datatable .sorting_desc{background:url(img/sorting/sort_desc.png) 99.6% center no-repeat}#ngx-datatable .sorting{background:url(img/sorting/sort_both.png) 99.6% center no-repeat}#ngx-datatable .sorting,#ngx-datatable .sorting_asc,#ngx-datatable .sorting_desc{padding-right:.625rem!important;background-position:98% 50%}#ngx-datatable .sortIcon{font-size:1rem;color:#fff;background:#363636;border-radius:50%}#ngx-datatable .inputnumber{text-align:center}#ngx-datatable .inputnumber:focus{border:.0625rem solid;background:#fff!important}#ngx-datatable .linkValue{color:#428bca;cursor:pointer}#ngx-datatable .linkValue:hover{text-decoration:underline}#ngx-datatable th span{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:99%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#ngx-datatable .icon:hover{opacity:.6}#ngx-datatable .p3{padding:.1875rem}#ngx-datatable .cursor-pointer{cursor:pointer}#ngx-datatable tr{height:1rem;min-height:1rem;border:.0625rem solid #dee2e6}#ngx-datatable tbody tr:hover{cursor:pointer;background:#c0c0c01f}#ngx-datatable .tr-small{height:1.75rem!important;min-height:1.75rem!important}#ngx-datatable .childDatatable{padding:.75rem!important;background:#fff}#ngx-datatable .childDatatable tr{height:1.375rem;min-height:1.375rem}#ngx-datatable .childDatatable td{padding:.1875rem .625rem;font-size:.625rem}#ngx-datatable .childDatatable .collapsed-group-closed:after,#ngx-datatable .childDatatable .collapsed-group-opened:after{left:1.25rem}#ngx-datatable .table-bordered-h td{border-bottom:none!important;border-top:none!important}#ngx-datatable .table-bordered-white tbody{background:#fff}#ngx-datatable .table-bordered-white td{border-top:none!important}#ngx-datatable .collapsed-group{text-align:left;padding-left:1.25rem;cursor:pointer;background:#f2f2f2;position:relative;box-shadow:.0625rem .125rem .0625rem 0 #c1c1c170}#ngx-datatable .collapsed-group-closed:after{font-family:FontAwesome;content:\"\uF196\";width:.8125rem;height:.625rem;position:absolute;left:.4375rem}#ngx-datatable .collapsed-group-opened:after{font-family:FontAwesome;content:\"\uF147\";width:.8125rem;height:.625rem;position:absolute;left:.4375rem}#ngx-datatable .footer-table{height:2.75rem;display:flex;justify-content:space-between;align-items:center}#ngx-datatable .search-wrapper .search input{background:#fff;color:rgba(0,0,0,.87);width:100%;height:3rem;min-height:3rem;max-height:3rem;padding:0 1rem;border:none;outline:0}#ngx-datatable .search-wrapper .search{width:100%;height:3rem;line-height:3rem;padding:0 1.125rem}#ngx-datatable .mat-icon{font-size:1.5rem;color:rgba(0,0,0,.54)}@font-face{font-family:\"Material Icons\";font-style:normal;font-weight:400;src:url(iconfont/MaterialIcons-Regular.eot);src:local(\"Material Icons\"),local(\"MaterialIcons-Regular\"),url(iconfont/MaterialIcons-Regular.woff2) format(\"woff2\"),url(iconfont/MaterialIcons-Regular.woff) format(\"woff\"),url(iconfont/MaterialIcons-Regular.ttf) format(\"truetype\")}.material-icons{font-family:\"Material Icons\";font-weight:400;font-style:normal;font-size:1.5rem;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:\"liga\"}.table td,.table th{padding:.5625rem .625rem .625rem;line-height:calc(30 / 16);vertical-align:top}"] }] } ]; /** @nocollapse */ NgxMariemDatatableComponent.ctorParameters = () => []; NgxMariemDatatableComponent.propDecorators = { onRowClicked: [{ type: Output }], onActionClicked: [{ type: Output }], onlinkClicked: [{ type: Output }], onToggleAllClicked: [{ type: Output }], onToggleClicked: [{ type: Output }], smallCells: [{ type: Input }], hideParentAction: [{ type: Input }], loadingList: [{ type: Input }], nbRows: [{ type: Input }], childListLabel: [{ type: Input }], hideTheader: [{ type: Input }], textalign: [{ type: Input }], regroupbylabel: [{ type: Input }], regroupby: [{ type: Input }], datatable: [{ type: Input }], datatableChange: [{ type: Output }], numberOfRecords: [{ type: Input }], serverSidePagination: [{ type: Input }], startDisplay: [{ type: Output }], serverSidesearch: [{ type: Input }], search: [{ type: Output }], displayedColomn: [{ type: Input }], Actions: [{ type: Input }], nothingToShowMessage: [{ type: Input }], paginationmessag: [{ type: Input }], showBoundaryLinks: [{ type: Input }], itemsPerPage: [{ type: Input }], maxSize: [{ type: Input }], checkboxes: [{ type: Input }], checkboxesMultiselect: [{ type: Input }], pagination: [{ type: Input }], Advancedfilter: [{ type: Input }], visibility: [{ type: Input }], searchvalue: [{ type: Input }] }; if (false) { /** @type {?} */ NgxMariemDatatableComponent.prototype.onRowClicked; /** @type {?} */ NgxMariemDatatableComponent.prototype.onActionClicked; /** @type {?} */ NgxMariemDatatableComponent.prototype.onlinkClicked; /** @type {?} */ NgxMariemDatatableComponent.prototype.onToggleAllClicked; /** @type {?} */ NgxMariemDatatableComponent.prototype.onToggleClicked; /** @type {?} */ NgxMariemDatatableComponent.prototype.smallCells; /** @type {?} */ NgxMariemDatatableComponent.prototype.hideParentAction; /** @type {?} */ NgxMariemDatatableComponent.prototype.loadingList; /** @type {?} */ NgxMariemDatatableComponent.prototype.nbRows; /** @type {?} */ NgxMariemDatatableComponent.prototype.childListLabel; /** @type {?} */ NgxMariemDatatableComponent.prototype.hideTheader; /** @type {?} */ NgxMariemDatatableComponent.prototype.textalign; /** @type {?} */ NgxMariemDatatableComponent.prototype.regroupbylabel; /** @type {?} */ NgxMariemDatatableComponent.prototype.regroupbylist; /** @type {?} */ NgxMariemDatatableComponent.prototype.regroupby; /** @type {?} */ NgxMariemDatatableComponent.prototype.display; /** @type {?} */ NgxMariemDatatableComponent.prototype._datatable; /** @type {?} */ NgxMariemDatatableComponent.prototype.datatableChange; /** @type {?} */ NgxMariemDatatableComponent.prototype.numberOfRecords; /** @type {?} */ NgxMariemDatatableComponent.prototype.serverSidePagination; /** @type {?} */ NgxMariemDatatableComponent.prototype.startDisplay; /** @type {?} */ NgxMariemDatatableComponent.prototype.serverSidesearch; /** @type {?} */ NgxMariemDatatableComponent.prototype.search; /** @type {?} */ NgxMariemDatatableComponent.prototype.displayedColomnList; /** @type {?} */ NgxMariemDatatableComponent.prototype._Actions; /** @type {?} */ NgxMariemDatatableComponent.prototype.nothingToShowMessage; /** @type {?} */ NgxMariemDatatableComponent.prototype.paginationmessag; /** @type {?} */ NgxMariemDatatableComponent.prototype.showBoundaryLinks; /** @type {?} */ NgxMariemDatatableComponent.prototype._itemsPerPage; /** @type {?} */ NgxMariemDatatableComponent.prototype.maxSize; /** @type {?} */ NgxMariemDatatableComponent.prototype.checkboxes; /** @type {?} */ NgxMariemDatatableComponent.prototype.checkboxesMultiselect; /** @type {?} */ NgxMariemDatatableComponent.prototype.pagination; /** @type {?} */ NgxMariemDatatableComponent.prototype.nameOnExtract; /** @type {?} */ NgxMariemDatatableComponent.prototype.Advancedfilter; /** @type {?} */ NgxMariemDatatableComponent.prototype.visibility; /** @type {?} */ NgxMariemDatatableComponent.prototype.datatableexist; /** @type {?} */ NgxMariemDatatableComponent.prototype.searchexist; /** @type {?} */ NgxMariemDatatableComponent.prototype._searchvalue; /** @type {?} */ NgxMariemDatatableComponent.prototype.sortByItem; /** @type {?} */ NgxMariemDatatableComponent.prototype.startItem; /** @type {?} */ NgxMariemDatatableComponent.prototype.endItem; /** @type {?} */ NgxMariemDatatableComponent.prototype.dataChild; /** @type {?} */ NgxMariemDatatableComponent.prototype.dataChildRow; /** @type {?} */ NgxMariemDatatableComponent.prototype.é; /** @type {?} */ NgxMariemDatatableComponent.prototype.filtreopen; /** @type {?} */ NgxMariemDatatableComponent.prototype.filters; /** @type {?} */ NgxMariemDatatableComponent.prototype.associations; /** @type {?} */ NgxMariemDatatableComponent.prototype.checkAll; } export class filterData { /** * @param {?} datePipe */ constructor(datePipe) { this.datePipe = datePipe; } /** * @param {?} list * @param {?} searchBody * @return {?} */ transform(list, searchBody) { return this.searchFilter(list, searchBody); } /** * @param {?} list * @param {?} searchBody * @return {?} */ searchFilter(list, searchBody) { if (searchBody.serverSidesearch) { return list; } if (searchBody.searchvalue.length == 0) return list; return list.filter((/** * @param {?} el * @return {?} */ (el) => { /** @type {?} */ let value = false; for (let index = 0; index < searchBody.displayedColomnList.length; index++) { /** @type {?} */ const name = searchBody.displayedColomnList[index].data; /** @type {?} */ const type = searchBody.displayedColomnList[index].type; value = value || (el[name] && (type == "date" ? this.datePipe.transform(new Date(el[name]), "dd/MM/yyyy") : el[name]) .toString() .toLowerCase() .includes(searchBody.searchvalue.toLowerCase())); } return value; })); } } filterData.decorators = [ { type: Pipe, args: [{ name: "filterData", pure: false },] } ]; /** @nocollapse */ filterData.ctorParameters = () => [ { type: DatePipe } ]; if (false) { /** * @type {?} * @private */ filterData.prototype.datePipe; } export class paginatePipe { /** * @param {?} list * @param {?} filterObj * @return {?} */ transform(list, filterObj) { if (filterObj.serverSidePagination || filterObj.endItem == "all") { return list; } return list.slice(filterObj.startItem, filterObj.endItem); } } paginatePipe.decorators = [ { type: Pipe, args: [{ name: "paginate", pure: false },] } ]; export class grouppigByPipe { /** * @param {?} list * @param {?} filterObj * @return {?} */ transform(list, filterObj) { if (!filterObj.regroupby) { return list; } return list.filter((/** * @param {?} el * @return {?} */ (el) => { return el[filterObj.regroupbylabel] == filterObj.groupeby; })); } } grouppigByPipe.decorators = [ { type: Pipe, args: [{ name: "grouppigBy" },] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW1hcmllbS1kYXRhdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hcmllbS1kYXRhdGFibGUvIiwic291cmNlcyI6WyJsaWIvbmd4LW1hcmllbS1kYXRhdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLElBQUksRUFDSixNQUFNLEVBQ04sWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVUzQyxNQUFNLE9BQU8sMkJBQTJCO0lBb0l0Qzs7UUFsSVUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUVsQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRXJDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFHbkMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFHeEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUd0QyxlQUFVLEdBQVksS0FBSyxDQUFDOztRQUc1QixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7O1FBRWxDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFJbkIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFnQyxNQUFNLENBQUM7O1FBRWhELG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ2xDLGtCQUFhLEdBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixjQUFTLEdBQVEsS0FBSyxDQUFDO1FBQ2hDLFlBQU8sR0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBZ0J0QixlQUFVLEdBQVUsRUFB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RDtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFuQ0YsSUFBSSxTQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFOzs7O1lBbFFoQyxRQUFROzs7Ozs7O0lBb1FILDhCQUEwQjs7QUFxQ3hDLE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFDdkIsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTO1FBQ3ZCLElBQUksU0FBUyxDQUFDLG9CQUFvQixJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ2hFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7O1lBUEYsSUFBSSxTQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFOztBQVV2QyxNQUFNLE9BQU8sY0FBYzs7Ozs7O0lBQ3pCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTTs7OztRQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDeEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDNUQsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFURixJQUFJLFNBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgUGlwZVRyYW5zZm9ybSxcbiAgUGlwZSxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5pbWF0aW9ucyB9IGZyb20gXCIuL2FuaW1hdGlvbnNcIjtcbi8vIGltcG9ydCAqIGFzIGNsb25lRGVlcCBmcm9tIFwibG9kYXNoL2Nsb25lRGVlcFwiO1xuaW1wb3J0IHsgZGF0YXRhYmxlX2Rpc3BsYXllZENvbG9tbiwgZGF0YXRhYmxlX2FjdGlvbiB9IGZyb20gXCIuL2RhdGF0YWJsZS5tb2RlbFwiO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJuZ3gtbWFyaWVtLWRhdGF0YWJsZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL25neC1tYXJpZW0tZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9uZ3gtbWFyaWVtLWRhdGF0YWJsZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGFuaW1hdGlvbnM6IFtBbmltYXRpb25zXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd4TWFyaWVtRGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gd2hlbiByb3cgY2xpY2tlZFxuICBAT3V0cHV0KCkgb25Sb3dDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvL3doZW4gYWN0aW9uIGNsaWNrZWRcbiAgQE91dHB1dCgpIG9uQWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgLy93aGVuIGxpbmsgY2xpY2tlZFxuICBAT3V0cHV0KCkgb25saW5rQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvL3doZW4gVG9nZ2xlIEFsbCBjbGlja2VkXG4gIEBPdXRwdXQoKSBvblRvZ2dsZUFsbENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLy93aGVuIFRvZ2dsZSAgY2xpY2tlZFxuICBAT3V0cHV0KCkgb25Ub2dnbGVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8vdG9EaXNwbGF5IFNtYWxsIENlbGxzXG4gIEBJbnB1dCgpIHNtYWxsQ2VsbHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvL3RvIEhpZGUgYWN0aW9ucyBpbiBwYXJlbnQgY2hpbGQgcm93XG4gIEBJbnB1dCgpIGhpZGVQYXJlbnRBY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgLy9sb2FkaW5nIExpc3RcbiAgQElucHV0KCkgbG9hZGluZ0xpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbmJSb3dzOiBudW1iZXIgPSA0O1xuXG4gIC8vIHRleHQgYWxpZ24gaW4gdGFibGUgIC8vIGxlZnQgcmlnaHQgb3IgY2VudGVyXG4gIEBJbnB1dCgpIGNoaWxkTGlzdExhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpZGVUaGVhZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRleHRhbGlnbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImNlbnRlclwiID0gXCJsZWZ0XCI7XG4gIC8vUmVncm91cHBpbmdcbiAgQElucHV0KCkgcmVncm91cGJ5bGFiZWw6IGFueSA9IFwiXCI7XG4gIHJlZ3JvdXBieWxpc3Q6IGFueSA9IFtcIlwiXTtcbiAgQElucHV0KCkgcmVncm91cGJ5OiBhbnkgPSBmYWxzZTtcbiAgZGlzcGxheTogYW55ID0gW3RydWVdO1xuICAvL2RhdGFcbiAgQElucHV0KCkgc2V0IGRhdGF0YWJsZSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLl9kYXRhdGFibGUgIT0gdmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLnJlZ3JvdXBieSAmJiB0aGlzLnJlZ3JvdXBieWxhYmVsKSB7XG4gICAgICAgIHRoaXMucmVncm91cGJ5bGlzdCA9IFtdO1xuICAgICAgICB2YWx1ZS5tYXAoKGVsKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucmVncm91cGJ5bGlzdC5pbmRleE9mKGVsW3RoaXMucmVncm91cGJ5bGFiZWxdKSA8IDApXG4gICAgICAgICAgICB0aGlzLnJlZ3JvdXBieWxpc3QucHVzaChlbFt0aGlzLnJlZ3JvdXBieWxhYmVsXSk7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5LnB1c2godHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gdGhpcy5fZGF0YXRhYmxlID0gY2xvbmVEZWVwKHZhbHVlKTtcbiAgICAgIHRoaXMuX2RhdGF0YWJsZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBfZGF0YXRhYmxlOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgZGF0YXRhYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyoqKioqKioqKioqKnNlcnZlciBTaWRlIHBhZ2luYXRpb24vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIEBJbnB1dCgpIG51bWJlck9mUmVjb3JkczogYW55ID0gMDsgLy9yZXF1aXJlZCB3aGVuIHNlcnZlclNpZGVQYWdpbmF0aW9uIHRydWVcbiAgQElucHV0KCkgc2VydmVyU2lkZVBhZ2luYXRpb246IGFueSA9IGZhbHNlO1xuICBAT3V0cHV0KCkgc3RhcnREaXNwbGF5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyoqKioqKioqKioqKnNlcnZlciBTaWRlIHBhZ2luYXRpb24vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyoqKioqKioqKioqKnNlcnZlciBTaWRlIHNlYXJjaC8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgQElucHV0KCkgc2VydmVyU2lkZXNlYXJjaDogYW55ID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vKioqKioqKioqKioqc2VydmVyIFNpZGUgc2VhcmNoLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAvL2NvbHVtbnMgdG8gZGlzcGxheSBmcm9tIGRhdGF0YWJsZVxuICBASW5wdXQoKSBzZXQgZGlzc