UNPKG

@iladiro/angular-material-table-library

Version:
1 lines 37.2 kB
{"version":3,"file":"iladiro-angular-material-table-library.mjs","sources":["../../../projects/iladiro-angular-material-table-library/src/lib/interfaces/iladiro-table-filter.interface.ts","../../../projects/iladiro-angular-material-table-library/src/lib/components/filter-form/filter-form.component.ts","../../../projects/iladiro-angular-material-table-library/src/lib/components/filter-form/filter-form.component.html","../../../projects/iladiro-angular-material-table-library/src/lib/pipes/replace.pipe.ts","../../../projects/iladiro-angular-material-table-library/src/lib/components/table-cell/table-cell.component.ts","../../../projects/iladiro-angular-material-table-library/src/lib/components/table-cell/table-cell.component.html","../../../projects/iladiro-angular-material-table-library/src/lib/components/selected-filter/selected-filter.component.ts","../../../projects/iladiro-angular-material-table-library/src/lib/components/selected-filter/selected-filter.component.html","../../../projects/iladiro-angular-material-table-library/src/lib/components/table/table.component.ts","../../../projects/iladiro-angular-material-table-library/src/lib/components/table/table.component.html","../../../projects/iladiro-angular-material-table-library/src/lib/pipes/day-difference-from-today.pipe.ts","../../../projects/iladiro-angular-material-table-library/src/lib/material/material.module.ts","../../../projects/iladiro-angular-material-table-library/src/lib/iladiro-angular-material-table-library.module.ts","../../../projects/iladiro-angular-material-table-library/src/public-api.ts","../../../projects/iladiro-angular-material-table-library/src/iladiro-angular-material-table-library.ts"],"sourcesContent":["import { ObjectKey } from '../types/col.types';\r\n\r\nexport interface IladiroAMTFilter<T> {\r\n value: string;\r\n col: ObjectKey<T>;\r\n}\r\n\r\nexport interface IladiroAMTFilterStatus {\r\n clean: boolean;\r\n open: boolean;\r\n col: string;\r\n}\r\n\r\nexport class IladiroAMTFilterStatusClass implements IladiroAMTFilterStatus {\r\n clean: boolean;\r\n open: boolean;\r\n col: string;\r\n\r\n constructor(clean: boolean, open: boolean, col: string) {\r\n this.clean = clean;\r\n this.col = col;\r\n this.open = open;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'iladiro-angular-material-table-filter-form',\n templateUrl: './filter-form.component.html',\n styleUrls: ['./filter-form.component.scss']\n})\nexport class FilterFormComponent implements OnChanges {\n @Input() inputPlaceholder = \"Find by\";\n @Input() col!: string;\n @Input() isFilterOpen!: boolean | undefined;\n @Input() cleanValue!: boolean;\n @Input() cleanAllFilter!: boolean;\n @Input() closeAllFilter!: boolean;\n @Output() applyFilterEvent = new EventEmitter();\n @Output() closeFilterEvent = new EventEmitter();\n @Output() cleanFilterEvent = new EventEmitter();\n\n filterValue!: string;\n\n applyFilter(): void {\n this.applyFilterEvent.emit(this.filterValue)\n }\n\n closeFilter(): void {\n this.closeFilterEvent.emit(true);\n }\n\n cleanFilter(): void {\n this.filterValue = \"\";\n this.cleanFilterEvent.emit(this.filterValue);\n }\n\n ngOnChanges(changes: SimpleChanges): void { \n if(changes.cleanValue?.currentValue) {\n this.filterValue = \"\";\n }\n if(changes.cleanAllFilter?.currentValue) {\n this.filterValue = \"\";\n } \n if(changes.closeAllFilter?.currentValue) {\n this.isFilterOpen = false;\n } \n }\n}\n","<div id=\"{{col}}-filter\" #formElement class=\"iladiro-amt-filter-form\" [class]=\"isFilterOpen ? '' : 'hidden'\">\r\n <mat-form-field class=\"iladiro-amt-filter-form__input\">\r\n <input #inputSearchElement #inputSearch=\"ngModel\" [(ngModel)]=\"filterValue\" matInput (keyup.enter)=\"applyFilter()\" placeholder=\"{{inputPlaceholder}} {{col}}\">\r\n <button (click)=\"cleanFilter();\" mat-icon-button matSuffix aria-label=\"clear\" title=\"Clear\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Example close icon\" fontIcon=\"close\"></mat-icon>\r\n </button> \r\n </mat-form-field>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'replace'})\r\nexport class ReplacePipe implements PipeTransform {\r\n transform(value: string, strToReplace: string, replacementStr: string): string {\r\n\r\n if(!value || ! strToReplace || ! replacementStr)\r\n {\r\n return value;\r\n }\r\n\r\n return value.replace(new RegExp(strToReplace, 'g'), replacementStr);\r\n }\r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'iladiro-angular-material-table-cell',\r\n templateUrl: './table-cell.component.html',\r\n styleUrls: ['./table-cell.component.scss']\r\n})\r\nexport class TableCellComponent {\r\n @Input() inputPlaceholder!: string;\r\n @Input() isFilterOpen!: boolean | undefined;\r\n @Input() col!: string;\r\n @Input() cleanValue!: boolean;\r\n @Input() cleanAllFilter!: boolean;\r\n @Input() closeAllFilter!: boolean;\r\n @Output() applyFilterEvent = new EventEmitter();\r\n @Output() toggleFilterEvent = new EventEmitter();\r\n @Output() cleanFilterEvent = new EventEmitter();\r\n\r\n applyFilter(value: string): void {\r\n this.applyFilterEvent.emit(value)\r\n }\r\n\r\n toggleFilter(): void {\r\n this.toggleFilterEvent.emit(!this.isFilterOpen);\r\n }\r\n\r\n closeFilter(): void {\r\n this.toggleFilterEvent.emit(false);\r\n }\r\n\r\n cleanFilter(value: string): void {\r\n this.cleanFilterEvent.emit(value);\r\n }\r\n}\r\n","<div class=\"iladiro-amt-table__cell\">\r\n <span>{{col[0].toUpperCase() + col.slice(1) | replace : '_' : ' '}}</span>\r\n <button (click)=\"toggleFilter();\" [title]=\"isFilterOpen ? 'Close' : 'Open'\">\r\n <ng-container *ngIf=\"isFilterOpen; else open\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Close\" fontIcon=\"expand_less\"></mat-icon>\r\n </ng-container> \r\n <ng-template #open>\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Open\" fontIcon=\"expand_more\"></mat-icon>\r\n </ng-template> \r\n </button>\r\n</div> \r\n<div class=\"iladiro-amt-table__wrapper-filter\"> \r\n <iladiro-angular-material-table-filter-form \r\n [col]=\"col\" \r\n [inputPlaceholder]=\"inputPlaceholder\" \r\n [closeAllFilter]=\"closeAllFilter\" \r\n [cleanAllFilter]=\"cleanAllFilter\" \r\n [cleanValue]=\"cleanValue\" \r\n [isFilterOpen]=\"isFilterOpen\" \r\n (cleanFilterEvent)=\"cleanFilter($event)\" \r\n (closeFilterEvent)=\"closeFilter()\" \r\n (applyFilterEvent)=\"applyFilter($event)\">\r\n </iladiro-angular-material-table-filter-form>\r\n</div> ","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IladiroAMTFilter } from '../../interfaces/iladiro-table-filter.interface';\n\n@Component({\n selector: 'iladiro-angular-material-table-selected-filter',\n templateUrl: './selected-filter.component.html',\n styleUrls: ['./selected-filter.component.scss']\n})\nexport class SelectedFilterComponent<T> {\n @Input() filterValues: IladiroAMTFilter<T>[] = [];\n @Output() removeFilterEvent = new EventEmitter();\n @Output() removeAllFilterEvent = new EventEmitter();\n\n removeFilter(index: number, filter: IladiroAMTFilter<T>) {\n this.removeFilterEvent.emit({\n index: index,\n filter: filter,\n });\n }\n\n removeAllFilter() {\n this.removeAllFilterEvent.emit();\n }\n}\n","<div *ngIf=\"filterValues.length > 0\" class=\"iladiro-amt-selected-filter\">\r\n <ng-container *ngFor=\"let filter of filterValues; let i = index\">\r\n <div class=\"iladiro-amt-selected-filter__item\">\r\n <span>{{filter.value}}</span>\r\n <button class=\"iladiro-amt-selected-filter__item-button iladiro-amt-selected-filter__item-button--clear\" (click)=\"removeFilter(i, filter);\" aria-label=\"reset\" title=\"Remove\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Example close icon\" fontIcon=\"close\"></mat-icon>\r\n </button>\r\n </div>\r\n </ng-container>\r\n <button class=\"iladiro-amt-selected-filter__button\" (click)=\"removeAllFilter();\" aria-label=\"reset\" title=\"Remove all filters\">\r\n <mat-icon aria-hidden=\"false\" aria-label=\"Example filter_list_off icon\" fontIcon=\"filter_list_off\"></mat-icon>\r\n </button>\r\n</div>","import { Component, ElementRef, EventEmitter, Input, OnInit, OnChanges, Output, QueryList, SimpleChanges, ViewChild, ViewChildren } from '@angular/core';\r\nimport { MatPaginator, PageEvent } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { ObjectKey } from '../../types/col.types';\r\nimport { IladiroAMTFilter, IladiroAMTFilterStatus, IladiroAMTFilterStatusClass } from '../../interfaces/iladiro-table-filter.interface';\r\n\r\n@Component({\r\n selector: 'iladiro-angular-material-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.scss']\r\n \r\n})\r\nexport class TableComponent<T> implements OnInit, OnChanges {\r\n\r\n @Input() inputPlaceholder!: string;\r\n @Input() filterValues: IladiroAMTFilter<T>[] = [];\r\n @Input() pageIndex = 0;\r\n @Input() showPageSizeOptions = true;\r\n @Input() pageSizeOptions: number[] = [5, 10, 15];\r\n @Input() noResultLabel = \"No results\";\r\n @Input() showFirstLastButtons = true;\r\n @Input() pageSize = 5;\r\n @Input() hidePageSize = false;\r\n @Input() customClass!: string;\r\n @Input() list!: T[];\r\n @Input() displayedColumns!: ObjectKey<T>[];\r\n @Output() paginatorEvent = new EventEmitter();\r\n @Output() callToActionEvent = new EventEmitter<any>();\r\n @Output() appliedFilterEvent = new EventEmitter<any>();\r\n\r\n @ViewChild(MatPaginator) paginator!: MatPaginator;\r\n @ViewChild(MatSort) sort!: MatSort;\r\n @ViewChildren('formElement') formElement!: QueryList<ElementRef>;\r\n @ViewChildren('inputSearchElement') inputSearch!: QueryList<ElementRef>;\r\n\r\n dataSource!: MatTableDataSource<T>; \r\n length!: number;\r\n\r\n cleanAllFilter!: boolean;\r\n closeAllFilter!: boolean;\r\n\r\n witchColumnFilterIsOpen: IladiroAMTFilterStatus = new IladiroAMTFilterStatusClass(\r\n false,\r\n false,\r\n ''\r\n ); \r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.list?.currentValue?.length > 0) {\r\n this.dataSource = new MatTableDataSource(this.list); \r\n\r\n this.length = changes?.list?.currentValue.length;\r\n\r\n if(this.filterValues?.length !== 0) {\r\n console.log(\"esiste un filtro\")\r\n this.applyFilter('fakevalue');\r\n } else {\r\n console.log(\"non esiste nessun filtro\");\r\n } \r\n\r\n this.dataSource.paginator = this.paginator;\r\n } \r\n }\r\n\r\n ngOnInit() {\r\n if(this.filterValues !== undefined && this.filterValues?.length !== 0) {\r\n console.log(\"esegui una sola volta\");\r\n this.applyFilter('fakevalue');\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.dataSource.paginator = this.paginator;\r\n }\r\n\r\n generateFilter(value: string, col: ObjectKey<T>) {\r\n const index = this.filterValues.findIndex((item) => {\r\n return item.col === col;\r\n });\r\n // If already exist\r\n if (index !== -1) {\r\n this.filterValues[index] = {\r\n value: value,\r\n col: col,\r\n };\r\n } else {\r\n this.filterValues.push({\r\n value: value,\r\n col: col,\r\n });\r\n }\r\n this.applyFilter(value);\r\n }\r\n\r\n applyFilter(value: string): void { \r\n this.dataSource.filterPredicate = (item: T, value: string) => {\r\n const filtered = this.filterValues.map((filter: IladiroAMTFilter<T>) => {\r\n return (item[filter['col']] as any)\r\n .toString()\r\n .toLowerCase()\r\n .startsWith(filter['value'].toLowerCase())\r\n ? item\r\n : null;\r\n });\r\n if (filtered.includes(null)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n this.dataSource.filter = value.trim().toLowerCase();\r\n this.appliedFilterEvent.emit({\r\n filterValues: this.filterValues,\r\n filteredData: this.dataSource.filteredData,\r\n length: this.dataSource.filteredData.length\r\n });\r\n if (this.dataSource.paginator) {\r\n this.dataSource.paginator.firstPage();\r\n }\r\n }\r\n\r\n removeFilter(filter: { index: number; filter: IladiroAMTFilter<T> }) {\r\n this.filterValues.splice(filter.index, 1);\r\n this.toggleFilter(false, filter.filter.col, true);\r\n this.applyFilter('fakevalue');\r\n }\r\n\r\n removeAllFilter(): void {\r\n this.cleanAllFilter = true;\r\n this.closeAllFilter = true;\r\n this.witchColumnFilterIsOpen.open = false;\r\n\r\n this.filterValues = [];\r\n this.applyFilter('fakevalue');\r\n }\r\n\r\n toggleFilter(open: boolean, col: string, clean: boolean): void {\r\n this.witchColumnFilterIsOpen = {\r\n clean: clean,\r\n open: open,\r\n col: col,\r\n };\r\n }\r\n\r\n cleanFilter(value: string, col: ObjectKey<T>) {\r\n this.filterValues = this.filterValues.filter((filter: IladiroAMTFilter<T>) => {\r\n return filter.col !== col ? filter : null;\r\n });\r\n this.applyFilter('fakevalue');\r\n }\r\n\r\n clickOn(record: T, action: string): void {\r\n this.callToActionEvent.emit({\r\n item: record,\r\n action: action\r\n });\r\n }\r\n\r\n handlePageEvent(event: PageEvent): void {\r\n this.paginatorEvent.emit(event);\r\n }\r\n\r\n}\r\n","<div [class]=\"customClass\">\r\n <iladiro-angular-material-table-selected-filter \r\n [filterValues]=\"filterValues\" \r\n (removeFilterEvent)=\"removeFilter($event)\" \r\n (removeAllFilterEvent)=\"removeAllFilter()\">\r\n </iladiro-angular-material-table-selected-filter>\r\n <mat-table class=\"iladiro-amt-table\" [dataSource]=\"dataSource\"><!-- matSort -->\r\n <ng-container *ngFor=\"let col of displayedColumns\">\r\n <ng-container *ngIf=\"col !== 'buttons'; else buttons\">\r\n <ng-container [matColumnDef]=\"col\">\r\n <mat-header-cell class=\"iladiro-amt-table__wrapper-cell\" *matHeaderCellDef> <!-- mat-sort-header -->\r\n <iladiro-angular-material-table-cell \r\n [inputPlaceholder]=\"inputPlaceholder\" \r\n [closeAllFilter]=\"closeAllFilter\" \r\n [cleanAllFilter]=\"cleanAllFilter\" \r\n [cleanValue]=\"witchColumnFilterIsOpen.col === col ? witchColumnFilterIsOpen.clean : false\" \r\n [col]=\"col\" \r\n [isFilterOpen]=\"witchColumnFilterIsOpen.col === col ? witchColumnFilterIsOpen.open : false\" \r\n (cleanFilterEvent)=\"cleanFilter($event, col)\" \r\n (toggleFilterEvent)=\"toggleFilter($event, col, false)\" \r\n (applyFilterEvent)=\"generateFilter($event, col)\">\r\n </iladiro-angular-material-table-cell>\r\n </mat-header-cell> \r\n <mat-cell *matCellDef=\"let row\">\r\n {{row[col]}}\r\n </mat-cell>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #buttons>\r\n <ng-container cdkColumnDef=\"buttons\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell><!-- mat-sort-header -->\r\n <mat-cell *matCellDef=\"let row\" class=\"iladiro-amt-table__row\">\r\n <ng-container *ngFor=\"let item of row.buttons\">\r\n <button (click)=\"clickOn(row, item)\" [disabled]=\"item.disable\" [title]=\"item.title\" class=\"iladiro-amt-table__row--buttons\">\r\n <span *ngIf=\"item.label\">{{item.label}}</span>\r\n <mat-icon *ngIf=\"item.icon\" aria-hidden=\"false\" aria-label=\"Example close icon\" [fontIcon]=\"item.icon\"></mat-icon>\r\n </button> \r\n </ng-container> \r\n </mat-cell>\r\n </ng-container> \r\n </ng-template> \r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns;\">\r\n </mat-row>\r\n </mat-table>\r\n\r\n <div class=\"iladiro-amt-table__no-results\" [style.display]=\"dataSource.filteredData.length !== 0 ? 'none' : 'block'\">\r\n {{noResultLabel}}\r\n </div>\r\n\r\n <mat-paginator #paginator\r\n class=\"iladiro-amt-table__paginator\"\r\n aria-label=\"Select page\"\r\n [length]=\"length\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n (page)=\"handlePageEvent($event)\"\r\n [showFirstLastButtons]=\"showFirstLastButtons\"\r\n [pageSizeOptions]=\"showPageSizeOptions ? pageSizeOptions : []\"\r\n [hidePageSize]=\"hidePageSize\"\r\n >\r\n </mat-paginator>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dayDifferenceFromToday',\r\n})\r\nexport class DayDifferenceFromTodayPipe implements PipeTransform {\r\n transform(value: Date | string): number {\r\n const dataOggi = +new Date();\r\n let diff = 0;\r\n if (value instanceof Date) {\r\n diff = +value - dataOggi;\r\n } else {\r\n diff = +new Date(value) - dataOggi;\r\n }\r\n const diffInDays = diff / (1000 * 60 * 60 * 24);\r\n return Math.floor(diffInDays);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\n\r\n@NgModule({\r\n exports: [\r\n CdkTableModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatPaginatorModule,\r\n MatSortModule,\r\n MatTableModule\r\n ]\r\n})\r\nexport class IladiroMaterialModule {}","import { NgModule } from '@angular/core';\nimport { TableComponent } from './components/table/table.component';\nimport { TableCellComponent } from './components/table-cell/table-cell.component';\nimport { ReplacePipe } from './pipes/replace.pipe';\nimport { SelectedFilterComponent } from './components/selected-filter/selected-filter.component';\nimport { FilterFormComponent } from './components/filter-form/filter-form.component';\nimport { DayDifferenceFromTodayPipe } from './pipes/day-difference-from-today.pipe';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { IladiroMaterialModule } from './material/material.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [\n TableComponent,\n TableCellComponent,\n FilterFormComponent,\n SelectedFilterComponent,\n ReplacePipe,\n DayDifferenceFromTodayPipe\n ],\n imports: [\n BrowserModule,\n IladiroMaterialModule,\n FormsModule\n ],\n exports: [\n TableComponent\n ]\n})\nexport class IladiroAngularMaterialTableLibraryModule { }\n","/*\n * Public API Surface of iladiro-angular-material-table-library\n */\n//export * from './lib/components/table-cell/table-cell.component';\nexport * from './lib/components/table/table.component';\nexport * from './lib/iladiro-angular-material-table-library.module';\nexport * from './lib/interfaces/iladiro-table-buttons.interface';\nexport { IladiroAMTFilter } from './lib/interfaces/iladiro-table-filter.interface';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.FilterFormComponent","i4.ReplacePipe","i2","i3","i4","i5","i6.TableCellComponent","i7.SelectedFilterComponent"],"mappings":"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"}