ngx-st-tables 17.0.61 → 17.0.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/base-table.scss +1 -1
- package/esm2022/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.mjs +2 -2
- package/esm2022/lib/components/material-table/material-table.component.mjs +21 -4
- package/esm2022/lib/components/select-table/select-table.component.mjs +2 -2
- package/fesm2022/ngx-st-tables.mjs +24 -7
- package/fesm2022/ngx-st-tables.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-st-tables.mjs","sources":["../../../projects/ngx-st-tables/src/lib/constants/default-translations.ts","../../../projects/ngx-st-tables/src/lib/services/st-tables-translations.service.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-caption.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-caption.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table.component.html","../../../projects/ngx-st-tables/src/lib/ngx-st-tables.module.ts","../../../projects/ngx-st-tables/src/public-api.ts","../../../projects/ngx-st-tables/src/ngx-st-tables.ts"],"sourcesContent":["import { StTablesTranslationsModel } from '../models/st-tables-translations.model';\r\n\r\nexport const DEFAULT_TRANSLATIONS: StTablesTranslationsModel = {\r\n globalSearch: 'Search',\r\n cancel: 'Cancel',\r\n close: 'Close',\r\n save: 'Save',\r\n reorderColumnsTitle: 'Reorder Columns',\r\n reorderColumns: 'Reorder Columns',\r\n expandAllFilters: 'Expand all filters',\r\n collapseAllFilters: 'Collapse all filters',\r\n clearFilters: 'Clear Filters',\r\n filterTitle: 'Filters',\r\n filter: 'Filter',\r\n searchFilter: 'Search',\r\n filterChooseDate: 'Choose a date',\r\n booleanPickValue: 'Pick Value',\r\n booleanNone: 'None',\r\n booleanYes: 'Yes',\r\n booleanNo: 'No',\r\n customPickValue: 'Pick Value',\r\n customNone: 'None',\r\n rowSelected: 'row selected',\r\n rowSelectColumnLabel: 'Row Select',\r\n rowActionsColumnLabel: 'Row Actions',\r\n};\r\n","import { Inject, Injectable, Optional, signal } from '@angular/core';\r\nimport { StTablesTranslationsModel } from '../models/st-tables-translations.model';\r\nimport { DEFAULT_TRANSLATIONS } from '../constants/default-translations';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StTablesTranslationsService {\r\n private readonly translations =\r\n signal<StTablesTranslationsModel>(DEFAULT_TRANSLATIONS);\r\n\r\n constructor(\r\n @Optional()\r\n @Inject('ST_TABLES_CONFIG')\r\n private config: { translations?: Partial<StTablesTranslationsModel> }\r\n ) {\r\n if (this.config?.translations) {\r\n this.setTranslations(this.config.translations);\r\n }\r\n }\r\n\r\n setTranslations(translations: Partial<StTablesTranslationsModel>) {\r\n this.translations.set({\r\n ...DEFAULT_TRANSLATIONS,\r\n ...translations,\r\n });\r\n }\r\n\r\n getTranslations() {\r\n return this.translations;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { UntypedFormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-st-select-table',\r\n templateUrl: './select-table.component.html',\r\n styleUrls: [\r\n './select-table.component.scss',\r\n '../../../../assets/base-table.scss',\r\n ],\r\n})\r\nexport class SelectTableComponent implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n required: boolean = false;\r\n\r\n @Input()\r\n multiple: boolean = false;\r\n\r\n @Input()\r\n initSelected: any;\r\n\r\n @Input()\r\n initSearchVal: any;\r\n\r\n @Input()\r\n searchLabel: string = 'Search';\r\n\r\n @Input()\r\n selectedLabel: string = 'Selected';\r\n\r\n @Input()\r\n set setInitColumns(col: { [col: string]: string }) {\r\n this.columns = ['active', ...Object.keys(col)];\r\n this.initColumns = col;\r\n }\r\n\r\n @Input()\r\n set tableData(data: any[]) {\r\n this.tableSource = new MatTableDataSource(data);\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n @Input()\r\n set validError(error: boolean) {\r\n this._validError = error;\r\n }\r\n\r\n get validError(): boolean {\r\n return this._validError;\r\n }\r\n\r\n private _validError = false;\r\n\r\n @Output()\r\n returnRowSelected: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n tableSource: MatTableDataSource<any>;\r\n columns: string[];\r\n initColumns: {\r\n [col: string]: string;\r\n };\r\n search: UntypedFormControl = new UntypedFormControl('');\r\n rowSelected: any[] = [];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges.subscribe(res => {\r\n this.tableSource.filter = res.trim().toLowerCase();\r\n });\r\n setTimeout(() => {\r\n if (this.initSearchVal) {\r\n this.search.setValue(this.initSearchVal);\r\n this.rowClick(this.initSelected);\r\n }\r\n }, 1000);\r\n }\r\n\r\n clearSearch() {\r\n this.search.setValue('');\r\n }\r\n\r\n rowClick(row: any) {\r\n const found = this.rowSelected.find(tmpRow => tmpRow === row);\r\n if (found) {\r\n this.rowSelected = this.rowSelected.filter(tmpRow => tmpRow !== row);\r\n } else {\r\n if (this.multiple) {\r\n this.rowSelected.push(row);\r\n } else {\r\n this.rowSelected = [row];\r\n }\r\n }\r\n this.returnRowSelected.emit(this.rowSelected);\r\n }\r\n\r\n checkActiveRow(row: any) {\r\n return !!this.rowSelected.find(activeRow => activeRow === row);\r\n }\r\n}\r\n","<div class=\"shared-table-selector\">\r\n <p class=\"title\" [ngClass]=\"{ 'error-text': validError }\">\r\n {{ title }} {{ required ? '*' : '' }}\r\n </p>\r\n\r\n <div class=\"search-form row align-items-center\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input\r\n matInput\r\n placeholder=\"{{ searchLabel }}\"\r\n [formControl]=\"search\"\r\n />\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <mat-icon (click)=\"clearSearch()\">clear</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <table mat-table [dataSource]=\"tableSource\">\r\n @for (col of columns; track col) {\r\n <ng-container [matColumnDef]=\"col\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ col === 'active' ? selectedLabel : initColumns[col] }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (col === 'active') {\r\n @if (checkActiveRow(element)) {\r\n <mat-icon class=\"active-row\">done</mat-icon>\r\n }\r\n }\r\n @if (col !== 'active') {\r\n {{ element[col] }}\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: columns\"\r\n (click)=\"rowClick(row)\"\r\n [ngClass]=\"{ active: checkActiveRow(row) }\"\r\n ></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Inject,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ViewStMaterialTableColumnModel } from '../../../../models/view/view-st-material-table-column.model';\r\nimport { FormControl, FormGroup, NonNullableFormBuilder } from '@angular/forms';\r\nimport { StTablesTranslationsService } from '../../../../services/st-tables-translations.service';\r\nimport { StMaterialTableFilter } from '../material-table-caption.component';\r\nimport { StMaterialColumnFilterType } from '../../../../models/st-material-table-column.model';\r\n\r\n@Component({\r\n selector: 'st-material-table-filter-dialog',\r\n templateUrl: './material-table-filter-dialog.component.html',\r\n styleUrls: ['./material-table-filter-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialTableFilterDialogComponent implements OnInit {\r\n filterColumns: ViewStMaterialTableColumnModel[] = [];\r\n\r\n formGroup: FormGroup<{\r\n [key: string]: FormGroup<{\r\n value: FormControl<string | number>;\r\n matchMode: FormControl<'contains' | 'equal' | 'between'>;\r\n }>;\r\n }> = this.fb.group({});\r\n\r\n allVisible = true;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public dialogData: {\r\n columns: ViewStMaterialTableColumnModel[];\r\n initFilters: { [key: string]: StMaterialTableFilter };\r\n },\r\n public dialogRef: MatDialogRef<\r\n MaterialTableFilterDialogComponent,\r\n MaterialTableFilterDialogResult\r\n >,\r\n private fb: NonNullableFormBuilder,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n public stTableTranslations: StTablesTranslationsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.filterColumns = this.dialogData.columns\r\n .filter(column => column.filter)\r\n .map(col => {\r\n const valueGroup = this.fb.group({\r\n value: this.fb.control<string | number>(''),\r\n matchMode: this.fb.control<'contains' | 'equal' | 'between'>(\r\n MaterialTableFilterDialogComponent.getBaseMatchModeByType(\r\n col.filterType!\r\n )\r\n ),\r\n });\r\n valueGroup.controls.matchMode.disable();\r\n\r\n this.formGroup.addControl(col.field, valueGroup);\r\n\r\n return {\r\n ...col,\r\n };\r\n });\r\n\r\n if (this.dialogData.initFilters) {\r\n const filtersKeys = Object.keys(this.dialogData.initFilters);\r\n filtersKeys.forEach(key => {\r\n if (this.formGroup.get(key)) {\r\n (\r\n this.formGroup.get([key, 'matchMode']) as FormControl<string>\r\n ).setValue(this.dialogData.initFilters[key].matchMode);\r\n (\r\n this.formGroup.get([key, 'value']) as FormControl<string | number>\r\n ).setValue(this.dialogData.initFilters[key].value as string | number);\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearAllFilters() {\r\n this.filterColumns.forEach(column => {\r\n if (this.formGroup.get(column.field)) {\r\n (\r\n this.formGroup.get([column.field, 'value']) as FormControl<\r\n string | number\r\n >\r\n ).setValue('');\r\n }\r\n });\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n showAllFilters() {\r\n this.filterColumns.forEach(column => {\r\n column.expanded = true;\r\n });\r\n this.allVisible = true;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n hideAllFilters() {\r\n this.filterColumns.forEach(column => {\r\n column.expanded = false;\r\n });\r\n this.allVisible = false;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n saveFilters() {\r\n const filters: { [key: string]: StMaterialTableFilter } = {};\r\n const formValues = this.formGroup.getRawValue();\r\n const filterKeys = Object.keys(formValues);\r\n filterKeys.forEach(key => {\r\n const value = formValues[key].value;\r\n const matchMode = formValues[key].matchMode;\r\n\r\n if (value !== '' && value !== null && value !== undefined) {\r\n filters[key] = {\r\n value: value,\r\n matchMode: matchMode,\r\n };\r\n }\r\n });\r\n\r\n this.dialogRef.close({\r\n filters: filters,\r\n });\r\n }\r\n\r\n static getBaseMatchModeByType(\r\n filterType: StMaterialColumnFilterType\r\n ): 'contains' | 'equal' | 'between' {\r\n if (filterType === 'date') {\r\n return 'between';\r\n } else if (\r\n filterType === 'number' ||\r\n filterType === 'boolean' ||\r\n filterType === 'custom'\r\n ) {\r\n return 'equal';\r\n } else {\r\n return 'contains';\r\n }\r\n }\r\n}\r\n\r\nexport interface MaterialTableFilterDialogResult {\r\n filters: { [key: string]: StMaterialTableFilter };\r\n}\r\n","<h3 mat-dialog-title class=\"filters-dialog-title\">\r\n {{ stTableTranslations.getTranslations()().filterTitle }}\r\n <div class=\"filters-show-hide\">\r\n @if (!allVisible) {\r\n <button\r\n mat-icon-button\r\n (click)=\"showAllFilters()\"\r\n [matTooltip]=\"stTableTranslations.getTranslations()().expandAllFilters\"\r\n >\r\n <mat-icon>unfold_more</mat-icon>\r\n </button>\r\n }\r\n @if (allVisible) {\r\n <button\r\n mat-icon-button\r\n (click)=\"hideAllFilters()\"\r\n [matTooltip]=\"\r\n stTableTranslations.getTranslations()().collapseAllFilters\r\n \"\r\n >\r\n <mat-icon>unfold_less</mat-icon>\r\n </button>\r\n }\r\n <button\r\n mat-icon-button\r\n (click)=\"clearAllFilters()\"\r\n [matTooltip]=\"stTableTranslations.getTranslations()().clearFilters\"\r\n >\r\n <mat-icon>filter_alt_off</mat-icon>\r\n </button>\r\n </div>\r\n</h3>\r\n\r\n<mat-dialog-content>\r\n <form [formGroup]=\"formGroup\">\r\n @for (column of filterColumns; track column.field) {\r\n @switch (column.filterType || column.type || 'string') {\r\n @case ('string') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n [value]=\"'Contains'\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().searchFilter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"column.visible\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n />\r\n <button\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"\r\n formGroup.controls[column.field].controls[\r\n 'value'\r\n ].setValue('')\r\n \"\r\n >\r\n <mat-icon style=\"font-size: 22px\">close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('number') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"number\"\r\n [disabled]=\"column.visible\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('date') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filterChooseDate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker\"\r\n [disabled]=\"column.visible\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n />\r\n <mat-datepicker-toggle\r\n matIconSuffix\r\n [for]=\"picker\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('boolean') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().booleanPickValue\r\n }}</mat-label>\r\n <mat-select\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n >\r\n <mat-option value=\"\">{{\r\n stTableTranslations.getTranslations()().booleanNone\r\n }}</mat-option>\r\n <mat-option [value]=\"true\">{{\r\n stTableTranslations.getTranslations()().booleanYes\r\n }}</mat-option>\r\n <mat-option [value]=\"false\">{{\r\n stTableTranslations.getTranslations()().booleanNo\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('custom') {\r\n @if (column.customFilterOptions) {}\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().customPickValue\r\n }}</mat-label>\r\n <mat-select\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n >\r\n <mat-option value=\"\">{{\r\n stTableTranslations.getTranslations()().customNone\r\n }}</mat-option>\r\n @for (option of column.customFilterOptions; track option) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n }\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button mat-flat-button mat-dialog-close>\r\n {{ stTableTranslations.getTranslations()().cancel }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" (click)=\"saveFilters()\">\r\n {{ stTableTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n\r\n<ng-template #filterHeader let-column>\r\n <div\r\n class=\"filter-title row justify-content-between\"\r\n [ngClass]=\"{\r\n 'value-set': formGroup.controls[column.field].controls['value'].value\r\n }\"\r\n >\r\n <p>\r\n {{ column.header }}\r\n </p>\r\n\r\n @if (column.expanded) {\r\n <mat-icon (click)=\"column.expanded = !column.expanded\"\r\n >keyboard_arrow_up</mat-icon\r\n >\r\n } @else {\r\n <mat-icon (click)=\"column.expanded = !column.expanded\"\r\n >keyboard_arrow_down</mat-icon\r\n >\r\n }\r\n </div>\r\n</ng-template>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ViewStMaterialTableColumnModel } from '../../../../models/view/view-st-material-table-column.model';\r\nimport { StTablesTranslationsService } from '../../../../services/st-tables-translations.service';\r\n\r\n@Component({\r\n selector: 'st-material-table-order-column-dialog',\r\n templateUrl: './material-table-order-column-dialog.component.html',\r\n styleUrls: ['./material-table-order-column-dialog.component.scss'],\r\n})\r\nexport class MaterialTableOrderColumnDialogComponent implements OnInit {\r\n columns: ViewStMaterialTableColumnModel[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public dialogData: { columns: ViewStMaterialTableColumnModel[] },\r\n public dialogRef: MatDialogRef<\r\n MaterialTableOrderColumnDialogComponent,\r\n MaterialTableOrderColumnDialogResult\r\n >,\r\n public stTablesTranslations: StTablesTranslationsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.columns = this.dialogData.columns.map(column => ({ ...column }));\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n saveOrder() {\r\n this.dialogRef.close({\r\n columnsOrder: this.columns.map(column => column.field),\r\n });\r\n }\r\n}\r\n\r\nexport interface MaterialTableOrderColumnDialogResult {\r\n columnsOrder: string[];\r\n}\r\n","<h3 mat-dialog-title>\r\n {{ stTablesTranslations.getTranslations()().reorderColumns }}\r\n</h3>\r\n<mat-dialog-content>\r\n <div\r\n cdkDropList\r\n class=\"reorder-column-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @for (column of columns; track column.field) {\r\n <div class=\"reorder-column-element\" cdkDrag>\r\n <div class=\"row\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n <p>{{ column.selectColumnLabel || column.header }}</p>\r\n </div>\r\n @if (!column.visible) {\r\n <mat-icon class=\"column-hidden\">visibility_off</mat-icon>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button mat-flat-button mat-dialog-close>\r\n {{ stTablesTranslations.getTranslations()().close }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" (click)=\"saveOrder()\">\r\n {{ stTablesTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { ViewStMaterialTableColumnModel } from '../../../models/view/view-st-material-table-column.model';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n StBaseService,\r\n StSubscribeDestroyComponent,\r\n} from 'ngx-st-base-functions';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n filter,\r\n take,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {\r\n MaterialTableFilterDialogComponent,\r\n MaterialTableFilterDialogResult,\r\n} from './material-table-filter-dialog/material-table-filter-dialog.component';\r\nimport { MaterialTableOrderColumnDialogComponent } from './material-table-order-column-dialog/material-table-order-column-dialog.component';\r\nimport { StTablesTranslationsService } from '../../../services/st-tables-translations.service';\r\n\r\n@Component({\r\n selector: 'st-material-table-caption',\r\n templateUrl: './material-table-caption.component.html',\r\n styleUrls: ['./material-table-caption.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialTableCaptionComponent\r\n extends StSubscribeDestroyComponent\r\n implements OnInit\r\n{\r\n showGlobalSearch = input<boolean>();\r\n\r\n tableTitle = input('');\r\n\r\n allowPickColumns = input<boolean>(true);\r\n\r\n allowReorderColumns = input<boolean>(true);\r\n\r\n initGlobalSearch = input('');\r\n\r\n initFilters = input<{\r\n [key: string]: StMaterialTableFilter;\r\n }>({});\r\n\r\n showCreateButton = input<boolean>(false);\r\n\r\n createButtonLabel = input('Create');\r\n\r\n createButtonAction = input<() => void>(() => {});\r\n\r\n @Input()\r\n set columns(data: ViewStMaterialTableColumnModel[]) {\r\n this._columns = data ? data : [];\r\n this.updateColumns();\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n private _columns: ViewStMaterialTableColumnModel[] = [];\r\n\r\n captionDataChanged = output<ICaptionDataChanged>();\r\n\r\n resetTableSettings = output<boolean>();\r\n\r\n showFilterButton = false;\r\n\r\n selectedColumns = new FormControl(<string[]>[]);\r\n globalSearch = new FormControl('');\r\n\r\n activeFiltersCount = 0;\r\n\r\n private columnsOrder: string[] = [];\r\n private filters: { [key: string]: StMaterialTableFilter } = {};\r\n\r\n constructor(\r\n public stTableTranslations: StTablesTranslationsService,\r\n private dialog: MatDialog\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.globalSearch.setValue(this.initGlobalSearch() || '');\r\n this.filters = this.initFilters() || {};\r\n this.setActiveFiltersCount();\r\n\r\n this.selectedColumns.valueChanges\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n ),\r\n debounceTime(400)\r\n )\r\n .subscribe(value => {\r\n this.emitCaptionDataChanged();\r\n });\r\n\r\n this.globalSearch.valueChanges\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n ),\r\n debounceTime(400)\r\n )\r\n .subscribe(value => {\r\n this.emitCaptionDataChanged();\r\n });\r\n }\r\n\r\n openFilterDialog() {\r\n this.dialog\r\n .open(MaterialTableFilterDialogComponent, {\r\n data: {\r\n initFilters: this.filters,\r\n columns: this.columns,\r\n },\r\n maxWidth: '450px',\r\n width: '100%',\r\n autoFocus: false,\r\n })\r\n .afterClosed()\r\n .pipe(take(1), filter(StBaseService.notNull))\r\n .subscribe((res: MaterialTableFilterDialogResult) => {\r\n this.filters = res.filters;\r\n this.setActiveFiltersCount();\r\n this.emitCaptionDataChanged();\r\n });\r\n }\r\n\r\n openReorderColumnsDialog() {\r\n this.dialog\r\n .open(MaterialTableOrderColumnDialogComponent, {\r\n data: {\r\n columns: this.columns,\r\n },\r\n maxWidth: '450px',\r\n width: '100%',\r\n autoFocus: false,\r\n })\r\n .afterClosed()\r\n .pipe(take(1), filter(StBaseService.notNull))\r\n .subscribe((result: { columnsOrder: string[] }) => {\r\n this.columnsOrder = result.columnsOrder;\r\n this.emitCaptionDataChanged();\r\n });\r\n }\r\n\r\n resetTable() {\r\n this.resetTableSettings.emit(true);\r\n }\r\n\r\n // clearAllFilters() {\r\n // const filtersKeys = Object.keys(this.filters);\r\n // filtersKeys.forEach(key => {\r\n // if (this.filters[key]) {\r\n // this.filters[key] = '';\r\n // }\r\n // });\r\n //\r\n // this.setActiveFiltersCount();\r\n // this.emitCaptionDataChanged();\r\n // }\r\n\r\n private emitCaptionDataChanged() {\r\n this.captionDataChanged.emit({\r\n selectedColumns: this.selectedColumns.value || [],\r\n globalSearch: this.globalSearch.value || '',\r\n columnsOrder: this.columnsOrder || [],\r\n filters: this.filters,\r\n });\r\n }\r\n\r\n private updateColumns() {\r\n const columnsFilters = this._columns.filter(column => column.filter);\r\n this.showFilterButton = columnsFilters.length > 0;\r\n this.selectedColumns.setValue(\r\n this._columns.filter(col => col.visible).map(col => col.field) || []\r\n );\r\n this.columnsOrder = this._columns.map(col => col.field) || [];\r\n }\r\n\r\n private setActiveFiltersCount() {\r\n const filtersKeys = Object.keys(this.filters);\r\n this.activeFiltersCount =\r\n filtersKeys.filter(key => this.filters[key]).length || 0;\r\n }\r\n}\r\n\r\nexport interface ICaptionDataChanged {\r\n selectedColumns: string[];\r\n globalSearch: string;\r\n columnsOrder: string[];\r\n filters: { [key: string]: StMaterialTableFilter };\r\n}\r\n\r\nexport interface StMaterialTableFilter {\r\n value: string | number | [string | null, string | null];\r\n matchMode: 'equal' | 'contains' | 'between';\r\n}\r\n","@if (\r\n allowPickColumns() ||\r\n tableTitle() ||\r\n allowReorderColumns() ||\r\n showGlobalSearch() ||\r\n showFilterButton ||\r\n showCreateButton()\r\n) {\r\n <div\r\n class=\"st-material-table-caption row align-items-center\"\r\n [ngClass]=\"{\r\n 'justify-content-between':\r\n (allowPickColumns() || tableTitle() || allowReorderColumns()) &&\r\n (showGlobalSearch() || showFilterButton || showCreateButton()),\r\n 'justify-content-end':\r\n !allowPickColumns() && !tableTitle() && !allowReorderColumns()\r\n }\"\r\n >\r\n @if (allowPickColumns() || tableTitle() || allowReorderColumns()) {\r\n <div class=\"col-auto d-flex align-items-center\">\r\n @if (tableTitle()) {\r\n <p class=\"table-title\">{{ tableTitle() }}</p>\r\n }\r\n\r\n @if (allowPickColumns()) {\r\n <mat-form-field appearance=\"outline\" class=\"caption-select-columns\">\r\n <mat-select [formControl]=\"selectedColumns\" multiple>\r\n <mat-select-trigger>\r\n {{ selectedColumns.value ? selectedColumns.value!.length : 0 }}\r\n columns selected\r\n </mat-select-trigger>\r\n @for (column of columns; track column.field) {\r\n <mat-option\r\n [value]=\"column.field\"\r\n [disabled]=\"column.type === 'actions'\"\r\n style=\"text-transform: capitalize\"\r\n >{{\r\n column.selectColumnLabel || column.header || column.field\r\n }}</mat-option\r\n >\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n\r\n @if (allowPickColumns() || tableTitle()) {\r\n <button mat-icon-button (click)=\"resetTable()\">\r\n <mat-icon class=\"reorder-icon\">refresh</mat-icon>\r\n </button>\r\n }\r\n\r\n @if (allowReorderColumns()) {\r\n <button mat-icon-button (click)=\"openReorderColumnsDialog()\">\r\n <mat-icon class=\"reorder-icon\">low_priority</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (showGlobalSearch() || showFilterButton || showCreateButton()) {\r\n <div class=\"col-auto d-flex align-items-center gap-1\">\r\n @if (showFilterButton) {\r\n <!-- @if (activeFiltersCount) {-->\r\n <!-- <button-->\r\n <!-- mat-icon-button-->\r\n <!-- (click)=\"clearAllFilters()\"-->\r\n <!-- [matTooltip]=\"'Clear Filters'\"-->\r\n <!-- >-->\r\n <!-- <mat-icon>filter_alt_off</mat-icon>-->\r\n <!-- </button>-->\r\n <!-- }-->\r\n\r\n <button mat-icon-button (click)=\"openFilterDialog()\">\r\n <mat-icon\r\n [matBadge]=\"activeFiltersCount\"\r\n [matBadgeHidden]=\"!activeFiltersCount\"\r\n [matBadgeSize]=\"'small'\"\r\n matBadgePosition=\"before\"\r\n >filter_alt</mat-icon\r\n >\r\n </button>\r\n }\r\n\r\n @if (showGlobalSearch()) {\r\n <mat-form-field appearance=\"outline\" class=\"search-field\">\r\n <input\r\n matInput\r\n [formControl]=\"globalSearch\"\r\n [placeholder]=\"\r\n stTableTranslations.getTranslations()().globalSearch\r\n \"\r\n />\r\n <button\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"globalSearch.setValue('')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n }\r\n\r\n @if (showCreateButton()) {\r\n <button\r\n color=\"primary\"\r\n mat-flat-button\r\n (click)=\"createButtonAction()()\"\r\n >\r\n {{ createButtonLabel() }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { StMaterialTableColumnModel } from '../../../models/st-material-table-column.model';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\n@Component({\r\n selector: 'st-material-table-row-cell',\r\n templateUrl: './material-table-row-cell.component.html',\r\n styleUrls: ['./material-table-row-cell.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialTableRowCellComponent implements OnInit {\r\n column = input.required<StMaterialTableColumnModel>();\r\n\r\n rowData = input.required<{\r\n [prop: string]: any;\r\n }>();\r\n\r\n rowDataCopy = input<{\r\n [prop: string]: any;\r\n }>();\r\n\r\n @Input()\r\n set rowEditing(data: boolean) {\r\n this._rowEditing = data;\r\n }\r\n\r\n get rowEditing(): boolean {\r\n return this._rowEditing;\r\n }\r\n\r\n private _rowEditing: boolean = false;\r\n\r\n rowIsSelected = input<boolean>(false);\r\n\r\n saveEditRowEmitter = output<void>();\r\n\r\n cancelEditRowEmitter = output<void>();\r\n\r\n editRowEmitter = output<void>();\r\n\r\n selectRowChange = output<boolean>();\r\n\r\n mobileView = false;\r\n\r\n actionIconColorDef: {\r\n [key: string]: 'primary' | 'warn';\r\n } = {\r\n edit: 'primary',\r\n delete: 'warn',\r\n };\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n window.addEventListener('resize', event => {\r\n this.checkWidthSize();\r\n });\r\n }\r\n\r\n saveRow() {\r\n this.saveEditRowEmitter.emit();\r\n }\r\n\r\n cancelRow() {\r\n this.cancelEditRowEmitter.emit();\r\n }\r\n\r\n editRow() {\r\n this.editRowEmitter.emit();\r\n }\r\n\r\n selectRow(event: { checked: boolean }) {\r\n if (event) {\r\n this.selectRowChange.emit(event.checked);\r\n }\r\n }\r\n\r\n private checkWidthSize() {\r\n this.mobileView = document.body.clientWidth <= 1100;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","@switch (column().type || 'string') {\r\n @case ('custom-template') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"column().customTemplate!\"\r\n [ngTemplateOutletContext]=\"{ data: rowData() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('actions') {\r\n @if (column().actions) {\r\n @if (\r\n (!column().actionsInMenu && !mobileView) ||\r\n (mobileView && column().actions!.length <= 1)\r\n ) {\r\n <div [ngStyle]=\"{ float: column().flexRight ? 'right' : 'none' }\">\r\n @for (action of column().actions; track action) {\r\n @if ((action.show && action.show(rowData())) || !action.show) {\r\n @if (!action.url && action.action) {\r\n <button\r\n class=\"action-icon-button\"\r\n type=\"button\"\r\n mat-icon-button\r\n [color]=\"\r\n actionIconColorDef[action.iconName]\r\n ? actionIconColorDef[action.iconName]\r\n : action.iconColor\r\n \"\r\n [matTooltip]=\"action.tooltipName || ''\"\r\n [matTooltipDisabled]=\"!action.tooltipName\"\r\n (click)=\"$event.stopPropagation(); action.action!(rowData())\"\r\n >\r\n <mat-icon>{{ action.iconName }}</mat-icon>\r\n </button>\r\n }\r\n @if (action.url) {\r\n <a [routerLink]=\"action.url\">\r\n <button\r\n class=\"action-icon-button\"\r\n type=\"button\"\r\n mat-icon-button\r\n [color]=\"\r\n actionIconColorDef[action.iconName]\r\n ? actionIconColorDef[action.iconName]\r\n : action.iconColor\r\n \"\r\n [matTooltip]=\"action.tooltipName || ''\"\r\n [matTooltipDisabled]=\"!action.tooltipName\"\r\n >\r\n <mat-icon>{{ action.iconName }}</mat-icon>\r\n </button>\r\n </a>\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n @if (\r\n column().actionsInMenu || (mobileView && column().actions!.length > 1)\r\n ) {\r\n <button\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (action of column().actions; track action) {\r\n @if ((action.show && action.show(rowData())) || !action.show) {\r\n @if (!action.url && action.action) {\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"$event.stopPropagation(); action.action!(rowData())\"\r\n >\r\n {{ action.tooltipName }}\r\n </button>\r\n }\r\n @if (action.url) {\r\n <a [routerLink]=\"action.url\">\r\n <button type=\"button\" mat-menu-item>\r\n {{ action.tooltipName }}\r\n </button>\r\n </a>\r\n }\r\n }\r\n }\r\n </mat-menu>\r\n }\r\n }\r\n }\r\n\r\n @case ('string') {\r\n <ng-container\r\n *ngTemplateOutlet=\"baseFieldCell; context: { $implicit: column() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('number') {\r\n <ng-container\r\n *ngTemplateOutlet=\"baseFieldCell; context: { $implicit: column() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('boolean') {\r\n <ng-container\r\n *ngTemplateOutlet=\"baseFieldCell; context: { $implicit: column() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('date') {\r\n {{ rowData()[column().field] | stDateTimeFormatPipe }}\r\n }\r\n\r\n @case ('actions-row-editing') {\r\n <div class=\"row justify-content-end\">\r\n @if (rowEditing) {\r\n <button\r\n mat-icon-button\r\n color=\"accent\"\r\n (click)=\"saveRow()\"\r\n [matTooltip]=\"'Save row'\"\r\n >\r\n <mat-icon>done</mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"cancelRow()\"\r\n [matTooltip]=\"'Cancel row'\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n } @else {\r\n <button\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"editRow()\"\r\n [matTooltip]=\"'Edit row'\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @case ('actions-row-selecting') {\r\n <mat-checkbox\r\n color=\"primary\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"selectRow($event)\"\r\n [checked]=\"rowIsSelected()\"\r\n >\r\n </mat-checkbox>\r\n }\r\n}\r\n\r\n<ng-template #baseFieldCell let-column>\r\n @if (rowEditing && column.allowEditColumn) {\r\n <mat-form-field appearance=\"outline\">\r\n @if (column.type === 'string') {\r\n <input matInput [(ngModel)]=\"rowDataCopy()![column.field]\" />\r\n }\r\n @if (column.type === 'number') {\r\n <input\r\n matInput\r\n type=\"number\"\r\n [(ngModel)]=\"rowDataCopy()![column.field]\"\r\n />\r\n }\r\n @if (column.type === 'boolean') {\r\n <mat-checkbox [(ngModel)]=\"rowDataCopy()![column.field]\"></mat-checkbox>\r\n }\r\n </mat-form-field>\r\n } @else {\r\n <div>\r\n @if (column.translateValue) {\r\n {{ column.translateValue![rowData()[column.field]] || '' }}\r\n }\r\n @if (column.customValueDisplay) {\r\n {{ column.customValueDisplay(rowData()[column.field]) }}\r\n }\r\n @if (!column.translateValue && !column.customValueDisplay) {\r\n {{ rowData()[column.field] }}\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n input,\r\n output,\r\n model,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, SortDirection } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n StMaterialColumnFilterType,\r\n StMaterialColumnType,\r\n StMaterialTableColumnModel,\r\n} from '../../models/st-material-table-column.model';\r\nimport { ViewStMaterialTableColumnModel } from '../../models/view/view-st-material-table-column.model';\r\nimport {\r\n ICaptionDataChanged,\r\n StMaterialTableFilter,\r\n} from './material-table-caption/material-table-caption.component';\r\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\nimport {\r\n StBaseService,\r\n StSubscribeDestroyComponent,\r\n} from 'ngx-st-base-functions';\r\nimport { StSnackBarService } from 'ngx-st-snack-bar';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { StTablesTranslationsService } from '../../services/st-tables-translations.service';\r\nimport { MaterialTableFilterDialogComponent } from './material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component';\r\n\r\n@Component({\r\n selector: 'ngx-st-material-table',\r\n templateUrl: './material-table.component.html',\r\n styleUrls: [\r\n './material-table.component.scss',\r\n '../../../../assets/base-table.scss',\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MaterialTableComponent\r\n extends StSubscribeDestroyComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n showGlobalSearch = input(false);\r\n\r\n tableTitle = input('');\r\n\r\n pageSize = input<number>(10);\r\n\r\n dataLength = input<number>(0);\r\n\r\n allowPickColumns = input<boolean>(false);\r\n\r\n allowReorderColumns = input<boolean>(false);\r\n\r\n localStorageName = input<string>('');\r\n\r\n lazyLoading = input<boolean>(false);\r\n\r\n isLoading = input<boolean>(false);\r\n\r\n initColumns = model<StMaterialTableColumnModel[]>([]);\r\n\r\n rowClickAction = input<(row: any) => void>();\r\n\r\n @Input()\r\n set data(data: any[]) {\r\n if (this.rowEditing() || this.rowSelecting()) {\r\n if (data.length > 0 && !data[0].id) {\r\n data = data.map(row => {\r\n return {\r\n ...row,\r\n id: StBaseService.generateGUID(),\r\n };\r\n });\r\n }\r\n }\r\n this._data = data || [];\r\n\r\n if (this.tableSource) {\r\n this.tableSource.data = data;\r\n if (!this.lazyLoading() && this.localStorageData) {\r\n this.paginator.pageIndex = this.localStorageData.pageIndex;\r\n //@ts-ignore\r\n this.paginator._emitPageEvent(this.localStorageData.pageIndex);\r\n }\r\n }\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n get data(): any[] {\r\n return this._data;\r\n }\r\n\r\n rowEditing = input<boolean>(false);\r\n\r\n rowSelecting = input(false);\r\n\r\n selectionFieldLabel = input('');\r\n\r\n showCreateButton = input<boolean>(false);\r\n\r\n createButtonLabel = input('Create');\r\n\r\n createButtonAction = input<() => void>(() => {});\r\n\r\n loadData = output<StMaterialTableLoadData>();\r\n\r\n saveNewRow = output<any>();\r\n\r\n selectRowChange = output<any[]>();\r\n\r\n private _data: any[] = [];\r\n\r\n columns: ViewStMaterialTableColumnModel[] = [];\r\n selectedColumns: ViewStMaterialTableColumnModel[] = [];\r\n selectedColumnsString: string[] = [];\r\n\r\n tableSource: MatTableDataSource<any>;\r\n\r\n initFilters: { [key: string]: StMaterialTableFilter } = {};\r\n initGlobalSearch: string = '';\r\n\r\n showTable = true;\r\n\r\n activeRowsEditing: { [rowId: string]: { [prop: string]: any } } = {};\r\n selection = new SelectionModel<any>(true, []);\r\n\r\n private localStorageData: StMaterialTableLocalStorage;\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private snackbar: StSnackBarService,\r\n public stTableTranslations: StTablesTranslationsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rowSelecting()) {\r\n this.initColumns().unshift({\r\n field: 'actions-row-selecting',\r\n header: '',\r\n type: 'actions-row-selecting',\r\n sort: false,\r\n filter: false,\r\n width: '60px',\r\n selectColumnLabel:\r\n this.stTableTranslations.getTranslations()().rowSelectColumnLabel,\r\n });\r\n } else {\r\n this.initColumns.update(oldVal =>\r\n oldVal.filter(column => column.field !== 'action-row-selecting')\r\n );\r\n }\r\n\r\n if (this.rowEditing()) {\r\n this.initColumns().push({\r\n field: 'actions-row-editing',\r\n header: '',\r\n type: 'actions-row-editing',\r\n sort: false,\r\n filter: false,\r\n width: '110px',\r\n selectColumnLabel:\r\n this.stTableTranslations.getTranslations()().rowActionsColumnLabel,\r\n });\r\n } else {\r\n this.initColumns.update(oldVal =>\r\n oldVal.filter(column => column.field !== 'action-row-editing')\r\n );\r\n }\r\n\r\n this.initColumns().forEach(column => {\r\n if (column.field === 'actions' && !column.type) {\r\n column.type = 'actions';\r\n }\r\n });\r\n\r\n this.loadLocalStorageData();\r\n this.setDisplayedColumns();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setInitTable();\r\n this.setSortPageSubscription();\r\n }\r\n\r\n captionDataChanged(event: ICaptionDataChanged) {\r\n let loadLazyData = false;\r\n if (\r\n event.globalSearch !== this.localStorageData.globalSearch ||\r\n event.filters !== this.localStorageData.filters\r\n ) {\r\n loadLazyData = true;\r\n }\r\n\r\n this.localStorageData = {\r\n ...event,\r\n pageSize: this.paginator.pageSize,\r\n pageIndex: this.paginator.pageIndex,\r\n sortField: this.sort.active,\r\n sortOrder: this.sort.direction,\r\n };\r\n\r\n this.setColumnsOrder();\r\n this.setColumnsVisible();\r\n this.setSelectedColumns();\r\n this.updateDataToLocalStorage();\r\n\r\n if (loadLazyData) {\r\n this.emitLazyLoading();\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n resetTableSettings() {\r\n this.showTable = false;\r\n this.changeDetectorRef.markForCheck();\r\n\r\n this.setNewEmptyLocalStorageData();\r\n this.updateDataToLocalStorage();\r\n this.emitLazyLoading();\r\n this.initFilters = {};\r\n this.initGlobalSearch = '';\r\n this.sort.sort({ id: '', start: 'asc', disableClear: false });\r\n\r\n setTimeout(() => {\r\n this.showTable = true;\r\n this.setDisplayedColumns();\r\n this.setInitTable();\r\n this.changeDetectorRef.markForCheck();\r\n }, 100);\r\n }\r\n\r\n editRow(row: any, column: ViewStMaterialTableColumnModel) {\r\n this.activeRowsEditing[row.id] = { ...row };\r\n }\r\n\r\n saveEditRow(row: any, column: ViewStMaterialTableColumnModel) {\r\n let allowSave = true;\r\n\r\n this.columns\r\n .filter(col => col.allowEditColumn)\r\n .forEach(col => {\r\n if (col.customEditRowValidator) {\r\n const result = col.customEditRowValidator(\r\n this.activeRowsEditing[row.id][col.field],\r\n row[col.field],\r\n row\r\n );\r\n if (!result.isValid) {\r\n allowSave = false;\r\n this.snackbar.error(result.errorMessage);\r\n }\r\n }\r\n });\r\n if (allowSave) {\r\n this.saveNewRow.emit(this.activeRowsEditing[row.id]);\r\n this.columns\r\n .filter(col => col.allowEditColumn)\r\n .forEach(col => {\r\n row[col.field] = this.activeRowsEditing[row.id][col.field];\r\n });\r\n this.changeDetectorRef.markForCheck();\r\n\r\n delete this.activeRowsEditing[row.id];\r\n }\r\n }\r\n\r\n cancelEditRow(row: any, column: ViewStMaterialTableColumnModel) {\r\n delete this.activeRowsEditing[row.id];\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.tableSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n toggleAllRows() {\r\n if (this.isAllSelected()) {\r\n this.selection.clear();\r\n return;\r\n }\r\n\r\n this.selection.select(...this.tableSource.data);\r\n\r\n this.selectRowChange.emit(this.selection.selected);\r\n }\r\n\r\n removeSelectedRow(row: any) {\r\n this.selection.deselect(row);\r\n this.selectRowChange.emit(this.selection.selected);\r\n }\r\n\r\n selectRowChanged(value: boolean, row: any) {\r\n if (value) {\r\n this.selection.select(row);\r\n } else {\r\n this.selection.deselect(row);\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n this.selectRowChange.emit(this.selection.selected);\r\n }\r\n\r\n private createCustomFilterForLocalTable() {\r\n let filterFunction = (data: any, filter: string): boolean => {\r\n const searchTerms: {\r\n [column: string]: StMaterialTableFilter;\r\n // @ts-ignore\r\n stGlobalSearch: string;\r\n } = JSON.parse(filter);\r\n const searchTermsKeys = Object.keys(searchTerms);\r\n let searchOk = true;\r\n let searchOkGlobal = true;\r\n\r\n searchTermsKeys.forEach((key: string) => {\r\n if (\r\n key !== 'stGlobalSearch' &&\r\n this.selectedColumnsString.includes(key)\r\n ) {\r\n searchOk =\r\n searchOk &&\r\n data[key]\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(searchTerms[key].value.toString().toLowerCase()) !== -1;\r\n }\r\n });\r\n if (searchTerms.stGlobalSearch) {\r\n searchOkGlobal = false;\r\n this.selectedColumnsString.forEach(col => {\r\n if (data[col]) {\r\n searchOkGlobal =\r\n searchOkGlobal ||\r\n data[col]\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(\r\n searchTerms.stGlobalSearch.toString().toLowerCase()\r\n ) !== -1;\r\n }\r\n });\r\n }\r\n\r\n return searchOk && searchOkGlobal;\r\n };\r\n return filterFunction;\r\n }\r\n\r\n private emitLazyLoading() {\r\n if (this.lazyLoading()) {\r\n this.loadData.emit({\r\n first: this.paginator.pageIndex * this.paginator.pageSize,\r\n rows: this.paginator.pageSize,\r\n globalFilterColumns: this.selectedColumnsString,\r\n globalFilter: this.localStorageData.globalSearch,\r\n sortField: this.localStorageData.sortField,\r\n sortOrder: this.localStorageData.sortOrder,\r\n filters: this.localStorageData.filters,\r\n });\r\n } else {\r\n this.tableSource.filter = JSON.stringify({\r\n ...this.localStorageData.filters,\r\n stGlobalSearch: this.localStorageData.globalSearch,\r\n });\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private updateDataToLocalStorage() {\r\n if (this.localStorageName()) {\r\n localStorage.setItem(\r\n this.localStorageName()!,\r\n JSON.stringify(this.localStorageData)\r\n );\r\n }\r\n }\r\n\r\n private setInitTable() {\r\n this.tableSource = new MatTableDataSource(this._data);\r\n\r\n this.paginator.pageSize = this.localStorageData.pageSize;\r\n this.paginator.pageIndex = this.localStorageData.pageIndex;\r\n\r\n if (this.localStorageData.sortField && this.localStorageData.sortOrder) {\r\n const disableClear = false;\r\n this.sort.sort({ id: '', start: 'asc', disableClear });\r\n this.sort.sort({\r\n id: this.localStorageData.sortField,\r\n start: this.localStorageData.sortOrder,\r\n disableClear,\r\n });\r\n }\r\n\r\n if (!this.lazyLoading()!) {\r\n this.tableSource.paginator = this.paginator;\r\n this.tableSource.sort = this.sort;\r\n this.tableSource.filterPredicate = this.createCustomFilterForLocalTable();\r\n }\r\n\r\n this.emitLazyLoading();\r\n }\r\n\r\n private setSortPageSubscription() {\r\n this.sort.sortChange\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n )\r\n )\r\n .subscribe(res => {\r\n this.localStorageData = {\r\n ...this.localStorageData,\r\n sortField: res.active,\r\n sortOrder: res.direction,\r\n };\r\n this.updateDataToLocalStorage();\r\n this.emitLazyLoading();\r\n });\r\n\r\n this.paginator.page\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n )\r\n )\r\n .subscribe(res => {\r\n this.localStorageData = {\r\n ...this.localStorageData,\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n };\r\n\r\n this.updateDataToLocalStorage();\r\n this.emitLazyLoading();\r\n });\r\n }\r\n\r\n private setDisplayedColumns() {\r\n this.columns = this.initColumns().map(col => {\r\n return {\r\n ...col,\r\n type: col.type ? col.type : 'string',\r\n visible: true,\r\n expanded: true,\r\n isEditing: false,\r\n };\r\n });\r\n\r\n this.setColumnsOrder();\r\n this.setColumnsVisible();\r\n this.setSelectedColumns();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private setColumnsOrder() {\r\n if (this.localStorageData?.columnsOrder) {\r\n this.columns = [\r\n ...this.localStorageData.columnsOrder\r\n .filter(column => this.columns.find(col => col.field === column))\r\n .map(column => this.columns.find(col => col.field === column)!),\r\n ...this.columns.filter(\r\n column => !this.localStorageData.columnsOrder.includes(column.field)\r\n ),\r\n ];\r\n }\r\n }\r\n\r\n private setColumnsVisible() {\r\n if (this.localStorageData?.selectedColumns) {\r\n this.columns = this.columns.map(col => {\r\n return {\r\n ...col,\r\n visible:\r\n this.localStorageData.selectedColumns.includes(col.field) ||\r\n !this.localStorageData.columnsOrder.includes(col.field),\r\n };\r\n });\r\n }\r\n }\r\n\r\n private setSelectedColumns() {\r\n this.selectedColumns = this.columns.filter(col => {\r\n return col.visible;\r\n });\r\n this.selectedColumnsString = this.selectedColumns.map(col => col.field);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private loadLocalStorageData() {\r\n if (this.localStorageName()) {\r\n const localStorageData = localStorage.getItem(this.localStorageName()!);\r\n\r\n if (localStorageData) {\r\n this.localStorageData = JSON.parse(localStorageData);\r\n const filters = this.validOldFiltersToNewFormat(\r\n this.localStorageData.filters\r\n );\r\n this.localStorageData.filters = filters;\r\n this.initFilters = filters;\r\n\r\n this.initGlobalSearch = this.localStorageData.globalSearch;\r\n } else {\r\n this.setNewEmptyLocalStorageData();\r\n }\r\n } else {\r\n this.setNewEmptyLocalStorageData();\r\n }\r\n }\r\n\r\n private validOldFiltersToNewFormat(oldFilters: {\r\n [key: string]: StMaterialTableFilter | string;\r\n }): { [key: string]: StMaterialTableFilter } {\r\n const newFilters: { [key: string]: StMaterialTableFilter } = {};\r\n const keys = Object.keys(oldFilters);\r\n\r\n if (keys.length === 0) {\r\n return newFilters;\r\n }\r\n for (const key of keys) {\r\n if (typeof oldFilters[key] === 'object') {\r\n newFilters[key] = oldFilters[key] as StMaterialTableFilter;\r\n }\r\n }\r\n\r\n return newFilters;\r\n }\r\n\r\n private setNewEmptyLocalStorageData() {\r\n this.localStorageData = {\r\n pageSize: this.pageSize(),\r\n pageIndex: 0,\r\n selectedColumns: this.initColumns().map(col => col.field),\r\n globalSearch: '',\r\n columnsOrder: this.initColumns().map(col => col.field),\r\n filters: {},\r\n sortField: '',\r\n sortOrder: 'asc',\r\n };\r\n }\r\n}\r\n\r\nexport interface StMaterialTableLoadData {\r\n first: number;\r\n rows: number;\r\n globalFilter: string;\r\n globalFilterColumns: string[];\r\n sortField: string;\r\n sortOrder: SortDirection;\r\n filters: { [key: string]: StMaterialTableFilter };\r\n}\r\n\r\nexport interface StMaterialTableLocalStorage extends ICaptionDataChanged {\r\n pageSize: number;\r\n pageIndex: number;\r\n sortField: string;\r\n sortOrder: SortDirection;\r\n}\r\n","<div class=\"st-material-table\">\r\n @if (isLoading()) {\r\n <div class=\"loading-spinner\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n @if (showTable) {\r\n <st-material-table-caption\r\n [tableTitle]=\"tableTitle()\"\r\n [allowPickColumns]=\"allowPickColumns()\"\r\n [showGlobalSearch]=\"showGlobalSearch()\"\r\n [allowReorderColumns]=\"allowReorderColumns()\"\r\n [columns]=\"columns\"\r\n [initFilters]=\"initFilters\"\r\n [initGlobalSearch]=\"initGlobalSearch\"\r\n [showCreateButton]=\"showCreateButton()\"\r\n [createButtonLabel]=\"createButtonLabel()\"\r\n [createButtonAction]=\"createButtonAction()\"\r\n (captionDataChanged)=\"captionDataChanged($event)\"\r\n (resetTableSettings)=\"resetTableSettings()\"\r\n ></st-material-table-caption>\r\n }\r\n\r\n <table\r\n [ngClass]=\"{ 'no-hover': !rowClickAction() }\"\r\n mat-table\r\n [dataSource]=\"tableSource\"\r\n matSort\r\n >\r\n @for (column of selectedColumns; track column) {\r\n <ng-container [matColumnDef]=\"column.field\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"{{ column.width ? 'width:' + column.width : '' }}\"\r\n mat-sort-header\r\n [disabled]=\"!column.sort\"\r\n >\r\n @if (column.type === 'actions-row-selecting') {\r\n <mat-checkbox\r\n color=\"primary\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n >\r\n </mat-checkbox>\r\n } @else {\r\n {{ column.header }}\r\n }\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n style=\"{{ column.width ? 'width:' + column.width : '' }}\"\r\n >\r\n <st-material-table-row-cell\r\n [column]=\"column\"\r\n [rowData]=\"element\"\r\n [rowDataCopy]=\"activeRowsEditing[element.id]\"\r\n [rowEditing]=\"!!activeRowsEditing[element.id]\"\r\n [rowIsSelected]=\"selection.isSelected(element)\"\r\n (editRowEmitter)=\"editRow(element, column)\"\r\n (saveEditRowEmitter)=\"saveEditRow(element, column)\"\r\n (cancelEditRowEmitter)=\"cancelEditRow(element, column)\"\r\n (selectRowChange)=\"selectRowChanged($event, element)\"\r\n ></st-material-table-row-cell>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"selectedColumnsString\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: selectedColumnsString\"\r\n (click)=\"rowClickAction() ? rowClickAction()!(row) : null\"\r\n ></tr>\r\n </table>\r\n <mat-paginator\r\n [showFirstLastButtons]=\"true\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"\r\n [length]=\"dataLength()\"\r\n ></mat-paginator>\r\n @if (rowSelecting()) {\r\n <div class=\"st-material-table-selected-rows\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"menu\">\r\n {{ selection.selected.length }}\r\n {{ stTableTranslations.getTranslations()().rowSelected }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (row of selection.selected; track row) {\r\n <button mat-menu-item (click)=\"removeSelectedRow(row)\">\r\n <div class=\"d-flex\">\r\n {{ row[selectionFieldLabel()]\r\n }}<mat-icon style=\"margin-right: 0; margin-left: 10px\"\r\n >delete</mat-icon\r\n >\r\n </div>\r\n </button>\r\n }\r\n </mat-menu>\r\n </div>\r\n }\r\n</div>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { StDateFormatModule } from 'ngx-st-date-format';\r\nimport { MaterialTableComponent } from './components/material-table/material-table.component';\r\nimport { MaterialTableCaptionComponent } from './components/material-table/material-table-caption/material-table-caption.component';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\nimport { StBaseFunctionsModule } from 'ngx-st-base-functions';\r\nimport { MaterialTableOrderColumnDialogComponent } from './components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component';\r\nimport { MaterialTableFilterDialogComponent } from './components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { MaterialTableRowCellComponent } from './components/material-table/material-table-row-cell/material-table-row-cell.component';\r\nimport { StQtyInputModule } from 'ngx-st-qty-input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { StSnackBarModule } from 'ngx-st-snack-bar';\r\nimport { StTablesTranslationsModel } from './models/st-tables-translations.model';\r\nimport { SelectTableComponent } from './components/select-table/select-table.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n MaterialTableCaptionComponent,\r\n MaterialTableComponent,\r\n MaterialTableOrderColumnDialogComponent,\r\n MaterialTableFilterDialogComponent,\r\n MaterialTableRowCellComponent,\r\n SelectTableComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n StDateFormatModule,\r\n MatSortModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n MatBadge,\r\n MatProgressSpinner,\r\n StBaseFunctionsModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n CdkDropList,\r\n CdkDrag,\r\n StQtyInputModule,\r\n MatDatepickerModule,\r\n MatSlideToggleModule,\r\n MatNativeDateModule,\r\n StSnackBarModule,\r\n ],\r\n exports: [MaterialTableComponent, SelectTableComponent],\r\n providers: [MatDatepickerModule],\r\n})\r\nexport class StTablesModule {\r\n constructor(private matIconRegistry: MatIconRegistry) {\r\n this.matIconRegistry.setDefaultFontSetClass('material-symbols-outlined');\r\n }\r\n\r\n static forRoot(config?: {\r\n translations?: Partial<StTablesTranslationsModel>;\r\n }): ModuleWithProviders<StTablesModule> {\r\n return {\r\n ngModule: StTablesModule,\r\n providers: [\r\n {\r\n provide: 'ST_TABLES_CONFIG',\r\n useValue: config || {},\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-tables\r\n */\r\n\r\nexport * from './lib/services/st-tables-translations.service';\r\nexport * from './lib/components/select-table/select-table.component';\r\nexport * from './lib/components/material-table/material-table-caption/material-table-caption.component';\r\nexport * from './lib/components/material-table/material-table.component';\r\nexport * from './lib/models/st-material-table-column.model';\r\nexport * from './lib/models/st-tables-translations.model';\r\nexport * from './lib/ngx-st-tables.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i5","i7","i1","i3.StTablesTranslationsService","i4","i6","i8","i10","i2.StTablesTranslationsService","i3","i1.StTablesTranslationsService","i9","i11","i12.MaterialTableCaptionComponent","i13.MaterialTableRowCellComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-st-tables.mjs","sources":["../../../projects/ngx-st-tables/src/lib/constants/default-translations.ts","../../../projects/ngx-st-tables/src/lib/services/st-tables-translations.service.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/select-table/select-table.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-caption.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-caption/material-table-caption.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table-row-cell/material-table-row-cell.component.html","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table.component.ts","../../../projects/ngx-st-tables/src/lib/components/material-table/material-table.component.html","../../../projects/ngx-st-tables/src/lib/ngx-st-tables.module.ts","../../../projects/ngx-st-tables/src/public-api.ts","../../../projects/ngx-st-tables/src/ngx-st-tables.ts"],"sourcesContent":["import { StTablesTranslationsModel } from '../models/st-tables-translations.model';\r\n\r\nexport const DEFAULT_TRANSLATIONS: StTablesTranslationsModel = {\r\n globalSearch: 'Search',\r\n cancel: 'Cancel',\r\n close: 'Close',\r\n save: 'Save',\r\n reorderColumnsTitle: 'Reorder Columns',\r\n reorderColumns: 'Reorder Columns',\r\n expandAllFilters: 'Expand all filters',\r\n collapseAllFilters: 'Collapse all filters',\r\n clearFilters: 'Clear Filters',\r\n filterTitle: 'Filters',\r\n filter: 'Filter',\r\n searchFilter: 'Search',\r\n filterChooseDate: 'Choose a date',\r\n booleanPickValue: 'Pick Value',\r\n booleanNone: 'None',\r\n booleanYes: 'Yes',\r\n booleanNo: 'No',\r\n customPickValue: 'Pick Value',\r\n customNone: 'None',\r\n rowSelected: 'row selected',\r\n rowSelectColumnLabel: 'Row Select',\r\n rowActionsColumnLabel: 'Row Actions',\r\n};\r\n","import { Inject, Injectable, Optional, signal } from '@angular/core';\r\nimport { StTablesTranslationsModel } from '../models/st-tables-translations.model';\r\nimport { DEFAULT_TRANSLATIONS } from '../constants/default-translations';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class StTablesTranslationsService {\r\n private readonly translations =\r\n signal<StTablesTranslationsModel>(DEFAULT_TRANSLATIONS);\r\n\r\n constructor(\r\n @Optional()\r\n @Inject('ST_TABLES_CONFIG')\r\n private config: { translations?: Partial<StTablesTranslationsModel> }\r\n ) {\r\n if (this.config?.translations) {\r\n this.setTranslations(this.config.translations);\r\n }\r\n }\r\n\r\n setTranslations(translations: Partial<StTablesTranslationsModel>) {\r\n this.translations.set({\r\n ...DEFAULT_TRANSLATIONS,\r\n ...translations,\r\n });\r\n }\r\n\r\n getTranslations() {\r\n return this.translations;\r\n }\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { UntypedFormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'ngx-st-select-table',\r\n templateUrl: './select-table.component.html',\r\n styleUrls: [\r\n './select-table.component.scss',\r\n '../../../../assets/base-table.scss',\r\n ],\r\n})\r\nexport class SelectTableComponent implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n required: boolean = false;\r\n\r\n @Input()\r\n multiple: boolean = false;\r\n\r\n @Input()\r\n initSelected: any;\r\n\r\n @Input()\r\n initSearchVal: any;\r\n\r\n @Input()\r\n searchLabel: string = 'Search';\r\n\r\n @Input()\r\n selectedLabel: string = 'Selected';\r\n\r\n @Input()\r\n set setInitColumns(col: { [col: string]: string }) {\r\n this.columns = ['active', ...Object.keys(col)];\r\n this.initColumns = col;\r\n }\r\n\r\n @Input()\r\n set tableData(data: any[]) {\r\n this.tableSource = new MatTableDataSource(data);\r\n this.tableSource.paginator = this.paginator;\r\n }\r\n\r\n @Input()\r\n set validError(error: boolean) {\r\n this._validError = error;\r\n }\r\n\r\n get validError(): boolean {\r\n return this._validError;\r\n }\r\n\r\n private _validError = false;\r\n\r\n @Output()\r\n returnRowSelected: EventEmitter<any[]> = new EventEmitter<any[]>();\r\n\r\n tableSource: MatTableDataSource<any>;\r\n columns: string[];\r\n initColumns: {\r\n [col: string]: string;\r\n };\r\n search: UntypedFormControl = new UntypedFormControl('');\r\n rowSelected: any[] = [];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges.subscribe(res => {\r\n this.tableSource.filter = res.trim().toLowerCase();\r\n });\r\n setTimeout(() => {\r\n if (this.initSearchVal) {\r\n this.search.setValue(this.initSearchVal);\r\n this.rowClick(this.initSelected);\r\n }\r\n }, 1000);\r\n }\r\n\r\n clearSearch() {\r\n this.search.setValue('');\r\n }\r\n\r\n rowClick(row: any) {\r\n const found = this.rowSelected.find(tmpRow => tmpRow === row);\r\n if (found) {\r\n this.rowSelected = this.rowSelected.filter(tmpRow => tmpRow !== row);\r\n } else {\r\n if (this.multiple) {\r\n this.rowSelected.push(row);\r\n } else {\r\n this.rowSelected = [row];\r\n }\r\n }\r\n this.returnRowSelected.emit(this.rowSelected);\r\n }\r\n\r\n checkActiveRow(row: any) {\r\n return !!this.rowSelected.find(activeRow => activeRow === row);\r\n }\r\n}\r\n","<div class=\"shared-table-selector\">\r\n <p class=\"title\" [ngClass]=\"{ 'error-text': validError }\">\r\n {{ title }} {{ required ? '*' : '' }}\r\n </p>\r\n\r\n <div class=\"search-form row align-items-center\">\r\n <div class=\"col-sm-12 col-md row align-items-center\">\r\n <mat-form-field class=\"col\">\r\n <input\r\n matInput\r\n placeholder=\"{{ searchLabel }}\"\r\n [formControl]=\"search\"\r\n />\r\n </mat-form-field>\r\n <div class=\"clear col-auto\">\r\n <mat-icon (click)=\"clearSearch()\">clear</mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <table mat-table [dataSource]=\"tableSource\">\r\n @for (col of columns; track col) {\r\n <ng-container [matColumnDef]=\"col\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ col === 'active' ? selectedLabel : initColumns[col] }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n @if (col === 'active') {\r\n @if (checkActiveRow(element)) {\r\n <mat-icon class=\"active-row\">done</mat-icon>\r\n }\r\n }\r\n @if (col !== 'active') {\r\n {{ element[col] }}\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: columns\"\r\n (click)=\"rowClick(row)\"\r\n [ngClass]=\"{ active: checkActiveRow(row) }\"\r\n ></tr>\r\n </table>\r\n <mat-paginator [pageSizeOptions]=\"[5]\"></mat-paginator>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Inject,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ViewStMaterialTableColumnModel } from '../../../../models/view/view-st-material-table-column.model';\r\nimport { FormControl, FormGroup, NonNullableFormBuilder } from '@angular/forms';\r\nimport { StTablesTranslationsService } from '../../../../services/st-tables-translations.service';\r\nimport { StMaterialTableFilter } from '../material-table-caption.component';\r\nimport { StMaterialColumnFilterType } from '../../../../models/st-material-table-column.model';\r\n\r\n@Component({\r\n selector: 'st-material-table-filter-dialog',\r\n templateUrl: './material-table-filter-dialog.component.html',\r\n styleUrls: ['./material-table-filter-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialTableFilterDialogComponent implements OnInit {\r\n filterColumns: ViewStMaterialTableColumnModel[] = [];\r\n\r\n formGroup: FormGroup<{\r\n [key: string]: FormGroup<{\r\n value: FormControl<string | number>;\r\n matchMode: FormControl<'contains' | 'equal' | 'between'>;\r\n }>;\r\n }> = this.fb.group({});\r\n\r\n allVisible = true;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public dialogData: {\r\n columns: ViewStMaterialTableColumnModel[];\r\n initFilters: { [key: string]: StMaterialTableFilter };\r\n },\r\n public dialogRef: MatDialogRef<\r\n MaterialTableFilterDialogComponent,\r\n MaterialTableFilterDialogResult\r\n >,\r\n private fb: NonNullableFormBuilder,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n public stTableTranslations: StTablesTranslationsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.filterColumns = this.dialogData.columns\r\n .filter(column => column.filter)\r\n .map(col => {\r\n const valueGroup = this.fb.group({\r\n value: this.fb.control<string | number>(''),\r\n matchMode: this.fb.control<'contains' | 'equal' | 'between'>(\r\n MaterialTableFilterDialogComponent.getBaseMatchModeByType(\r\n col.filterType!\r\n )\r\n ),\r\n });\r\n valueGroup.controls.matchMode.disable();\r\n\r\n this.formGroup.addControl(col.field, valueGroup);\r\n\r\n return {\r\n ...col,\r\n };\r\n });\r\n\r\n if (this.dialogData.initFilters) {\r\n const filtersKeys = Object.keys(this.dialogData.initFilters);\r\n filtersKeys.forEach(key => {\r\n if (this.formGroup.get(key)) {\r\n (\r\n this.formGroup.get([key, 'matchMode']) as FormControl<string>\r\n ).setValue(this.dialogData.initFilters[key].matchMode);\r\n (\r\n this.formGroup.get([key, 'value']) as FormControl<string | number>\r\n ).setValue(this.dialogData.initFilters[key].value as string | number);\r\n }\r\n });\r\n }\r\n }\r\n\r\n clearAllFilters() {\r\n this.filterColumns.forEach(column => {\r\n if (this.formGroup.get(column.field)) {\r\n (\r\n this.formGroup.get([column.field, 'value']) as FormControl<\r\n string | number\r\n >\r\n ).setValue('');\r\n }\r\n });\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n showAllFilters() {\r\n this.filterColumns.forEach(column => {\r\n column.expanded = true;\r\n });\r\n this.allVisible = true;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n hideAllFilters() {\r\n this.filterColumns.forEach(column => {\r\n column.expanded = false;\r\n });\r\n this.allVisible = false;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n saveFilters() {\r\n const filters: { [key: string]: StMaterialTableFilter } = {};\r\n const formValues = this.formGroup.getRawValue();\r\n const filterKeys = Object.keys(formValues);\r\n filterKeys.forEach(key => {\r\n const value = formValues[key].value;\r\n const matchMode = formValues[key].matchMode;\r\n\r\n if (value !== '' && value !== null && value !== undefined) {\r\n filters[key] = {\r\n value: value,\r\n matchMode: matchMode,\r\n };\r\n }\r\n });\r\n\r\n this.dialogRef.close({\r\n filters: filters,\r\n });\r\n }\r\n\r\n static getBaseMatchModeByType(\r\n filterType: StMaterialColumnFilterType\r\n ): 'contains' | 'equal' | 'between' {\r\n if (filterType === 'date') {\r\n return 'between';\r\n } else if (\r\n filterType === 'number' ||\r\n filterType === 'boolean' ||\r\n filterType === 'custom'\r\n ) {\r\n return 'equal';\r\n } else {\r\n return 'contains';\r\n }\r\n }\r\n}\r\n\r\nexport interface MaterialTableFilterDialogResult {\r\n filters: { [key: string]: StMaterialTableFilter };\r\n}\r\n","<h3 mat-dialog-title class=\"filters-dialog-title\">\r\n {{ stTableTranslations.getTranslations()().filterTitle }}\r\n <div class=\"filters-show-hide\">\r\n @if (!allVisible) {\r\n <button\r\n mat-icon-button\r\n (click)=\"showAllFilters()\"\r\n [matTooltip]=\"stTableTranslations.getTranslations()().expandAllFilters\"\r\n >\r\n <mat-icon>unfold_more</mat-icon>\r\n </button>\r\n }\r\n @if (allVisible) {\r\n <button\r\n mat-icon-button\r\n (click)=\"hideAllFilters()\"\r\n [matTooltip]=\"\r\n stTableTranslations.getTranslations()().collapseAllFilters\r\n \"\r\n >\r\n <mat-icon>unfold_less</mat-icon>\r\n </button>\r\n }\r\n <button\r\n mat-icon-button\r\n (click)=\"clearAllFilters()\"\r\n [matTooltip]=\"stTableTranslations.getTranslations()().clearFilters\"\r\n >\r\n <mat-icon>filter_alt_off</mat-icon>\r\n </button>\r\n </div>\r\n</h3>\r\n\r\n<mat-dialog-content>\r\n <form [formGroup]=\"formGroup\">\r\n @for (column of filterColumns; track column.field) {\r\n @switch (column.filterType || column.type || 'string') {\r\n @case ('string') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n [value]=\"'Contains'\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().searchFilter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"column.visible\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n />\r\n <button\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"\r\n formGroup.controls[column.field].controls[\r\n 'value'\r\n ].setValue('')\r\n \"\r\n >\r\n <mat-icon style=\"font-size: 22px\">close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('number') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"number\"\r\n [disabled]=\"column.visible\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('date') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filterChooseDate\r\n }}</mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"picker\"\r\n [disabled]=\"column.visible\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n />\r\n <mat-datepicker-toggle\r\n matIconSuffix\r\n [for]=\"picker\"\r\n ></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('boolean') {\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().booleanPickValue\r\n }}</mat-label>\r\n <mat-select\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n >\r\n <mat-option value=\"\">{{\r\n stTableTranslations.getTranslations()().booleanNone\r\n }}</mat-option>\r\n <mat-option [value]=\"true\">{{\r\n stTableTranslations.getTranslations()().booleanYes\r\n }}</mat-option>\r\n <mat-option [value]=\"false\">{{\r\n stTableTranslations.getTranslations()().booleanNo\r\n }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n @case ('custom') {\r\n @if (column.customFilterOptions) {}\r\n <div class=\"filter\">\r\n <ng-container\r\n *ngTemplateOutlet=\"filterHeader; context: { $implicit: column }\"\r\n ></ng-container>\r\n <div\r\n class=\"filter-content row\"\r\n [ngClass]=\"{ hide: !column.expanded }\"\r\n >\r\n <div class=\"col-auto\">\r\n <mat-form-field appearance=\"outline\" style=\"width: 100px\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().filter\r\n }}</mat-label>\r\n <input\r\n matInput\r\n type=\"text\"\r\n [disabled]=\"true\"\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['matchMode']\r\n \"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>{{\r\n stTableTranslations.getTranslations()().customPickValue\r\n }}</mat-label>\r\n <mat-select\r\n [formControl]=\"\r\n formGroup.controls[column.field].controls['value']\r\n \"\r\n >\r\n <mat-option value=\"\">{{\r\n stTableTranslations.getTranslations()().customNone\r\n }}</mat-option>\r\n @for (option of column.customFilterOptions; track option) {\r\n <mat-option [value]=\"option.value\">\r\n {{ option.label }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n }\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button mat-flat-button mat-dialog-close>\r\n {{ stTableTranslations.getTranslations()().cancel }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" (click)=\"saveFilters()\">\r\n {{ stTableTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n\r\n<ng-template #filterHeader let-column>\r\n <div\r\n class=\"filter-title row justify-content-between\"\r\n [ngClass]=\"{\r\n 'value-set': formGroup.controls[column.field].controls['value'].value\r\n }\"\r\n >\r\n <p>\r\n {{ column.header }}\r\n </p>\r\n\r\n @if (column.expanded) {\r\n <mat-icon (click)=\"column.expanded = !column.expanded\"\r\n >keyboard_arrow_up</mat-icon\r\n >\r\n } @else {\r\n <mat-icon (click)=\"column.expanded = !column.expanded\"\r\n >keyboard_arrow_down</mat-icon\r\n >\r\n }\r\n </div>\r\n</ng-template>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { ViewStMaterialTableColumnModel } from '../../../../models/view/view-st-material-table-column.model';\r\nimport { StTablesTranslationsService } from '../../../../services/st-tables-translations.service';\r\n\r\n@Component({\r\n selector: 'st-material-table-order-column-dialog',\r\n templateUrl: './material-table-order-column-dialog.component.html',\r\n styleUrls: ['./material-table-order-column-dialog.component.scss'],\r\n})\r\nexport class MaterialTableOrderColumnDialogComponent implements OnInit {\r\n columns: ViewStMaterialTableColumnModel[] = [];\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public dialogData: { columns: ViewStMaterialTableColumnModel[] },\r\n public dialogRef: MatDialogRef<\r\n MaterialTableOrderColumnDialogComponent,\r\n MaterialTableOrderColumnDialogResult\r\n >,\r\n public stTablesTranslations: StTablesTranslationsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.columns = this.dialogData.columns.map(column => ({ ...column }));\r\n }\r\n\r\n drop(event: CdkDragDrop<string[]>) {\r\n moveItemInArray(this.columns, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n saveOrder() {\r\n this.dialogRef.close({\r\n columnsOrder: this.columns.map(column => column.field),\r\n });\r\n }\r\n}\r\n\r\nexport interface MaterialTableOrderColumnDialogResult {\r\n columnsOrder: string[];\r\n}\r\n","<h3 mat-dialog-title>\r\n {{ stTablesTranslations.getTranslations()().reorderColumns }}\r\n</h3>\r\n<mat-dialog-content>\r\n <div\r\n cdkDropList\r\n class=\"reorder-column-list\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n >\r\n @for (column of columns; track column.field) {\r\n <div class=\"reorder-column-element\" cdkDrag>\r\n <div class=\"row\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n <p>{{ column.selectColumnLabel || column.header }}</p>\r\n </div>\r\n @if (!column.visible) {\r\n <mat-icon class=\"column-hidden\">visibility_off</mat-icon>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <div class=\"row justify-content-between\" style=\"width: 100%\">\r\n <button mat-flat-button mat-dialog-close>\r\n {{ stTablesTranslations.getTranslations()().close }}\r\n </button>\r\n <button mat-flat-button color=\"accent\" (click)=\"saveOrder()\">\r\n {{ stTablesTranslations.getTranslations()().save }}\r\n </button>\r\n </div>\r\n</mat-dialog-actions>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnInit,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { ViewStMaterialTableColumnModel } from '../../../models/view/view-st-material-table-column.model';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n StBaseService,\r\n StSubscribeDestroyComponent,\r\n} from 'ngx-st-base-functions';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n filter,\r\n take,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport {\r\n MaterialTableFilterDialogComponent,\r\n MaterialTableFilterDialogResult,\r\n} from './material-table-filter-dialog/material-table-filter-dialog.component';\r\nimport { MaterialTableOrderColumnDialogComponent } from './material-table-order-column-dialog/material-table-order-column-dialog.component';\r\nimport { StTablesTranslationsService } from '../../../services/st-tables-translations.service';\r\n\r\n@Component({\r\n selector: 'st-material-table-caption',\r\n templateUrl: './material-table-caption.component.html',\r\n styleUrls: ['./material-table-caption.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialTableCaptionComponent\r\n extends StSubscribeDestroyComponent\r\n implements OnInit\r\n{\r\n showGlobalSearch = input<boolean>();\r\n\r\n tableTitle = input('');\r\n\r\n allowPickColumns = input<boolean>(true);\r\n\r\n allowReorderColumns = input<boolean>(true);\r\n\r\n initGlobalSearch = input('');\r\n\r\n initFilters = input<{\r\n [key: string]: StMaterialTableFilter;\r\n }>({});\r\n\r\n showCreateButton = input<boolean>(false);\r\n\r\n createButtonLabel = input('Create');\r\n\r\n createButtonAction = input<() => void>(() => {});\r\n\r\n @Input()\r\n set columns(data: ViewStMaterialTableColumnModel[]) {\r\n this._columns = data ? data : [];\r\n this.updateColumns();\r\n }\r\n\r\n get columns() {\r\n return this._columns;\r\n }\r\n\r\n private _columns: ViewStMaterialTableColumnModel[] = [];\r\n\r\n captionDataChanged = output<ICaptionDataChanged>();\r\n\r\n resetTableSettings = output<boolean>();\r\n\r\n showFilterButton = false;\r\n\r\n selectedColumns = new FormControl(<string[]>[]);\r\n globalSearch = new FormControl('');\r\n\r\n activeFiltersCount = 0;\r\n\r\n private columnsOrder: string[] = [];\r\n private filters: { [key: string]: StMaterialTableFilter } = {};\r\n\r\n constructor(\r\n public stTableTranslations: StTablesTranslationsService,\r\n private dialog: MatDialog\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.globalSearch.setValue(this.initGlobalSearch() || '');\r\n this.filters = this.initFilters() || {};\r\n this.setActiveFiltersCount();\r\n\r\n this.selectedColumns.valueChanges\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n ),\r\n debounceTime(400)\r\n )\r\n .subscribe(value => {\r\n this.emitCaptionDataChanged();\r\n });\r\n\r\n this.globalSearch.valueChanges\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n ),\r\n debounceTime(400)\r\n )\r\n .subscribe(value => {\r\n this.emitCaptionDataChanged();\r\n });\r\n }\r\n\r\n openFilterDialog() {\r\n this.dialog\r\n .open(MaterialTableFilterDialogComponent, {\r\n data: {\r\n initFilters: this.filters,\r\n columns: this.columns,\r\n },\r\n maxWidth: '450px',\r\n width: '100%',\r\n autoFocus: false,\r\n })\r\n .afterClosed()\r\n .pipe(take(1), filter(StBaseService.notNull))\r\n .subscribe((res: MaterialTableFilterDialogResult) => {\r\n this.filters = res.filters;\r\n this.setActiveFiltersCount();\r\n this.emitCaptionDataChanged();\r\n });\r\n }\r\n\r\n openReorderColumnsDialog() {\r\n this.dialog\r\n .open(MaterialTableOrderColumnDialogComponent, {\r\n data: {\r\n columns: this.columns,\r\n },\r\n maxWidth: '450px',\r\n width: '100%',\r\n autoFocus: false,\r\n })\r\n .afterClosed()\r\n .pipe(take(1), filter(StBaseService.notNull))\r\n .subscribe((result: { columnsOrder: string[] }) => {\r\n this.columnsOrder = result.columnsOrder;\r\n this.emitCaptionDataChanged();\r\n });\r\n }\r\n\r\n resetTable() {\r\n this.resetTableSettings.emit(true);\r\n }\r\n\r\n // clearAllFilters() {\r\n // const filtersKeys = Object.keys(this.filters);\r\n // filtersKeys.forEach(key => {\r\n // if (this.filters[key]) {\r\n // this.filters[key] = '';\r\n // }\r\n // });\r\n //\r\n // this.setActiveFiltersCount();\r\n // this.emitCaptionDataChanged();\r\n // }\r\n\r\n private emitCaptionDataChanged() {\r\n this.captionDataChanged.emit({\r\n selectedColumns: this.selectedColumns.value || [],\r\n globalSearch: this.globalSearch.value || '',\r\n columnsOrder: this.columnsOrder || [],\r\n filters: this.filters,\r\n });\r\n }\r\n\r\n private updateColumns() {\r\n const columnsFilters = this._columns.filter(column => column.filter);\r\n this.showFilterButton = columnsFilters.length > 0;\r\n this.selectedColumns.setValue(\r\n this._columns.filter(col => col.visible).map(col => col.field) || []\r\n );\r\n this.columnsOrder = this._columns.map(col => col.field) || [];\r\n }\r\n\r\n private setActiveFiltersCount() {\r\n const filtersKeys = Object.keys(this.filters);\r\n this.activeFiltersCount =\r\n filtersKeys.filter(key => this.filters[key]).length || 0;\r\n }\r\n}\r\n\r\nexport interface ICaptionDataChanged {\r\n selectedColumns: string[];\r\n globalSearch: string;\r\n columnsOrder: string[];\r\n filters: { [key: string]: StMaterialTableFilter };\r\n}\r\n\r\nexport interface StMaterialTableFilter {\r\n value: string | number | [string | null, string | null];\r\n matchMode: 'equal' | 'contains' | 'between';\r\n}\r\n","@if (\r\n allowPickColumns() ||\r\n tableTitle() ||\r\n allowReorderColumns() ||\r\n showGlobalSearch() ||\r\n showFilterButton ||\r\n showCreateButton()\r\n) {\r\n <div\r\n class=\"st-material-table-caption row align-items-center\"\r\n [ngClass]=\"{\r\n 'justify-content-between':\r\n (allowPickColumns() || tableTitle() || allowReorderColumns()) &&\r\n (showGlobalSearch() || showFilterButton || showCreateButton()),\r\n 'justify-content-end':\r\n !allowPickColumns() && !tableTitle() && !allowReorderColumns()\r\n }\"\r\n >\r\n @if (allowPickColumns() || tableTitle() || allowReorderColumns()) {\r\n <div class=\"col-auto d-flex align-items-center\">\r\n @if (tableTitle()) {\r\n <p class=\"table-title\">{{ tableTitle() }}</p>\r\n }\r\n\r\n @if (allowPickColumns()) {\r\n <mat-form-field appearance=\"outline\" class=\"caption-select-columns\">\r\n <mat-select [formControl]=\"selectedColumns\" multiple>\r\n <mat-select-trigger>\r\n {{ selectedColumns.value ? selectedColumns.value!.length : 0 }}\r\n columns selected\r\n </mat-select-trigger>\r\n @for (column of columns; track column.field) {\r\n <mat-option\r\n [value]=\"column.field\"\r\n [disabled]=\"column.type === 'actions'\"\r\n style=\"text-transform: capitalize\"\r\n >{{\r\n column.selectColumnLabel || column.header || column.field\r\n }}</mat-option\r\n >\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n\r\n @if (allowPickColumns() || tableTitle()) {\r\n <button mat-icon-button (click)=\"resetTable()\">\r\n <mat-icon class=\"reorder-icon\">refresh</mat-icon>\r\n </button>\r\n }\r\n\r\n @if (allowReorderColumns()) {\r\n <button mat-icon-button (click)=\"openReorderColumnsDialog()\">\r\n <mat-icon class=\"reorder-icon\">low_priority</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @if (showGlobalSearch() || showFilterButton || showCreateButton()) {\r\n <div class=\"col-auto d-flex align-items-center gap-1\">\r\n @if (showFilterButton) {\r\n <!-- @if (activeFiltersCount) {-->\r\n <!-- <button-->\r\n <!-- mat-icon-button-->\r\n <!-- (click)=\"clearAllFilters()\"-->\r\n <!-- [matTooltip]=\"'Clear Filters'\"-->\r\n <!-- >-->\r\n <!-- <mat-icon>filter_alt_off</mat-icon>-->\r\n <!-- </button>-->\r\n <!-- }-->\r\n\r\n <button mat-icon-button (click)=\"openFilterDialog()\">\r\n <mat-icon\r\n [matBadge]=\"activeFiltersCount\"\r\n [matBadgeHidden]=\"!activeFiltersCount\"\r\n [matBadgeSize]=\"'small'\"\r\n matBadgePosition=\"before\"\r\n >filter_alt</mat-icon\r\n >\r\n </button>\r\n }\r\n\r\n @if (showGlobalSearch()) {\r\n <mat-form-field appearance=\"outline\" class=\"search-field\">\r\n <input\r\n matInput\r\n [formControl]=\"globalSearch\"\r\n [placeholder]=\"\r\n stTableTranslations.getTranslations()().globalSearch\r\n \"\r\n />\r\n <button\r\n matSuffix\r\n mat-icon-button\r\n aria-label=\"Clear\"\r\n (click)=\"globalSearch.setValue('')\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n }\r\n\r\n @if (showCreateButton()) {\r\n <button\r\n color=\"primary\"\r\n mat-flat-button\r\n (click)=\"createButtonAction()()\"\r\n >\r\n {{ createButtonLabel() }}\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n input,\r\n output,\r\n} from '@angular/core';\r\nimport { StMaterialTableColumnModel } from '../../../models/st-material-table-column.model';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\n\r\n@Component({\r\n selector: 'st-material-table-row-cell',\r\n templateUrl: './material-table-row-cell.component.html',\r\n styleUrls: ['./material-table-row-cell.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialTableRowCellComponent implements OnInit {\r\n column = input.required<StMaterialTableColumnModel>();\r\n\r\n rowData = input.required<{\r\n [prop: string]: any;\r\n }>();\r\n\r\n rowDataCopy = input<{\r\n [prop: string]: any;\r\n }>();\r\n\r\n @Input()\r\n set rowEditing(data: boolean) {\r\n this._rowEditing = data;\r\n }\r\n\r\n get rowEditing(): boolean {\r\n return this._rowEditing;\r\n }\r\n\r\n private _rowEditing: boolean = false;\r\n\r\n rowIsSelected = input<boolean>(false);\r\n\r\n saveEditRowEmitter = output<void>();\r\n\r\n cancelEditRowEmitter = output<void>();\r\n\r\n editRowEmitter = output<void>();\r\n\r\n selectRowChange = output<boolean>();\r\n\r\n mobileView = false;\r\n\r\n actionIconColorDef: {\r\n [key: string]: 'primary' | 'warn';\r\n } = {\r\n edit: 'primary',\r\n delete: 'warn',\r\n };\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n window.addEventListener('resize', event => {\r\n this.checkWidthSize();\r\n });\r\n }\r\n\r\n saveRow() {\r\n this.saveEditRowEmitter.emit();\r\n }\r\n\r\n cancelRow() {\r\n this.cancelEditRowEmitter.emit();\r\n }\r\n\r\n editRow() {\r\n this.editRowEmitter.emit();\r\n }\r\n\r\n selectRow(event: { checked: boolean }) {\r\n if (event) {\r\n this.selectRowChange.emit(event.checked);\r\n }\r\n }\r\n\r\n private checkWidthSize() {\r\n this.mobileView = document.body.clientWidth <= 1100;\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n}\r\n","@switch (column().type || 'string') {\r\n @case ('custom-template') {\r\n <ng-container\r\n [ngTemplateOutlet]=\"column().customTemplate!\"\r\n [ngTemplateOutletContext]=\"{ data: rowData() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('actions') {\r\n @if (column().actions) {\r\n @if (\r\n (!column().actionsInMenu && !mobileView) ||\r\n (mobileView && column().actions!.length <= 1)\r\n ) {\r\n <div [ngStyle]=\"{ float: column().flexRight ? 'right' : 'none' }\">\r\n @for (action of column().actions; track action) {\r\n @if ((action.show && action.show(rowData())) || !action.show) {\r\n @if (!action.url && action.action) {\r\n <button\r\n class=\"action-icon-button\"\r\n type=\"button\"\r\n mat-icon-button\r\n [color]=\"\r\n actionIconColorDef[action.iconName]\r\n ? actionIconColorDef[action.iconName]\r\n : action.iconColor\r\n \"\r\n [matTooltip]=\"action.tooltipName || ''\"\r\n [matTooltipDisabled]=\"!action.tooltipName\"\r\n (click)=\"$event.stopPropagation(); action.action!(rowData())\"\r\n >\r\n <mat-icon>{{ action.iconName }}</mat-icon>\r\n </button>\r\n }\r\n @if (action.url) {\r\n <a [routerLink]=\"action.url\">\r\n <button\r\n class=\"action-icon-button\"\r\n type=\"button\"\r\n mat-icon-button\r\n [color]=\"\r\n actionIconColorDef[action.iconName]\r\n ? actionIconColorDef[action.iconName]\r\n : action.iconColor\r\n \"\r\n [matTooltip]=\"action.tooltipName || ''\"\r\n [matTooltipDisabled]=\"!action.tooltipName\"\r\n >\r\n <mat-icon>{{ action.iconName }}</mat-icon>\r\n </button>\r\n </a>\r\n }\r\n }\r\n }\r\n </div>\r\n }\r\n @if (\r\n column().actionsInMenu || (mobileView && column().actions!.length > 1)\r\n ) {\r\n <button\r\n mat-icon-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (action of column().actions; track action) {\r\n @if ((action.show && action.show(rowData())) || !action.show) {\r\n @if (!action.url && action.action) {\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n (click)=\"$event.stopPropagation(); action.action!(rowData())\"\r\n >\r\n {{ action.tooltipName }}\r\n </button>\r\n }\r\n @if (action.url) {\r\n <a [routerLink]=\"action.url\">\r\n <button type=\"button\" mat-menu-item>\r\n {{ action.tooltipName }}\r\n </button>\r\n </a>\r\n }\r\n }\r\n }\r\n </mat-menu>\r\n }\r\n }\r\n }\r\n\r\n @case ('string') {\r\n <ng-container\r\n *ngTemplateOutlet=\"baseFieldCell; context: { $implicit: column() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('number') {\r\n <ng-container\r\n *ngTemplateOutlet=\"baseFieldCell; context: { $implicit: column() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('boolean') {\r\n <ng-container\r\n *ngTemplateOutlet=\"baseFieldCell; context: { $implicit: column() }\"\r\n ></ng-container>\r\n }\r\n\r\n @case ('date') {\r\n {{ rowData()[column().field] | stDateTimeFormatPipe }}\r\n }\r\n\r\n @case ('actions-row-editing') {\r\n <div class=\"row justify-content-end\">\r\n @if (rowEditing) {\r\n <button\r\n mat-icon-button\r\n color=\"accent\"\r\n (click)=\"saveRow()\"\r\n [matTooltip]=\"'Save row'\"\r\n >\r\n <mat-icon>done</mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"cancelRow()\"\r\n [matTooltip]=\"'Cancel row'\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n } @else {\r\n <button\r\n mat-icon-button\r\n color=\"primary\"\r\n (click)=\"editRow()\"\r\n [matTooltip]=\"'Edit row'\"\r\n >\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n @case ('actions-row-selecting') {\r\n <mat-checkbox\r\n color=\"primary\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"selectRow($event)\"\r\n [checked]=\"rowIsSelected()\"\r\n >\r\n </mat-checkbox>\r\n }\r\n}\r\n\r\n<ng-template #baseFieldCell let-column>\r\n @if (rowEditing && column.allowEditColumn) {\r\n <mat-form-field appearance=\"outline\">\r\n @if (column.type === 'string') {\r\n <input matInput [(ngModel)]=\"rowDataCopy()![column.field]\" />\r\n }\r\n @if (column.type === 'number') {\r\n <input\r\n matInput\r\n type=\"number\"\r\n [(ngModel)]=\"rowDataCopy()![column.field]\"\r\n />\r\n }\r\n @if (column.type === 'boolean') {\r\n <mat-checkbox [(ngModel)]=\"rowDataCopy()![column.field]\"></mat-checkbox>\r\n }\r\n </mat-form-field>\r\n } @else {\r\n <div>\r\n @if (column.translateValue) {\r\n {{ column.translateValue![rowData()[column.field]] || '' }}\r\n }\r\n @if (column.customValueDisplay) {\r\n {{ column.customValueDisplay(rowData()[column.field]) }}\r\n }\r\n @if (!column.translateValue && !column.customValueDisplay) {\r\n {{ rowData()[column.field] }}\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n ViewEncapsulation,\r\n input,\r\n output,\r\n model,\r\n} from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, SortDirection } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { StMaterialTableColumnModel } from '../../models/st-material-table-column.model';\r\nimport { ViewStMaterialTableColumnModel } from '../../models/view/view-st-material-table-column.model';\r\nimport {\r\n ICaptionDataChanged,\r\n StMaterialTableFilter,\r\n} from './material-table-caption/material-table-caption.component';\r\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\nimport {\r\n StBaseService,\r\n StSubscribeDestroyComponent,\r\n} from 'ngx-st-base-functions';\r\nimport { StSnackBarService } from 'ngx-st-snack-bar';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { StTablesTranslationsService } from '../../services/st-tables-translations.service';\r\n\r\n@Component({\r\n selector: 'ngx-st-material-table',\r\n templateUrl: './material-table.component.html',\r\n styleUrls: [\r\n './material-table.component.scss',\r\n '../../../../assets/base-table.scss',\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MaterialTableComponent\r\n extends StSubscribeDestroyComponent\r\n implements OnInit, AfterViewInit\r\n{\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n showGlobalSearch = input(false);\r\n\r\n tableTitle = input('');\r\n\r\n pageSize = input<number>(10);\r\n\r\n dataLength = input<number>(0);\r\n\r\n allowPickColumns = input<boolean>(false);\r\n\r\n allowReorderColumns = input<boolean>(false);\r\n\r\n localStorageName = input<string>('');\r\n\r\n lazyLoading = input<boolean>(false);\r\n\r\n isLoading = input<boolean>(false);\r\n\r\n initColumns = model<StMaterialTableColumnModel[]>([]);\r\n\r\n rowClickAction = input<(row: any) => void>();\r\n\r\n @Input()\r\n set data(data: any[]) {\r\n if (this.rowEditing() || this.rowSelecting()) {\r\n if (data.length > 0 && !data[0].id) {\r\n data = data.map(row => {\r\n return {\r\n ...row,\r\n id: StBaseService.generateGUID(),\r\n };\r\n });\r\n }\r\n }\r\n this._data = data || [];\r\n\r\n if (this.tableSource) {\r\n this.tableSource.data = data;\r\n if (!this.lazyLoading() && this.localStorageData) {\r\n this.paginator.pageIndex = this.localStorageData.pageIndex;\r\n //@ts-ignore\r\n this.paginator._emitPageEvent(this.localStorageData.pageIndex);\r\n }\r\n }\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n get data(): any[] {\r\n return this._data;\r\n }\r\n\r\n rowEditing = input<boolean>(false);\r\n\r\n rowSelecting = input(false);\r\n\r\n selectionFieldLabel = input('');\r\n\r\n showCreateButton = input<boolean>(false);\r\n\r\n createButtonLabel = input('Create');\r\n\r\n createButtonAction = input<() => void>(() => {});\r\n\r\n loadData = output<StMaterialTableLoadData>();\r\n\r\n saveNewRow = output<any>();\r\n\r\n selectRowChange = output<any[]>();\r\n\r\n private _data: any[] = [];\r\n\r\n columns: ViewStMaterialTableColumnModel[] = [];\r\n selectedColumns: ViewStMaterialTableColumnModel[] = [];\r\n selectedColumnsString: string[] = [];\r\n\r\n tableSource: MatTableDataSource<any>;\r\n\r\n initFilters: { [key: string]: StMaterialTableFilter } = {};\r\n initGlobalSearch: string = '';\r\n\r\n showTable = true;\r\n\r\n activeRowsEditing: { [rowId: string]: { [prop: string]: any } } = {};\r\n selection = new SelectionModel<any>(true, []);\r\n\r\n private localStorageData: StMaterialTableLocalStorage;\r\n\r\n constructor(\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private snackbar: StSnackBarService,\r\n public stTableTranslations: StTablesTranslationsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.rowSelecting()) {\r\n this.initColumns().unshift({\r\n field: 'actions-row-selecting',\r\n header: '',\r\n type: 'actions-row-selecting',\r\n sort: false,\r\n filter: false,\r\n width: '60px',\r\n selectColumnLabel:\r\n this.stTableTranslations.getTranslations()().rowSelectColumnLabel,\r\n });\r\n } else {\r\n this.initColumns.update(oldVal =>\r\n oldVal.filter(column => column.field !== 'action-row-selecting')\r\n );\r\n }\r\n\r\n if (this.rowEditing()) {\r\n this.initColumns().push({\r\n field: 'actions-row-editing',\r\n header: '',\r\n type: 'actions-row-editing',\r\n sort: false,\r\n filter: false,\r\n width: '110px',\r\n selectColumnLabel:\r\n this.stTableTranslations.getTranslations()().rowActionsColumnLabel,\r\n });\r\n } else {\r\n this.initColumns.update(oldVal =>\r\n oldVal.filter(column => column.field !== 'action-row-editing')\r\n );\r\n }\r\n\r\n this.initColumns().forEach(column => {\r\n if (column.field === 'actions' && !column.type) {\r\n column.type = 'actions';\r\n }\r\n\r\n if (!column.filterType && column.filter) {\r\n if (column.type === 'string') {\r\n column.filterType = 'string';\r\n } else if (column.type === 'number') {\r\n column.filterType = 'number';\r\n } else if (column.type === 'date') {\r\n column.filterType = 'date';\r\n } else if (column.type === 'custom-template') {\r\n column.filterType = 'custom';\r\n } else if (column.type === 'boolean') {\r\n column.filterType = 'boolean';\r\n }\r\n }\r\n });\r\n\r\n this.loadLocalStorageData();\r\n this.setDisplayedColumns();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setInitTable();\r\n this.setSortPageSubscription();\r\n }\r\n\r\n captionDataChanged(event: ICaptionDataChanged) {\r\n let loadLazyData = false;\r\n if (\r\n event.globalSearch !== this.localStorageData.globalSearch ||\r\n event.filters !== this.localStorageData.filters\r\n ) {\r\n loadLazyData = true;\r\n }\r\n\r\n this.localStorageData = {\r\n ...event,\r\n pageSize: this.paginator.pageSize,\r\n pageIndex: this.paginator.pageIndex,\r\n sortField: this.sort.active,\r\n sortOrder: this.sort.direction,\r\n };\r\n\r\n this.setColumnsOrder();\r\n this.setColumnsVisible();\r\n this.setSelectedColumns();\r\n this.updateDataToLocalStorage();\r\n\r\n if (loadLazyData) {\r\n this.emitLazyLoading();\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n resetTableSettings() {\r\n this.showTable = false;\r\n this.changeDetectorRef.markForCheck();\r\n\r\n this.setNewEmptyLocalStorageData();\r\n this.updateDataToLocalStorage();\r\n this.emitLazyLoading();\r\n this.initFilters = {};\r\n this.initGlobalSearch = '';\r\n this.sort.sort({ id: '', start: 'asc', disableClear: false });\r\n\r\n setTimeout(() => {\r\n this.showTable = true;\r\n this.setDisplayedColumns();\r\n this.setInitTable();\r\n this.changeDetectorRef.markForCheck();\r\n }, 100);\r\n }\r\n\r\n editRow(row: any, column: ViewStMaterialTableColumnModel) {\r\n this.activeRowsEditing[row.id] = { ...row };\r\n }\r\n\r\n saveEditRow(row: any, column: ViewStMaterialTableColumnModel) {\r\n let allowSave = true;\r\n\r\n this.columns\r\n .filter(col => col.allowEditColumn)\r\n .forEach(col => {\r\n if (col.customEditRowValidator) {\r\n const result = col.customEditRowValidator(\r\n this.activeRowsEditing[row.id][col.field],\r\n row[col.field],\r\n row\r\n );\r\n if (!result.isValid) {\r\n allowSave = false;\r\n this.snackbar.error(result.errorMessage);\r\n }\r\n }\r\n });\r\n if (allowSave) {\r\n this.saveNewRow.emit(this.activeRowsEditing[row.id]);\r\n this.columns\r\n .filter(col => col.allowEditColumn)\r\n .forEach(col => {\r\n row[col.field] = this.activeRowsEditing[row.id][col.field];\r\n });\r\n this.changeDetectorRef.markForCheck();\r\n\r\n delete this.activeRowsEditing[row.id];\r\n }\r\n }\r\n\r\n cancelEditRow(row: any, column: ViewStMaterialTableColumnModel) {\r\n delete this.activeRowsEditing[row.id];\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.tableSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n toggleAllRows() {\r\n if (this.isAllSelected()) {\r\n this.selection.clear();\r\n return;\r\n }\r\n\r\n this.selection.select(...this.tableSource.data);\r\n\r\n this.selectRowChange.emit(this.selection.selected);\r\n }\r\n\r\n removeSelectedRow(row: any) {\r\n this.selection.deselect(row);\r\n this.selectRowChange.emit(this.selection.selected);\r\n }\r\n\r\n selectRowChanged(value: boolean, row: any) {\r\n if (value) {\r\n this.selection.select(row);\r\n } else {\r\n this.selection.deselect(row);\r\n }\r\n\r\n this.changeDetectorRef.markForCheck();\r\n this.selectRowChange.emit(this.selection.selected);\r\n }\r\n\r\n private createCustomFilterForLocalTable() {\r\n let filterFunction = (data: any, filter: string): boolean => {\r\n const searchTerms: {\r\n [column: string]: StMaterialTableFilter;\r\n // @ts-ignore\r\n stGlobalSearch: string;\r\n } = JSON.parse(filter);\r\n const searchTermsKeys = Object.keys(searchTerms);\r\n let searchOk = true;\r\n let searchOkGlobal = true;\r\n\r\n searchTermsKeys.forEach((key: string) => {\r\n if (\r\n key !== 'stGlobalSearch' &&\r\n this.selectedColumnsString.includes(key)\r\n ) {\r\n searchOk =\r\n searchOk &&\r\n data[key]\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(searchTerms[key].value.toString().toLowerCase()) !== -1;\r\n }\r\n });\r\n if (searchTerms.stGlobalSearch) {\r\n searchOkGlobal = false;\r\n this.selectedColumnsString.forEach(col => {\r\n if (data[col]) {\r\n searchOkGlobal =\r\n searchOkGlobal ||\r\n data[col]\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(\r\n searchTerms.stGlobalSearch.toString().toLowerCase()\r\n ) !== -1;\r\n }\r\n });\r\n }\r\n\r\n return searchOk && searchOkGlobal;\r\n };\r\n return filterFunction;\r\n }\r\n\r\n private emitLazyLoading() {\r\n if (this.lazyLoading()) {\r\n this.loadData.emit({\r\n first: this.paginator.pageIndex * this.paginator.pageSize,\r\n rows: this.paginator.pageSize,\r\n globalFilterColumns: this.selectedColumnsString,\r\n globalFilter: this.localStorageData.globalSearch,\r\n sortField: this.localStorageData.sortField,\r\n sortOrder: this.localStorageData.sortOrder,\r\n filters: this.localStorageData.filters,\r\n });\r\n } else {\r\n this.tableSource.filter = JSON.stringify({\r\n ...this.localStorageData.filters,\r\n stGlobalSearch: this.localStorageData.globalSearch,\r\n });\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n private updateDataToLocalStorage() {\r\n if (this.localStorageName()) {\r\n localStorage.setItem(\r\n this.localStorageName()!,\r\n JSON.stringify(this.localStorageData)\r\n );\r\n }\r\n }\r\n\r\n private setInitTable() {\r\n this.tableSource = new MatTableDataSource(this._data);\r\n\r\n this.paginator.pageSize = this.localStorageData.pageSize;\r\n this.paginator.pageIndex = this.localStorageData.pageIndex;\r\n\r\n if (this.localStorageData.sortField && this.localStorageData.sortOrder) {\r\n const disableClear = false;\r\n this.sort.sort({ id: '', start: 'asc', disableClear });\r\n this.sort.sort({\r\n id: this.localStorageData.sortField,\r\n start: this.localStorageData.sortOrder,\r\n disableClear,\r\n });\r\n }\r\n\r\n if (!this.lazyLoading()!) {\r\n this.tableSource.paginator = this.paginator;\r\n this.tableSource.sort = this.sort;\r\n this.tableSource.filterPredicate = this.createCustomFilterForLocalTable();\r\n }\r\n\r\n this.emitLazyLoading();\r\n }\r\n\r\n private setSortPageSubscription() {\r\n this.sort.sortChange\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n )\r\n )\r\n .subscribe(res => {\r\n this.localStorageData = {\r\n ...this.localStorageData,\r\n sortField: res.active,\r\n sortOrder: res.direction,\r\n };\r\n this.updateDataToLocalStorage();\r\n this.emitLazyLoading();\r\n });\r\n\r\n this.paginator.page\r\n .pipe(\r\n takeUntil(this.ngDestroyed$),\r\n distinctUntilChanged(\r\n (prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)\r\n )\r\n )\r\n .subscribe(res => {\r\n this.localStorageData = {\r\n ...this.localStorageData,\r\n pageIndex: this.paginator.pageIndex,\r\n pageSize: this.paginator.pageSize,\r\n };\r\n\r\n this.updateDataToLocalStorage();\r\n this.emitLazyLoading();\r\n });\r\n }\r\n\r\n private setDisplayedColumns() {\r\n this.columns = this.initColumns().map(col => {\r\n return {\r\n ...col,\r\n type: col.type ? col.type : 'string',\r\n visible: true,\r\n expanded: true,\r\n isEditing: false,\r\n };\r\n });\r\n\r\n this.setColumnsOrder();\r\n this.setColumnsVisible();\r\n this.setSelectedColumns();\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private setColumnsOrder() {\r\n if (this.localStorageData?.columnsOrder) {\r\n this.columns = [\r\n ...this.localStorageData.columnsOrder\r\n .filter(column => this.columns.find(col => col.field === column))\r\n .map(column => this.columns.find(col => col.field === column)!),\r\n ...this.columns.filter(\r\n column => !this.localStorageData.columnsOrder.includes(column.field)\r\n ),\r\n ];\r\n }\r\n }\r\n\r\n private setColumnsVisible() {\r\n if (this.localStorageData?.selectedColumns) {\r\n this.columns = this.columns.map(col => {\r\n return {\r\n ...col,\r\n visible:\r\n this.localStorageData.selectedColumns.includes(col.field) ||\r\n !this.localStorageData.columnsOrder.includes(col.field),\r\n };\r\n });\r\n }\r\n }\r\n\r\n private setSelectedColumns() {\r\n this.selectedColumns = this.columns.filter(col => {\r\n return col.visible;\r\n });\r\n this.selectedColumnsString = this.selectedColumns.map(col => col.field);\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n private loadLocalStorageData() {\r\n if (this.localStorageName()) {\r\n const localStorageData = localStorage.getItem(this.localStorageName()!);\r\n\r\n if (localStorageData) {\r\n this.localStorageData = JSON.parse(localStorageData);\r\n const filters = this.validOldFiltersToNewFormat(\r\n this.localStorageData.filters\r\n );\r\n this.localStorageData.filters = filters;\r\n this.initFilters = filters;\r\n\r\n this.initGlobalSearch = this.localStorageData.globalSearch;\r\n } else {\r\n this.setNewEmptyLocalStorageData();\r\n }\r\n } else {\r\n this.setNewEmptyLocalStorageData();\r\n }\r\n }\r\n\r\n private validOldFiltersToNewFormat(oldFilters: {\r\n [key: string]: StMaterialTableFilter | string;\r\n }): { [key: string]: StMaterialTableFilter } {\r\n const newFilters: { [key: string]: StMaterialTableFilter } = {};\r\n const keys = Object.keys(oldFilters);\r\n\r\n if (keys.length === 0) {\r\n return newFilters;\r\n }\r\n for (const key of keys) {\r\n if (typeof oldFilters[key] === 'object' && oldFilters[key] !== null) {\r\n newFilters[key] = oldFilters[key] as StMaterialTableFilter;\r\n }\r\n }\r\n\r\n return newFilters;\r\n }\r\n\r\n private setNewEmptyLocalStorageData() {\r\n this.localStorageData = {\r\n pageSize: this.pageSize(),\r\n pageIndex: 0,\r\n selectedColumns: this.initColumns().map(col => col.field),\r\n globalSearch: '',\r\n columnsOrder: this.initColumns().map(col => col.field),\r\n filters: {},\r\n sortField: '',\r\n sortOrder: 'asc',\r\n };\r\n }\r\n}\r\n\r\nexport interface StMaterialTableLoadData {\r\n first: number;\r\n rows: number;\r\n globalFilter: string;\r\n globalFilterColumns: string[];\r\n sortField: string;\r\n sortOrder: SortDirection;\r\n filters: { [key: string]: StMaterialTableFilter };\r\n}\r\n\r\nexport interface StMaterialTableLocalStorage extends ICaptionDataChanged {\r\n pageSize: number;\r\n pageIndex: number;\r\n sortField: string;\r\n sortOrder: SortDirection;\r\n}\r\n","<div class=\"st-material-table\">\r\n @if (isLoading()) {\r\n <div class=\"loading-spinner\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n @if (showTable) {\r\n <st-material-table-caption\r\n [tableTitle]=\"tableTitle()\"\r\n [allowPickColumns]=\"allowPickColumns()\"\r\n [showGlobalSearch]=\"showGlobalSearch()\"\r\n [allowReorderColumns]=\"allowReorderColumns()\"\r\n [columns]=\"columns\"\r\n [initFilters]=\"initFilters\"\r\n [initGlobalSearch]=\"initGlobalSearch\"\r\n [showCreateButton]=\"showCreateButton()\"\r\n [createButtonLabel]=\"createButtonLabel()\"\r\n [createButtonAction]=\"createButtonAction()\"\r\n (captionDataChanged)=\"captionDataChanged($event)\"\r\n (resetTableSettings)=\"resetTableSettings()\"\r\n ></st-material-table-caption>\r\n }\r\n\r\n <table\r\n [ngClass]=\"{ 'no-hover': !rowClickAction() }\"\r\n mat-table\r\n [dataSource]=\"tableSource\"\r\n matSort\r\n >\r\n @for (column of selectedColumns; track column) {\r\n <ng-container [matColumnDef]=\"column.field\">\r\n <th\r\n mat-header-cell\r\n *matHeaderCellDef\r\n style=\"{{ column.width ? 'width:' + column.width : '' }}\"\r\n mat-sort-header\r\n [disabled]=\"!column.sort\"\r\n >\r\n @if (column.type === 'actions-row-selecting') {\r\n <mat-checkbox\r\n color=\"primary\"\r\n (change)=\"$event ? toggleAllRows() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n >\r\n </mat-checkbox>\r\n } @else {\r\n {{ column.header }}\r\n }\r\n </th>\r\n <td\r\n mat-cell\r\n *matCellDef=\"let element\"\r\n style=\"{{ column.width ? 'width:' + column.width : '' }}\"\r\n >\r\n <st-material-table-row-cell\r\n [column]=\"column\"\r\n [rowData]=\"element\"\r\n [rowDataCopy]=\"activeRowsEditing[element.id]\"\r\n [rowEditing]=\"!!activeRowsEditing[element.id]\"\r\n [rowIsSelected]=\"selection.isSelected(element)\"\r\n (editRowEmitter)=\"editRow(element, column)\"\r\n (saveEditRowEmitter)=\"saveEditRow(element, column)\"\r\n (cancelEditRowEmitter)=\"cancelEditRow(element, column)\"\r\n (selectRowChange)=\"selectRowChanged($event, element)\"\r\n ></st-material-table-row-cell>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"selectedColumnsString\"></tr>\r\n <tr\r\n mat-row\r\n *matRowDef=\"let row; columns: selectedColumnsString\"\r\n (click)=\"rowClickAction() ? rowClickAction()!(row) : null\"\r\n ></tr>\r\n </table>\r\n <mat-paginator\r\n [showFirstLastButtons]=\"true\"\r\n [pageSizeOptions]=\"[5, 10, 15, 20, 25]\"\r\n [length]=\"dataLength()\"\r\n ></mat-paginator>\r\n @if (rowSelecting()) {\r\n <div class=\"st-material-table-selected-rows\">\r\n <button mat-stroked-button [matMenuTriggerFor]=\"menu\">\r\n {{ selection.selected.length }}\r\n {{ stTableTranslations.getTranslations()().rowSelected }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (row of selection.selected; track row) {\r\n <button mat-menu-item (click)=\"removeSelectedRow(row)\">\r\n <div class=\"d-flex\">\r\n {{ row[selectionFieldLabel()]\r\n }}<mat-icon style=\"margin-right: 0; margin-left: 10px\"\r\n >delete</mat-icon\r\n >\r\n </div>\r\n </button>\r\n }\r\n </mat-menu>\r\n </div>\r\n }\r\n</div>\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { StDateFormatModule } from 'ngx-st-date-format';\r\nimport { MaterialTableComponent } from './components/material-table/material-table.component';\r\nimport { MaterialTableCaptionComponent } from './components/material-table/material-table-caption/material-table-caption.component';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\r\nimport { StBaseFunctionsModule } from 'ngx-st-base-functions';\r\nimport { MaterialTableOrderColumnDialogComponent } from './components/material-table/material-table-caption/material-table-order-column-dialog/material-table-order-column-dialog.component';\r\nimport { MaterialTableFilterDialogComponent } from './components/material-table/material-table-caption/material-table-filter-dialog/material-table-filter-dialog.component';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';\r\nimport { MaterialTableRowCellComponent } from './components/material-table/material-table-row-cell/material-table-row-cell.component';\r\nimport { StQtyInputModule } from 'ngx-st-qty-input';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { StSnackBarModule } from 'ngx-st-snack-bar';\r\nimport { StTablesTranslationsModel } from './models/st-tables-translations.model';\r\nimport { SelectTableComponent } from './components/select-table/select-table.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n MaterialTableCaptionComponent,\r\n MaterialTableComponent,\r\n MaterialTableOrderColumnDialogComponent,\r\n MaterialTableFilterDialogComponent,\r\n MaterialTableRowCellComponent,\r\n SelectTableComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n StDateFormatModule,\r\n MatSortModule,\r\n MatMenuModule,\r\n MatSelectModule,\r\n MatCheckboxModule,\r\n MatBadge,\r\n MatProgressSpinner,\r\n StBaseFunctionsModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n CdkDropList,\r\n CdkDrag,\r\n StQtyInputModule,\r\n MatDatepickerModule,\r\n MatSlideToggleModule,\r\n MatNativeDateModule,\r\n StSnackBarModule,\r\n ],\r\n exports: [MaterialTableComponent, SelectTableComponent],\r\n providers: [MatDatepickerModule],\r\n})\r\nexport class StTablesModule {\r\n constructor(private matIconRegistry: MatIconRegistry) {\r\n this.matIconRegistry.setDefaultFontSetClass('material-symbols-outlined');\r\n }\r\n\r\n static forRoot(config?: {\r\n translations?: Partial<StTablesTranslationsModel>;\r\n }): ModuleWithProviders<StTablesModule> {\r\n return {\r\n ngModule: StTablesModule,\r\n providers: [\r\n {\r\n provide: 'ST_TABLES_CONFIG',\r\n useValue: config || {},\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-st-tables\r\n */\r\n\r\nexport * from './lib/services/st-tables-translations.service';\r\nexport * from './lib/components/select-table/select-table.component';\r\nexport * from './lib/components/material-table/material-table-caption/material-table-caption.component';\r\nexport * from './lib/components/material-table/material-table.component';\r\nexport * from './lib/models/st-material-table-column.model';\r\nexport * from './lib/models/st-tables-translations.model';\r\nexport * from './lib/ngx-st-tables.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i5","i7","i1","i3.StTablesTranslationsService","i4","i6","i8","i10","i2.StTablesTranslationsService","i3","i1.StTablesTranslationsService","i9","i11","i12.MaterialTableCaptionComponent","i13.MaterialTableRowCellComponent"],"mappings":"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"}
|