@cauca-911/datagrid 20.2.15 → 20.2.16-beta2

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.
@@ -0,0 +1,20 @@
1
+ {
2
+ "dataGrid": {
3
+ "defaultAddButtonLabel": "Add",
4
+ "density": {
5
+ "title": "Density",
6
+ "compact": "Compact",
7
+ "standard": "Standard",
8
+ "comfortable": "Comfortable"
9
+ },
10
+ "filters": "Filters",
11
+ "columns": "Columns",
12
+ "noDataLabel": "No data",
13
+ "errorLoadingDataLabel": "An error has occured while loading data.",
14
+ "keywordsLabel": "Keywords...",
15
+ "columnChooser": {
16
+ "reset": "Reset",
17
+ "showAll": "Show all"
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "dataGrid": {
3
+ "defaultAddButtonLabel": "Ajouter",
4
+ "density": {
5
+ "title": "Densité",
6
+ "compact": "Compacte",
7
+ "standard": "Normale",
8
+ "comfortable": "Confortable"
9
+ },
10
+ "filters": "Filtres",
11
+ "columns": "Colonnes",
12
+ "noDataLabel": "Aucune donnée",
13
+ "errorLoadingDataLabel": "Une erreur s'est produite lors du chargement des données.",
14
+ "keywordsLabel": "Mots clés...",
15
+ "columnChooser": {
16
+ "reset": "Réinitialiser",
17
+ "showAll": "Tout afficher"
18
+ }
19
+ }
20
+ }
@@ -592,6 +592,9 @@ class DataGridComponent extends BaseDataGridComponent {
592
592
  this.dataSource.data = [];
593
593
  this.refreshData.emit();
594
594
  }
595
+ ngAfterViewInit() {
596
+ this.setUpPaginator(this.paginator, this.showPaginator());
597
+ }
595
598
  applyFilter(filter) {
596
599
  if (this.paginator) {
597
600
  this.paginator.firstPage();
@@ -1 +1 @@
1
- {"version":3,"file":"cauca-911-datagrid.mjs","sources":["../../../projects/cauca-datagrid/src/lib/data-grid/models/data-grid-row-drop-event.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/base-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-header/data-grid-header.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-header/data-grid-header.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/models/density-enum.ts","../../../projects/cauca-datagrid/src/lib/services/preference.ts","../../../projects/cauca-datagrid/src/lib/services/mat-paginator-localization.service.ts","../../../projects/cauca-datagrid/src/lib/services/preference.service.ts","../../../projects/cauca-datagrid/src/lib/provide-cauca-grid.ts","../../../projects/cauca-datagrid/src/lib/data-grid/base-data-grid.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/button-popover/button-popover.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/button-popover/button-popover.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-table-options/data-grid-table-options.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-table-options/data-grid-table-options.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-progress-spiner/data-grid-progress-spiner.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-progress-spiner/data-grid-progress-spiner.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/data-grid/data-grid.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/data-grid/data-grid.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/odata-grid/odata-listing.service.ts","../../../projects/cauca-datagrid/src/lib/data-grid/odata-grid/odata-grid.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/odata-grid/odata-grid.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/color-data-grid-column/color-data-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/color-data-grid-column/color-data-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/check-icon/check-icon.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-check-column/data-grid-check-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-check-column/data-grid-check-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-column/data-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-column/data-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-command-icon-column/data-grid-command-icon-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-command-icon-column/data-grid-command-icon-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-commands-column/data-grid-commands-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-commands-column/data-grid-commands-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-icon-column/data-grid-icon-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-icon-column/data-grid-icon-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-menu-column/data-grid-menu-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-menu-column/data-grid-menu-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/time-label/time-label.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/time-label/time-label.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/date-grid-column/date-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/date-grid-column/date-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-check-column/sortable-data-grid-check-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-check-column/sortable-data-grid-check-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/column-label/column-label.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/column-label/column-label.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-column/sortable-data-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-column/sortable-data-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/translation-grid-column/translation-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/translation-grid-column/translation-grid-column.component.html","../../../projects/cauca-datagrid/src/public-api.ts","../../../projects/cauca-datagrid/src/cauca-911-datagrid.ts"],"sourcesContent":["export class DataGridRowDropEvent {\r\n public item: unknown;\r\n public data: unknown[];\r\n public fromIndex: number;\r\n public toIndex: number;\r\n\r\n public constructor(data: {\r\n item: unknown;\r\n data: unknown[];\r\n fromIndex: number;\r\n toIndex: number;\r\n }) {\r\n Object.assign(this, data);\r\n }\r\n}\r\n","import { Component, HostBinding, Input, OnDestroy, OnInit, Optional, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatCellDef, MatColumnDef, MatFooterCellDef, MatHeaderCellDef, MatTable } from '@angular/material/table';\r\n\r\n@Component({ template: '' ,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport abstract class BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public prop = '';\r\n @Input() public showLabel = true;\r\n @Input() public label: string | undefined;\r\n @Input() public isInColumnChooser: boolean = true;\r\n @Input() public width: string = \"\";\r\n @Input() public showToolTip: boolean = false;\r\n\r\n @HostBinding('attr.ariaHidden') public ariaHidden!: true;\r\n @HostBinding('class') public classes!: 'column-template cdk-visually-hidden';\r\n\r\n @ViewChild(MatColumnDef, { static: true }) public columnDef!: MatColumnDef;\r\n @ViewChild(MatCellDef, { static: true }) public cellDef!: MatCellDef;\r\n @ViewChild(MatHeaderCellDef, { static: true }) public headerCellDef!: MatHeaderCellDef;\r\n @ViewChild(MatFooterCellDef, { static: true }) public footerCellDef!: MatFooterCellDef;\r\n\r\n public selected: boolean = true;\r\n\r\n public constructor(@Optional() public table: MatTable<unknown>) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.columnDef) {\r\n if (!this.columnDef.name) {\r\n this.columnDef.name = this.prop;\r\n }\r\n this.columnDef.cell = this.cellDef;\r\n this.columnDef.headerCell = this.headerCellDef;\r\n this.columnDef.footerCell = this.footerCellDef;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.table) {\r\n this.table.removeColumnDef(this.columnDef);\r\n }\r\n }\r\n\r\n public capitalize(value: string): string {\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { IconButtonComponent, RaisedButtonComponent } from '@cauca-911/material';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { Subject, debounceTime, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-header',\r\n templateUrl: './data-grid-header.component.html',\r\n styleUrls: ['./data-grid-header.component.scss'],\r\n imports: [MatFormFieldModule, IconButtonComponent, RaisedButtonComponent, MatInputModule, ReactiveFormsModule, TranslateModule, MatIcon],\r\n})\r\nexport class DataGridHeaderComponent implements OnInit, OnDestroy {\r\n\r\n public filterControl: FormControl<string> = new FormControl<string>('');\r\n public showClearButton: boolean;\r\n\r\n @Input() public showAddButton: boolean = false;\r\n @Input() public showRefreshButton: boolean = false;\r\n @Input() public addButtonLabel: string = '';\r\n @Output() public filterChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() public addButtonClick: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() public refreshRequest: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n protected _onDestroy = new Subject<void>();\r\n\r\n public ngOnInit(): void {\r\n this.filterControl.valueChanges\r\n .pipe(\r\n debounceTime(500),\r\n takeUntil(this._onDestroy))\r\n .subscribe((filter: string) => {\r\n this.filterChange.emit(filter);\r\n this.showClearButton = !!filter;\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n public onRefresh(): void {\r\n this.refreshRequest.emit();\r\n }\r\n\r\n public clearSearchValue(): void {\r\n this.filterControl.setValue('');\r\n }\r\n\r\n public onAddButtonClick(): void {\r\n this.addButtonClick.emit(null);\r\n }\r\n}\r\n","<div class=\"grid-header\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"full-width-field grid-search-box\" subscriptSizing=\"dynamic\">\r\n @if (showClearButton) { <cauca-icon-button matPrefix (buttonClick)=\"clearSearchValue()\" icon=\"close\" /> }\r\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate}}</mat-label>\r\n <input matInput [formControl]=\"filterControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n\r\n <ng-content select=\"[filterRow]\" ngProjectAs=\"[filterRow]\" />\r\n\r\n @if (showRefreshButton) { <cauca-icon-button (buttonClick)=\"onRefresh()\" icon=\"refresh\" class=\"grid-refresh-button\" /> }\r\n\r\n @if (showAddButton) { <cauca-raised-button icon=\"add\" color=\"primary\" [label]=\"addButtonLabel\" [translateLabel]=\"false\" class=\"grid-new-button\" (buttonClick)=\"onAddButtonClick()\" /> }\r\n</div>","export enum Density {\r\n Compact = \"compact\",\r\n Standard = \"standard\",\r\n Comfortable = \"comfortable\"\r\n}","import { Density } from \"../data-grid/models/density-enum\";\r\n\r\nexport class Preference {\r\n public gridDensity: Density;\r\n}\r\n\r\nexport class GridConfiguration {\r\n public name: string;\r\n public visibleColumns: string[];\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\r\nimport { TranslateService } from \"@cauca-911/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MatPaginatorLocalizationService extends MatPaginatorIntl {\r\n public itemsPerPageLabel: string = 'Items per page';\r\n public nextPageLabel: string = 'Next page';\r\n public previousPageLabel: string = 'Previous page';\r\n public ofLabel: string = 'of'\r\n\r\n public constructor(\r\n private readonly translateService: TranslateService) {\r\n super();\r\n this.translateService.onLangChange.subscribe(() => this.loadTranslations());\r\n this.loadTranslations();\r\n }\r\n\r\n public getRangeLabel = (page, pageSize, length): string => {\r\n if (length == 0 || pageSize == 0) {\r\n return `0 ${this.ofLabel} ${length}`;\r\n }\r\n\r\n length = Math.max(length, 0);\r\n const startIndex = page * pageSize;\r\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n return `${startIndex + 1} – ${endIndex} ${this.ofLabel} ${length}`;\r\n };\r\n\r\n private loadTranslations(): any {\r\n this.translateService.get([\r\n 'paginator.itemsPerPage',\r\n 'paginator.nextPage',\r\n 'paginator.previousPage',\r\n 'paginator.of'\r\n ])\r\n .subscribe(translation => {\r\n this.itemsPerPageLabel = translation['paginator.itemsPerPage'];\r\n this.nextPageLabel = translation['paginator.nextPage'];\r\n this.previousPageLabel = translation['paginator.previousPage'];\r\n this.ofLabel = translation['paginator.of'];\r\n this.changes.next();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { GridConfiguration, Preference } from './preference';\r\nimport { Density } from '../data-grid/models/density-enum';\r\nimport { BasePreferenceService } from './base-preference-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PreferenceService implements BasePreferenceService {\r\n public preference: BehaviorSubject<Preference> = new BehaviorSubject<Preference>(new Preference());\r\n\r\n public gridConfiguration: GridConfiguration[] = [];\r\n\r\n public constructor() {\r\n const data = localStorage.getItem('GridPreference');\r\n const configuration = localStorage.getItem('GridConfiguration');\r\n if (data) {\r\n this.preference.next(JSON.parse(data));\r\n }\r\n if (configuration) {\r\n this.gridConfiguration = JSON.parse(configuration);\r\n }\r\n }\r\n\r\n public getPreference(): Preference {\r\n return this.preference.value;\r\n }\r\n\r\n public setPreferenceDensity(density: Density) {\r\n const preference = this.getPreference();\r\n if (density === preference.gridDensity) return;\r\n preference.gridDensity = density;\r\n this.preference.next(preference);\r\n this.addOrUpdatePreference();\r\n }\r\n\r\n public addOrUpdatePreference(): void {\r\n localStorage.setItem('GridPreference', JSON.stringify(this.getPreference()));\r\n }\r\n\r\n public getPreferenceForGrid(gridName: string): Observable<GridConfiguration> {\r\n return of(this.getPreferenceForGridNotObservable(gridName));\r\n }\r\n\r\n public addOrUpdateGridPreference(gridName: string, visibleColumns: string[]): Observable<void> {\r\n const configuration = this.getPreferenceForGridNotObservable(gridName);\r\n configuration.visibleColumns = visibleColumns || [];\r\n localStorage.setItem('GridConfiguration', JSON.stringify(this.gridConfiguration));\r\n return of();\r\n }\r\n\r\n private getPreferenceForGridNotObservable(gridName: string): GridConfiguration {\r\n const configuration = this.gridConfiguration.find(g => g.name == gridName);\r\n if (configuration) {\r\n return configuration;\r\n }\r\n const newConfiguration = new GridConfiguration();\r\n newConfiguration.name = gridName;\r\n this.gridConfiguration.push(newConfiguration);\r\n return newConfiguration;\r\n }\r\n}","import { CDK_DRAG_CONFIG } from \"@angular/cdk/drag-drop\";\r\nimport { Provider, EnvironmentProviders, Type, InjectionToken } from \"@angular/core\";\r\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\r\nimport { MatPaginatorLocalizationService } from \"./services/mat-paginator-localization.service\";\r\nimport { PreferenceService } from \"./services/preference.service\";\r\nimport { BasePreferenceService } from \"./services/base-preference-service\";\r\n\r\nexport interface CaucaGridOptions {\r\n /** If not provided, a default implementation will be used which will use localStorage to store the grid preferences. */\r\n gridPreferenceService?: Type<BasePreferenceService>\r\n}\r\n\r\nexport const PREFERENCE_SERVICE_TOKEN = new InjectionToken<BasePreferenceService>('CaucaGridPreferenceService');\r\n\r\nexport function provideCaucaGrid(options?: CaucaGridOptions): (Provider|EnvironmentProviders) {\r\n return [\r\n { provide: CDK_DRAG_CONFIG, useValue: { previewContainer: 'parent' } },\r\n { provide: MatPaginatorIntl, useClass: MatPaginatorLocalizationService },\r\n { provide: PREFERENCE_SERVICE_TOKEN, useClass: options?.gridPreferenceService || PreferenceService }\r\n ];\r\n}\r\n","import {\r\n AfterContentInit, Component, ContentChild,\r\n ContentChildren, EventEmitter, Inject, input, Input, OnChanges, Output, QueryList, signal, SimpleChanges, ViewChild\r\n} from '@angular/core';\r\nimport { MatColumnDef, MatFooterRowDef, MatHeaderRowDef, MatNoDataRow, MatRowDef, MatTable } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BaseGridColumnComponent } from './columns/base-grid-column.component';\r\nimport { DataGridHeaderComponent } from './components/data-grid-header/data-grid-header.component';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Density } from './models/density-enum';\r\nimport { Preference } from '../services/preference';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BasePreferenceService } from '../services/base-preference-service';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../provide-cauca-grid';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseDataGridComponent implements AfterContentInit, OnChanges {\r\n @Input({ required: true }) public resourceName: string;\r\n @Input() public displayedColumns: string[] = [];\r\n @Input() public showAddButton: boolean = false;\r\n @Input() public addButtonLabel: string = '';\r\n @Input() public searchableColumns: string[];\r\n @Input() public showTableOptions: boolean = false;\r\n @Input() public showColumnViewer: boolean = true;\r\n @Output() public addButtonClick: EventEmitter<void> = new EventEmitter<void>();\r\n public showPaginator = input<boolean>(false);\r\n public hidePageSize = input<boolean>(false);\r\n public showExpandButton = input<boolean>(false);\r\n public expandedElement = signal<any>(null);\r\n\r\n @ViewChild(DataGridHeaderComponent) public header!: DataGridHeaderComponent;\r\n @ViewChild(MatTable, { static: true }) public table: MatTable<unknown>;\r\n @ContentChildren(BaseGridColumnComponent) public regularColumns: QueryList<BaseGridColumnComponent>;\r\n @ContentChildren(MatColumnDef) public columnDefs: QueryList<MatColumnDef>;\r\n @ContentChild(MatHeaderRowDef) public headerRowDef: QueryList<MatHeaderRowDef>;\r\n @ContentChild(MatFooterRowDef) public footerRowDef: QueryList<MatFooterRowDef>;\r\n @ContentChildren(MatRowDef) public rowDefs: QueryList<MatRowDef<unknown>>;\r\n @ContentChild(MatNoDataRow) public noDataRow: MatNoDataRow;\r\n @ViewChild(MatPaginator) public paginator: MatPaginator;\r\n\r\n public defaultAddButtonLabel: string = '';\r\n public allDisplayedColumns = signal<string[]>([]);\r\n public preference: Preference;\r\n\r\n protected sort: MatSort = null;\r\n\r\n public get density(): typeof Density {\r\n return Density;\r\n }\r\n\r\n \r\n public constructor(translateService: TranslateService,\r\n @Inject(PREFERENCE_SERVICE_TOKEN) private preferenceService: BasePreferenceService,) {\r\n this.defaultAddButtonLabel = translateService.instant('dataGrid.defaultAddButtonLabel');\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n this.setUpPaginator(this.paginator, this.showPaginator());\r\n this.setUpFilterPredicate();\r\n if (this.table && this.regularColumns && this.rowDefs && this.columnDefs) {\r\n this.applyColumns();\r\n }\r\n\r\n if (this.showTableOptions) {\r\n this.preferenceService.preference.subscribe((preference) => {\r\n this.preference = preference;\r\n });\r\n } else {\r\n this.showColumnsWhenTableOptionsIsFalse();\r\n this.preference = new Preference();\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n this.updateDataWhenNeeded(changes);\r\n this.updateColumnsWhenNeeded(changes);\r\n }\r\n\r\n public onExpand(element: any): void {\r\n if (this.expandedElement() === element) {\r\n this.expandedElement.set(null);\r\n } else {\r\n this.expandedElement.set(element);\r\n }\r\n }\r\n\r\n public clearFilter(): void {\r\n this.header?.clearSearchValue();\r\n }\r\n\r\n public renderRows(): void {\r\n this.forceReloadFilter();\r\n this.applyColumns();\r\n this.table.renderRows();\r\n }\r\n\r\n public onDensityChanged(density: Density): void {\r\n this.preferenceService.setPreferenceDensity(density);\r\n }\r\n\r\n public abstract getData(): unknown[];\r\n protected abstract setUpFilterPredicate(): void;\r\n protected abstract setUpSort(sort: MatSort): void;\r\n protected abstract forceReloadFilter(): void;\r\n protected abstract updateDataWhenNeeded(changes: SimpleChanges): void;\r\n protected abstract showColumnsWhenTableOptionsIsFalse(): void;\r\n\r\n protected setUpPaginator(_paginator: MatPaginator, _showPaginator: boolean): void {\r\n // nothing\r\n }\r\n\r\n protected onColumnsChanged(columns: string[]): void {\r\n this.allDisplayedColumns.set([...columns]);\r\n const columnsToSave = this.removeMandatoryColumns([...columns]);\r\n this.preferenceService.addOrUpdateGridPreference(this.resourceName, columnsToSave).subscribe();\r\n }\r\n\r\n protected applyColumns(): void {\r\n this.regularColumns.forEach(dynColumn => this.table.addColumnDef(dynColumn.columnDef));\r\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\r\n this.table.setNoDataRow(this.noDataRow);\r\n this.columnDefs.forEach(columnDef => {\r\n this.table.addColumnDef(columnDef);\r\n this.sort.register({ id: columnDef.name, start: 'desc', disableClear: false });\r\n });\r\n }\r\n\r\n protected updateColumnsWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.displayedColumns) {\r\n this.allDisplayedColumns.set([...this.displayedColumns]);\r\n }\r\n }\r\n\r\n private removeMandatoryColumns(columns: string[]): string[] {\r\n let index = columns.indexOf(\"\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"position\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"buttons\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"menu\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"expand\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n return columns;\r\n }\r\n}\r\n","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\r\nimport { BasicButtonComponent } from '@cauca-911/material';\r\n\r\n@Component({\r\n selector: 'cauca-button-popover',\r\n templateUrl: './button-popover.component.html',\r\n styleUrls: ['./button-popover.component.scss'],\r\n imports: [CdkConnectedOverlay, BasicButtonComponent, CdkOverlayOrigin],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonPopoverComponent {\r\n public buttonLabel = input<string>(null);\r\n public buttonIcon = input<string>('');;\r\n public color = input<string>('primary');\r\n\r\n public isActive = signal<boolean>(false);\r\n\r\n public toggle() {\r\n this.isActive.set(!this.isActive());\r\n }\r\n\r\n public close() {\r\n if (this.isActive()) {\r\n this.isActive.set(false);\r\n }\r\n }\r\n}\r\n","<cauca-basic-button [icon]=\"buttonIcon()\" [color]=\"color()\" [label]=\"buttonLabel()\" [translateLabel]=\"false\" (buttonClick)=\"toggle()\" cdkOverlayOrigin #popoverTrigger=\"cdkOverlayOrigin\" />\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"popoverTrigger\"\r\n [cdkConnectedOverlayOpen]=\"isActive()\"\r\n [cdkConnectedOverlayHasBackdrop]=\"isActive()\"\r\n [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop-cs'\"\r\n (backdropClick)=\"toggle()\">\r\n <ng-content></ng-content>\r\n</ng-template>","import { Component, EventEmitter, inject, Input, OnInit, Output, QueryList, ViewChild } from '@angular/core';\r\nimport { Density } from '../../models/density-enum';\r\nimport { BaseGridColumnComponent } from '../../columns/base-grid-column.component';\r\nimport { ButtonPopoverComponent } from '../button-popover/button-popover.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { BasicButtonComponent, MenuItemComponent, RaisedButtonComponent, StrokedButtonComponent } from '@cauca-911/material';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../../../provide-cauca-grid';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-table-options',\r\n templateUrl: './data-grid-table-options.component.html',\r\n styleUrls: ['./data-grid-table-options.component.scss'],\r\n imports: [MatCardModule, ButtonPopoverComponent, MatCheckboxModule, StrokedButtonComponent, RaisedButtonComponent, BasicButtonComponent, MatMenuModule, FormsModule, TranslateModule, MenuItemComponent],\r\n})\r\nexport class DataGridTableOptionsComponent implements OnInit {\r\n @Input({ required: true }) public gridName: string;\r\n @Input() public showColumnViewer: boolean = true;\r\n\r\n @Output() public densityChanged: EventEmitter<Density> = new EventEmitter<Density>();\r\n\r\n @Input() public allColumns: QueryList<BaseGridColumnComponent> = new QueryList();\r\n @Output() public columnsChanged: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n\r\n @ViewChild(ButtonPopoverComponent, { static: true }) public columnViewer: ButtonPopoverComponent;\r\n\r\n public columnsSearch: string = '';\r\n\r\n private readonly preferenceService = inject(PREFERENCE_SERVICE_TOKEN);\r\n\r\n public get density(): typeof Density {\r\n return Density;\r\n }\r\n\r\n public get columns(): BaseGridColumnComponent[] {\r\n return this.allColumns.filter(c => c.prop !== 'buttons' && c.prop !== 'menu' && c.prop !== '' && c.isInColumnChooser);\r\n }\r\n\r\n public get currentDensityIcon(): string {\r\n const currentDensity = this.preferenceService.getPreference()?.gridDensity;\r\n if (currentDensity === Density.Compact) {\r\n return 'density_small';\r\n }\r\n\r\n if (currentDensity === Density.Comfortable) {\r\n return 'density_large';\r\n }\r\n\r\n return 'density_medium';\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.preferenceService.getPreferenceForGrid(this.gridName).subscribe({\r\n next: configuration => {\r\n if (configuration?.visibleColumns) {\r\n this.selectOnlyUserColumns(configuration.visibleColumns);\r\n } else {\r\n this.selectAllColumns();\r\n }\r\n this.onColumnsChanged();\r\n }\r\n });\r\n }\r\n\r\n public closeColumnViewer(): void {\r\n if (this.columnViewer) {\r\n this.columnViewer.close();\r\n }\r\n }\r\n\r\n public changeDensity(newDensity: Density): void {\r\n this.densityChanged.emit(newDensity);\r\n }\r\n\r\n public onColumnsChanged(): void {\r\n const newColumns = this.allColumns.filter(column => column.selected);\r\n this.columnsChanged.emit(newColumns.map((column) => column.prop));\r\n }\r\n\r\n public resetColumns(): void {\r\n this.allColumns.forEach((column => column.selected = true));\r\n this.columnsChanged.emit(this.allColumns.map((column) => column.prop));\r\n }\r\n\r\n private selectOnlyUserColumns(configurationVisibleColumns: string[]): void {\r\n this.allColumns.forEach((column => {\r\n const index = configurationVisibleColumns.findIndex(c => c === column.prop);\r\n if (index === -1 && column.prop !== 'buttons' && column.prop !== 'menu' && column.prop !== '') {\r\n column.selected = false;\r\n }\r\n }));\r\n }\r\n\r\n private selectAllColumns(): void {\r\n this.allColumns.forEach((column => {\r\n column.selected = true;\r\n }));\r\n }\r\n}\r\n","<div class=\"table-options-bar\">\r\n <div class=\"table-options\">\r\n @if (showColumnViewer) { <cauca-button-popover [buttonLabel]=\"'dataGrid.columns' | translate\" buttonIcon=\"view_column\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"columns\">\r\n @for (column of columns; track column) {\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"column.selected\"\r\n (change)=\"onColumnsChanged()\">\r\n {{column.label}}\r\n </mat-checkbox>\r\n }\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <cauca-stroked-button [small]=\"true\" color=\"primary\" (buttonClick)=\"resetColumns()\" label=\"dataGrid.columnChooser.reset\" [translateLabel]=\"true\" />\r\n <cauca-raised-button [small]=\"true\" color=\"primary\" (buttonClick)=\"resetColumns()\" label=\"dataGrid.columnChooser.showAll\" [translateLabel]=\"true\" />\r\n </mat-card-actions>\r\n </mat-card>\r\n </cauca-button-popover> }\r\n <cauca-basic-button color=\"primary\" [matMenuTriggerFor]=\"densityMenu\" class=\"open-menu-button\" [icon]=\"currentDensityIcon\" label=\"dataGrid.density.title\" [translateLabel]=\"true\" />\r\n </div>\r\n\r\n <ng-content select=\"[customFilter]\"> </ng-content>\r\n</div>\r\n\r\n<mat-menu #densityMenu=\"matMenu\">\r\n <cauca-menu-item label=\"dataGrid.density.compact\" [translateLabel]=\"true\" icon=\"density_small\" (buttonClick)=\"changeDensity(density.Compact)\" class=\"density-compact\" />\r\n <cauca-menu-item label=\"dataGrid.density.standard\" [translateLabel]=\"true\" icon=\"density_medium\" (buttonClick)=\"changeDensity(density.Standard)\" class=\"density-standard\" />\r\n <cauca-menu-item label=\"dataGrid.density.comfortable\" [translateLabel]=\"true\" icon=\"density_large\" (buttonClick)=\"changeDensity(density.Comfortable)\" class=\"density-comfortable\" />\r\n</mat-menu>","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-progress-spiner',\r\n templateUrl: './data-grid-progress-spiner.component.html',\r\n styleUrls: ['./data-grid-progress-spiner.component.scss'],\r\n imports: [MatProgressSpinnerModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DataGridProgressSpinerComponent {\r\n\r\n public isLoading = input<boolean>(false);\r\n public useBackground = input<boolean>(true);\r\n}\r\n","@if (isLoading()) {\r\n <div class=\"spiner-container\" [class.use-background]=\"useBackground()\">\r\n <mat-progress-spinner\r\n color=\"primary\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </div>\r\n}","import {\r\n AfterContentInit, ChangeDetectionStrategy, Component,\r\n ContentChild,\r\n effect,\r\n EventEmitter, inject, input, Input, OnChanges, output, Output, SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatFooterRow, MatFooterRowDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatRow, MatRowDef, MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { DataGridRowDropEvent } from '../models/data-grid-row-drop-event';\r\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\r\nimport { BaseDataGridComponent } from '../base-data-grid.component';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { DataGridHeaderComponent } from '../components/data-grid-header/data-grid-header.component';\r\nimport { DataGridTableOptionsComponent } from '../components/data-grid-table-options/data-grid-table-options.component';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { DataGridProgressSpinerComponent } from '../components/data-grid-progress-spiner/data-grid-progress-spiner.component';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../../provide-cauca-grid';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'cauca-data-grid',\r\n templateUrl: './data-grid.component.html',\r\n styleUrls: ['./data-grid.component.scss'],\r\n imports: [\r\n NgTemplateOutlet, // still needed\r\n // Material Table structure:\r\n MatTable, MatSort, MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatCellDef,\r\n MatFooterCell, MatFooterCellDef,\r\n MatRow, MatRowDef,\r\n MatHeaderRow, MatHeaderRowDef,\r\n MatFooterRow, MatFooterRowDef,\r\n MatNoDataRow,\r\n // Drag and Drop:\r\n CdkDropList, CdkDrag, CdkDragHandle,\r\n // Material extras:\r\n MatIcon, MatPaginator,\r\n // ngx-translate:\r\n TranslateModule,\r\n // Custom Components:\r\n DataGridHeaderComponent,\r\n DataGridTableOptionsComponent,\r\n DataGridProgressSpinerComponent,\r\n IconButtonComponent\r\n ]\r\n})\r\nexport class DataGridComponent extends BaseDataGridComponent implements OnChanges, AfterContentInit {\r\n\r\n @Input() public data: any[] = [];\r\n @Input() public showLoadingError: boolean = false;\r\n @Input() public isLoading: boolean = false;\r\n @Input() public allowReordering: boolean = false;\r\n @Input() public searchableColumns: string[];\r\n @Input() public filterPredicate: (data: unknown, filter: string) => boolean;\r\n @Output() public rowDrop: EventEmitter<DataGridRowDropEvent> = new EventEmitter<DataGridRowDropEvent>();\r\n @ContentChild(TemplateRef) public rowDetailTemplate!: TemplateRef<any>;\r\n public showPaginator = input<boolean>(false);\r\n public showFooter = input<boolean>(false);\r\n public showHeader = input<boolean>(true);\r\n public headerColor = input<string | undefined>(undefined);\r\n public showRefreshButton = input<boolean>(false);\r\n public refreshData = output<void>();\r\n\r\n public dataSource: MatTableDataSource<unknown[]>;\r\n public dragDisabled: boolean = true;\r\n public currentFilter: string = '';\r\n\r\n\r\n public constructor(\r\n translateService: TranslateService,\r\n ) {\r\n super(translateService, inject(PREFERENCE_SERVICE_TOKEN));\r\n this.dataSource = new MatTableDataSource([]);\r\n }\r\n\r\n public onRefreshData(): void {\r\n this.dataSource.data = [];\r\n this.refreshData.emit();\r\n }\r\n\r\n public applyFilter(filter: string): void {\r\n if (this.paginator) {\r\n this.paginator.firstPage();\r\n }\r\n this.dataSource.filter = toLowerCaseAndWithoutDiacritics(filter);\r\n }\r\n\r\n public override setUpSort(sort: MatSort): void {\r\n this.sort = sort;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n public override getData(): unknown[] {\r\n return this.dataSource.data;\r\n }\r\n\r\n public getFilteredData(): unknown[] {\r\n return this.dataSource.filteredData;\r\n }\r\n\r\n public refreshDisplayedColumns(columns: string[]): void {\r\n this.onColumnsChanged(columns);\r\n }\r\n\r\n public rowDropped(event: CdkDragDrop<unknown>): void {\r\n const data: unknown[] = this.getData();\r\n const filteredData: any[] = this.getFilteredData();\r\n const fromIndex = data.findIndex((d) => d === filteredData[event.previousIndex]);\r\n const toIndex = data.findIndex((d) => d === filteredData[event.currentIndex]);\r\n if (fromIndex >= 0 && toIndex >= 0) {\r\n moveItemInArray(data, fromIndex, toIndex);\r\n this.renderRows();\r\n this.rowDrop.emit(\r\n new DataGridRowDropEvent({\r\n item: data[fromIndex],\r\n data,\r\n fromIndex,\r\n toIndex,\r\n })\r\n );\r\n }\r\n }\r\n\r\n protected override setUpPaginator(paginator: MatPaginator, showPaginator: boolean): void {\r\n this.dataSource.paginator = paginator && showPaginator ? paginator : null;\r\n }\r\n\r\n protected override showColumnsWhenTableOptionsIsFalse(): void {\r\n if (this.allowReordering) {\r\n this.allDisplayedColumns.set(['position', ...this.displayedColumns]);\r\n } else {\r\n this.allDisplayedColumns.set([...this.displayedColumns]);\r\n }\r\n if (this.showExpandButton() && !this.allDisplayedColumns().includes('expand')) {\r\n this.allDisplayedColumns.set(['expand', ...this.displayedColumns]);\r\n }\r\n }\r\n\r\n protected override updateColumnsWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.displayedColumns || changes.allowReordering) {\r\n if (this.allowReordering && !this.allDisplayedColumns().includes('position')) {\r\n this.allDisplayedColumns.set(['position', ...this.allDisplayedColumns()]);\r\n } else {\r\n this.allDisplayedColumns.set([...this.allDisplayedColumns()]);\r\n }\r\n }\r\n if (this.showExpandButton() && !this.allDisplayedColumns().includes('expand')) {\r\n this.allDisplayedColumns.set(['expand', ...this.displayedColumns]);\r\n }\r\n }\r\n\r\n protected onColumnsChanged(columns: string[]): void {\r\n super.onColumnsChanged(columns);\r\n if (this.allowReordering && !columns.includes('position')) {\r\n this.allDisplayedColumns.set(['position', ...columns]);\r\n } else {\r\n this.allDisplayedColumns.set([...columns]);\r\n }\r\n if (this.showExpandButton() && !this.allDisplayedColumns().includes('expand')) {\r\n this.allDisplayedColumns.set(['expand', ...this.displayedColumns]);\r\n }\r\n }\r\n\r\n protected override setUpFilterPredicate(): void {\r\n if (this.filterPredicate) {\r\n this.dataSource.filterPredicate = this.filterPredicate;\r\n } else if (this.searchableColumns?.length > 0) {\r\n this.dataSource.filterPredicate = (data: unknown, filter: string) => {\r\n return this.searchableColumns.some((column) => {\r\n const value = data[column];\r\n return value?.toString().toLowerCaseAndWithoutDiacritics().includes(filter);\r\n });\r\n };\r\n }\r\n }\r\n\r\n protected override forceReloadFilter(): void {\r\n // eslint-disable-next-line no-self-assign\r\n this.dataSource.filter = this.dataSource.filter;\r\n }\r\n\r\n protected override updateDataWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.data?.currentValue && this.data) {\r\n this.setData(this.data);\r\n }\r\n }\r\n\r\n private async setData(data): Promise<void> {\r\n if (Array.isArray(data)) {\r\n this.dataSource.data = data;\r\n setTimeout(() => {\r\n this.table.setNoDataRow(this.noDataRow);\r\n this.table.renderRows();\r\n }, 0);\r\n }\r\n }\r\n}","@if (showHeader()) {\r\n <cauca-data-grid-header [showAddButton]=\"showAddButton\" [addButtonLabel]=\"addButtonLabel || defaultAddButtonLabel\"\r\n (addButtonClick)=\"addButtonClick.emit($event)\" (filterChange)=\"applyFilter($event)\"\r\n [showRefreshButton]=\"showRefreshButton()\" (refreshRequest)=\"onRefreshData()\">\r\n <ng-content select=\"[filterRow]\" ngProjectAs=\"[filterRow]\" />\r\n </cauca-data-grid-header>\r\n}\r\n\r\n@if (showTableOptions) {\r\n <cauca-data-grid-table-options [showColumnViewer]=\"showColumnViewer\" [gridName]=\"resourceName\" (densityChanged)=\"onDensityChanged($event)\" (columnsChanged)=\"onColumnsChanged($event)\" [allColumns]=\"regularColumns\">\r\n <ng-content\r\n select=\"[customFilter]\"\r\n ngProjectAs=\"[customFilter]\">\r\n </ng-content>\r\n </cauca-data-grid-table-options>\r\n}\r\n\r\n<table matSort mat-table [dataSource]=\"dataSource\" cdkDropList [cdkDropListData]=\"dataSource\"\r\n (cdkDropListDropped)=\"rowDropped($event)\" aria-describedby=\"Data Grid\" multiTemplateDataRows>\r\n\r\n @if (showExpandButton()) {\r\n <ng-container matColumnDef=\"expand\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div class=\"align-commands\">\r\n <cauca-icon-button (buttonClick)=\"onExpand(row)\" color=\"primary\" class=\"button-icon\" [icon]=\"row === expandedElement() ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\" />\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n }\r\n\r\n @if (allowReordering) {\r\n <ng-container matColumnDef=\"position\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell (mousedown)=\"dragDisabled = false\" (mouseup)=\"dragDisabled = true\" *matCellDef=\"let group\">\r\n <mat-icon class=\"reorder-icon\" cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n }\r\n\r\n <ng-content></ng-content>\r\n\r\n <tr class=\"grid-header\" [style.background-color]=\"headerColor()\" mat-header-row *matHeaderRowDef=\"allDisplayedColumns(); sticky: true\"></tr>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: allDisplayedColumns();\" cdkDrag [cdkDragData]=\"row\"\r\n [cdkDragDisabled]=\"dragDisabled\" (cdkDragReleased)=\"dragDisabled = true\"\r\n [class.compact]=\"preference.gridDensity === density.Compact\" [class.standard]=\"preference.gridDensity === density.Standard\"\r\n [class.comfortable]=\"preference.gridDensity === density.Comfortable\"></tr>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"grid-element-detail-wrapper\" [class.grid-element-detail-wrapper-expanded]=\"row === expandedElement()\">\r\n <div class=\"grid-element-detail\">\r\n @if (row === expandedElement()) {\r\n <template [ngTemplateOutlet]=\"rowDetailTemplate\" [ngTemplateOutletContext]=\"{ row: expandedElement() }\"></template>\r\n }\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"grid-detail-row\"></tr>\r\n\r\n @if (showFooter()) {\r\n <tr mat-footer-row *matFooterRowDef=\"allDisplayedColumns(); sticky: false\"></tr>\r\n }\r\n\r\n @if (!isLoading) {\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n @if (!showLoadingError && !isLoading) {\r\n <td class=\"mat-cell data-grid-message\"\r\n [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>grid_off</mat-icon>\r\n <span>{{ 'dataGrid.noDataLabel' | translate }}</span>\r\n </div>\r\n </td>\r\n }\r\n @if (showLoadingError) {\r\n <td class=\"mat-cell data-grid-message error-message\" [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>error</mat-icon>\r\n <span>{{ 'dataGrid.errorLoadingDataLabel' | translate }}</span>\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n\r\n</table>\r\n\r\n<cauca-data-grid-progress-spiner [isLoading]=\"isLoading\" />\r\n\r\n@if (showPaginator()) {\r\n <mat-paginator #paginator [hidePageSize]=\"hidePageSize()\" [pageSizeOptions]=\"[5, 10, 25, 50]\" [pageSize]=\"10\" />\r\n}","import {EventEmitter, Injectable, signal} from \"@angular/core\";\r\nimport {ODataDataSource, ODataFilter} from \"odata-data-source\";\r\nimport {distinctUntilChanged, Subscription} from \"rxjs\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\n\r\nexport interface Paginator {\r\n pageIndex: number;\r\n pageSize: number;\r\n length: number;\r\n page: EventEmitter<any>;\r\n}\r\n\r\ninterface SingleSort {\r\n active: string;\r\n direction: 'asc' | 'desc' | '';\r\n sortChange: EventEmitter<any>;\r\n}\r\ninterface MultiSort {\r\n sortedBy: {\r\n id: string;\r\n direction: 'asc' | 'desc';\r\n }[];\r\n multiSortChange: EventEmitter<any>;\r\n}\r\n\r\nexport type Sort = SingleSort | MultiSort;\r\n\r\ninterface Props {\r\n baseUrl: string;\r\n resourceName: string;\r\n paginator: Paginator\r\n sort?: Sort;\r\n initialSort?: string[];\r\n filters: ODataFilter[]\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OdataListingService<T = any> {\r\n public dataSource: ODataDataSource | null = null;\r\n public error = signal(false);\r\n public loading = signal(false);\r\n private errorSubscription: Subscription | null = null;\r\n private loadingSubscription: Subscription | null = null;\r\n\r\n public get data(): T[] | null {\r\n return this.dataSource?.data ?? null;\r\n }\r\n\r\n public constructor(private readonly httpClient: HttpClient) {}\r\n\r\n public initialize({baseUrl, resourceName, paginator, sort, initialSort, filters}: Props): ODataDataSource {\r\n const newDataSource = new ODataDataSource(this.httpClient, `${baseUrl}odata/${resourceName}`);\r\n\r\n newDataSource.filters = filters;\r\n if (initialSort){\r\n newDataSource.initialSort = initialSort;\r\n }\r\n if (sort) {\r\n newDataSource.sort = sort;\r\n }\r\n newDataSource.paginator = paginator;\r\n this.dataSource = newDataSource;\r\n\r\n this.dataSource.refresh();\r\n this.errorSubscription = this.dataSource.errors.subscribe((errors) => this.error.set(!!errors));\r\n\r\n this.loadingSubscription = this.dataSource.loading\r\n .pipe(distinctUntilChanged())\r\n .subscribe((isLoading: boolean) => {\r\n if (isLoading) {\r\n this.loading.set(false);\r\n }\r\n this.loading.set(isLoading);\r\n });\r\n\r\n return newDataSource;\r\n }\r\n\r\n public updateFilters(filters: ODataFilter[]) {\r\n if (this.dataSource) {\r\n this.dataSource.filters = filters;\r\n }\r\n }\r\n\r\n public forceReloadFilter() {\r\n if (this.dataSource) {\r\n // eslint-disable-next-line no-self-assign\r\n this.dataSource.filters = this.dataSource.filters;\r\n }\r\n }\r\n\r\n public isInitialized() {\r\n return this.dataSource !== null;\r\n }\r\n\r\n public refresh() {\r\n this.dataSource?.refresh();\r\n }\r\n\r\n public destroy() {\r\n this.errorSubscription?.unsubscribe();\r\n this.loadingSubscription?.unsubscribe();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, inject, input, Input, OnChanges, OnDestroy, Output, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ODataFilter } from 'odata-data-source';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { BaseDataGridComponent } from '../base-data-grid.component';\r\nimport { CaucaCoreService, toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { OdataListingService } from \"./odata-listing.service\";\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatRow, MatRowDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatCell, MatCellDef } from '@angular/material/table';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\nimport { DataGridHeaderComponent } from '../components/data-grid-header/data-grid-header.component';\r\nimport { DataGridProgressSpinerComponent } from '../components/data-grid-progress-spiner/data-grid-progress-spiner.component';\r\nimport { DataGridTableOptionsComponent } from '../components/data-grid-table-options/data-grid-table-options.component';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../../provide-cauca-grid';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'cauca-odata-grid',\r\n templateUrl: './odata-grid.component.html',\r\n styleUrls: ['./odata-grid.component.scss'],\r\n providers: [OdataListingService],\r\n imports: [\r\n NgTemplateOutlet,\r\n // Material table structure:\r\n MatTable, MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef,\r\n MatHeaderRow, MatHeaderRowDef,\r\n MatRow, MatRowDef, MatNoDataRow,\r\n // Material extras\r\n MatIcon, MatPaginator,\r\n // ngx-translate\r\n TranslateModule,\r\n // custom components\r\n DataGridHeaderComponent,\r\n DataGridTableOptionsComponent,\r\n IconButtonComponent,\r\n DataGridProgressSpinerComponent,\r\n ]\r\n})\r\nexport class OdataGridComponent extends BaseDataGridComponent implements OnChanges, OnDestroy {\r\n\r\n public showTableHeader = input(true);\r\n @Input() public baseSort?: string[];\r\n @Input() public filterPredicate?: (filter: string) => ODataFilter[];\r\n @Input() public showHeader: boolean = true;\r\n @Input() public selectedRowId: any;\r\n @Input() public idField: string = 'id';\r\n @Output() public itemClick: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() public refreshRequested: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() public showRefreshButton: boolean = false;\r\n @ContentChild(TemplateRef) public rowDetailTemplate!: TemplateRef<any>;\r\n @ViewChild(MatPaginator, {static: true}) public paginator!: MatPaginator;\r\n\r\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\r\n\r\n public constructor(\r\n translateService: TranslateService,\r\n public readonly listing: OdataListingService,\r\n ) {\r\n super(translateService, inject(PREFERENCE_SERVICE_TOKEN));\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.listing.destroy();\r\n }\r\n\r\n public refreshData(): void {\r\n this.listing.refresh();\r\n this.refreshRequested.emit();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n this.updateColumnsWhenNeeded(changes);\r\n }\r\n\r\n public getData(): unknown[] {\r\n return this.listing.data;\r\n }\r\n\r\n public applyFilter(filter: string): void {\r\n if (this.filterPredicate) {\r\n if (this.paginator) {\r\n this.paginator.firstPage();\r\n }\r\n this.listing.updateFilters(this.filterPredicate(toLowerCaseAndWithoutDiacritics(filter)));\r\n }\r\n }\r\n\r\n public refreshFilter(): void {\r\n if (this.filterPredicate) {\r\n this.listing.updateFilters(this.filterPredicate(toLowerCaseAndWithoutDiacritics(this.header.filterControl?.value)));\r\n }\r\n }\r\n\r\n public override setUpFilterPredicate(): void {\r\n this.listing.initialize({\r\n baseUrl: this.baseUrl,\r\n resourceName: this.resourceName,\r\n paginator: this.paginator,\r\n sort: this.sort,\r\n initialSort: this.baseSort,\r\n filters: this.filterPredicate?.('') ?? [],\r\n });\r\n }\r\n\r\n public override setUpSort(sort: MatSort): void {\r\n this.sort = sort;\r\n }\r\n\r\n protected updateColumnsWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.displayedColumns || changes.showExpandButton) {\r\n let columns = [...this.displayedColumns];\r\n if (this.showExpandButton()) {\r\n columns = ['expand', ...columns];\r\n }\r\n this.allDisplayedColumns.set([...columns]);\r\n }\r\n }\r\n\r\n protected override forceReloadFilter(): void {\r\n this.listing.forceReloadFilter();\r\n }\r\n\r\n protected override updateDataWhenNeeded(_changes: SimpleChanges): void {\r\n // not implemented\r\n }\r\n\r\n protected override onColumnsChanged(columns: string[]): void {\r\n if (this.showExpandButton() && columns.indexOf('expand') === -1) {\r\n columns = ['expand', ...columns];\r\n }\r\n super.onColumnsChanged(columns);\r\n }\r\n\r\n protected override showColumnsWhenTableOptionsIsFalse(): void {\r\n let columns = [...this.displayedColumns];\r\n if (this.showExpandButton()) {\r\n columns = ['expand', ...columns];\r\n }\r\n this.allDisplayedColumns.set([...columns]);\r\n }\r\n}\r\n","@if (showHeader) {\r\n <cauca-data-grid-header\r\n [showRefreshButton]=\"showRefreshButton\" (refreshRequest)=\"refreshData()\"\r\n [showAddButton]=\"showAddButton\"\r\n [addButtonLabel]=\"addButtonLabel || defaultAddButtonLabel\"\r\n (addButtonClick)=\"addButtonClick.emit($event)\" (filterChange)=\"applyFilter($event)\">\r\n <ng-content select=\"[filterRow]\" ngProjectAs=\"[filterRow]\" />\r\n </cauca-data-grid-header>\r\n}\r\n\r\n<ng-content select=\"[customHeader]\" ngProjectAs=\"[customHeader]\" />\r\n\r\n@if (showTableOptions) {\r\n <cauca-data-grid-table-options [showColumnViewer]=\"showColumnViewer\" [gridName]=\"resourceName\" (densityChanged)=\"onDensityChanged($event)\" (columnsChanged)=\"onColumnsChanged($event)\" [allColumns]=\"regularColumns\">\r\n <ng-content select=\"[customFilter]\" ngProjectAs=\"[customFilter]\" />\r\n </cauca-data-grid-table-options>\r\n}\r\n\r\n<div class=\"relative\">\r\n <table mat-table [dataSource]=\"listing.dataSource\" aria-describedby=\"Data Grid\" multiTemplateDataRows>\r\n @if (showExpandButton()) {\r\n <ng-container matColumnDef=\"expand\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div class=\"align-commands\">\r\n <cauca-icon-button (buttonClick)=\"onExpand(row)\" color=\"primary\" class=\"button-icon\" [icon]=\"row === expandedElement() ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\" />\r\n </div>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <ng-content></ng-content>\r\n @if(showTableHeader()) {\r\n <tr mat-header-row *matHeaderRowDef=\"allDisplayedColumns(); sticky: true\"></tr>\r\n }\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: allDisplayedColumns()\"\r\n [class.showClick]=\"itemClick.observers.length > 0\"\r\n [class.compact]=\"preference.gridDensity === density.Compact\"\r\n [class.standard]=\"preference.gridDensity === density.Standard\"\r\n [class.comfortable]=\"preference.gridDensity === density.Comfortable\"\r\n [class.selected]=\"selectedRowId === row[idField]\"\r\n (click)=\"itemClick.emit(row)\"\r\n onkeypress=\"itemClick.emit(row)\">\r\n </tr>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"grid-element-detail-wrapper\" [class.grid-element-detail-wrapper-expanded]=\"row === expandedElement()\">\r\n <div class=\"grid-element-detail\">\r\n @if (row === expandedElement()) {\r\n <template [ngTemplateOutlet]=\"rowDetailTemplate\" [ngTemplateOutletContext]=\"{ row: expandedElement() }\"></template>\r\n }\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"grid-detail-row\"></tr>\r\n\r\n <ng-container *matNoDataRow>\r\n @if(listing.loading() === false) {\r\n <ng-container>\r\n <tr class=\"mat-row\">\r\n @if (listing.error() === false) {\r\n <th class=\"mat-cell data-grid-message\"\r\n [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>grid_off</mat-icon>\r\n <span>{{ 'dataGrid.noDataLabel' | translate }}</span>\r\n </div>\r\n </th>\r\n } @else {\r\n <th class=\"mat-cell data-grid-message\"\r\n [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>error</mat-icon>\r\n <span>{{ 'dataGrid.errorLoadingDataLabel' | translate }}</span>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-container>\r\n }\r\n </ng-container>\r\n </table>\r\n\r\n <cauca-data-grid-progress-spiner [useBackground]=\"false\" [isLoading]=\"listing.loading()\" />\r\n\r\n</div>\r\n\r\n<mat-paginator [hidePageSize]=\"hidePageSize()\" [pageSizeOptions]=\"[5, 10, 25, 50]\" [pageSize]=\"10\" />\r\n","import { ChangeDetectionStrategy, Component, forwardRef, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-color-data-grid-column',\r\n standalone: true,\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, NgStyle,\r\n MatCell, MatCellDef,\r\n MatFooterCellDef, MatFooterCellDef\r\n ],\r\n templateUrl: './color-data-grid-column.component.html',\r\n styleUrl: './color-data-grid-column.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => ColorDataGridColumnComponent) }],\r\n})\r\nexport class ColorDataGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (row[prop]) {\r\n <div class=\"color-capsule\" [style.backgroundColor]=\"row[prop]\"></div>\r\n }\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n\r\n</ng-container>","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'cauca-check-icon',\r\n template: `\r\n <mat-icon\r\n class=\"check-icon\"\r\n [class.check-mark]=\"checkMark()\"\r\n [class.check]=\"check()\"\r\n [class.uncheck]=\"uncheck()\"\r\n aria-hidden=\"false\"\r\n aria-label=\"State icon\"\r\n [fontIcon]=\"icon()\" />\r\n `,\r\n styleUrls: ['./check-icon.component.scss'],\r\n imports: [MatIcon],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CheckIconComponent {\r\n public checkIcon = input<string>('check');\r\n public uncheckIcon = input<string>('block');\r\n public isChecked = input<boolean>(false);\r\n\r\n public icon = computed(() => (this.isChecked() ? this.checkIcon() : this.uncheckIcon()));\r\n public checkMark = computed(() => this.isChecked() && this.checkIcon() === 'check');\r\n public check = computed(() => this.isChecked() && this.checkIcon() !== 'check');\r\n public uncheck = computed(() => !this.isChecked());\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, Optional, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { CheckIconComponent } from '../../components/check-icon/check-icon.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-check-column',\r\n templateUrl: './data-grid-check-column.component.html',\r\n styleUrls: ['./data-grid-check-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridCheckColumnComponent) }],\r\n imports: [CheckIconComponent, MatColumnDef, MatHeaderCell, MatHeaderCellDef, NgStyle, MatCell, MatCellDef, MatFooterCell, MatFooterCellDef]\r\n})\r\nexport class DataGridCheckColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public checkIcon: string = 'check';\r\n @Input() public uncheckIcon: string = 'block';\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width, 'text-align': 'center'}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <cauca-check-icon [checkIcon]=\"checkIcon\" [uncheckIcon]=\"uncheckIcon\" [isChecked]=\"row[prop]\" />\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Optional, ViewEncapsulation, forwardRef, input } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-column',\r\n templateUrl: './data-grid-column.component.html',\r\n styleUrls: ['./data-grid-column.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, NgStyle, MatCell, MatCellDef, MatTooltip, MatFooterCell, MatFooterCellDef]\r\n})\r\nexport class DataGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public showToolTip: boolean = false;\r\n public summaryType = input<'none'|'sum'|'count'>('none');\r\n public summaryLabel = input<string>('');\r\n public format = input<'none'|'phone'>('none');\r\n public isInitialized = false;\r\n private readonly grid = null;\r\n\r\n public constructor (@Optional() odata: OdataGridComponent, @Optional() grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n this.grid = grid??odata;\r\n this.isInitialized = true;\r\n }\r\n\r\n public calculateSummary(): string {\r\n if (this.isInitialized && this.grid?.data) {\r\n if (this.summaryType() === 'sum') {\r\n return this.summaryLabel() + this.grid.data.reduce((acc, row) => acc + row[this.prop], 0) + this.summaryLabel();\r\n }\r\n if (this.summaryType() === 'count') {\r\n return this.grid.data?.length + this.summaryLabel();\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (showToolTip) {<span [matTooltip]=\"row[prop]\" >{{ row[prop] }}</span>}\r\n @else { <span>{{ row[prop] }}</span>}\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (isInitialized) {\r\n {{calculateSummary()}}\r\n }\r\n </td>\r\n\r\n</ng-container>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-command-icon-column',\r\n templateUrl: './data-grid-command-icon-column.component.html',\r\n styleUrls: ['./data-grid-command-icon-column.component.scss'],\r\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridCommandIconColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatSortHeader, MatHeaderCellDef, MatIcon, MatCell, MatCellDef, IconButtonComponent, MatFooterCell, MatFooterCellDef ]\r\n})\r\nexport class DataGridCommandIconColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public checkColor: string = '#F8B132';\r\n @Input() public checkIcon: string = 'star';\r\n @Input() public uncheckIcon: string = 'star_outline';\r\n @Input() public uncheckColor: string = 'default';\r\n\r\n @Output() public commandClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell mat-sort-header *matHeaderCellDef>\r\n <div>\r\n @if (label) {\r\n {{ label }}\r\n } @else {\r\n <mat-icon [style.color]=\"uncheckColor\" aria-hidden=\"false\" aria-label=\"State icon\" [fontIcon]=\"uncheckIcon\" />\r\n }\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div>\r\n <cauca-icon-button (buttonClick)=\"commandClick.emit(row)\" [icon]=\"row[prop] ? checkIcon : uncheckIcon\" [color]=\"row[prop] ? checkColor : uncheckColor\" />\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, TemplateRef, ViewEncapsulation, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\nimport { NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-commands-column',\r\n templateUrl: './data-grid-commands-column.component.html',\r\n styleUrls: ['./data-grid-commands-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridCommandsColumnComponent) }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, IconButtonComponent, NgTemplateOutlet, MatFooterCell, MatFooterCellDef, NgStyle, RouterLink]\r\n})\r\nexport class DataGridCommandsColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public canDelete: boolean = false;\r\n @Input() public canEdit: boolean = false;\r\n @Input() public canDuplicate: boolean = false;\r\n @Input() public editLinkField: string;\r\n\r\n @ContentChild(TemplateRef) public menuTemplate: TemplateRef<any>;\r\n\r\n @Output() public deleteClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n @Output() public editClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n @Output() public duplicateClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"buttons\">\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width}\"> {{ label }} </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n\r\n <div class=\"align-commands\">\r\n\r\n @if (canEdit) { <cauca-icon-button colorOnHover=\"var(--primary)\" color=\"grey\" icon=\"edit\" [routerLink]=\"editLinkField ? [row[editLinkField]] : null\" (buttonClick)=\"editClick?.emit(row)\" class=\"edit-button\" /> }\r\n\r\n @if (canDuplicate) { <cauca-icon-button color=\"grey\" icon=\"content_copy\" (buttonClick)=\"duplicateClick?.emit(row)\" class=\"duplicate-button\" /> }\r\n\r\n @if (canDelete) { <cauca-icon-button colorOnHover=\"var(--warn)\" color=\"grey\" icon=\"close\" (buttonClick)=\"deleteClick?.emit(row)\" class=\"delete-button\" /> }\r\n\r\n <template [ngTemplateOutlet]=\"menuTemplate\" [ngTemplateOutletContext]=\"{row:row}\"></template>\r\n\r\n </div>\r\n\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { Component, Input, OnDestroy, OnInit, Optional, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { IconComponent } from '@cauca-911/material';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-icon-column',\r\n templateUrl: './data-grid-icon-column.component.html',\r\n styleUrls: ['./data-grid-icon-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridIconColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, IconComponent, MatFooterCell, MatFooterCellDef, NgClass, MatIcon]\r\n})\r\nexport class DataGridIconColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public alignRight = false;\r\n @Input() public useMatIcon = false;\r\n @Input() public icon: string = '';\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef> {{ showLabel ? label ?? capitalize(prop) : '' }} </th>\r\n <td [ngClass]=\"alignRight ? 'td-right' : ''\" mat-cell *matCellDef=\"let row\">\r\n @if (useMatIcon) { <mat-icon>{{icon}}</mat-icon> }\r\n @else { <cauca-icon [icon]=\"row[prop]\" /> }\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, ContentChild, Input, InputSignal, ModelSignal, OnDestroy, OnInit, Optional, TemplateRef, ViewEncapsulation, forwardRef, input, model, output } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { IconButtonComponent, MenuItemComponent } from '@cauca-911/material';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-menu-column',\r\n templateUrl: './data-grid-menu-column.component.html',\r\n styleUrls: ['./data-grid-menu-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridMenuColumnComponent) }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderCellDef,\r\n MatCell,\r\n MatCellDef,\r\n IconButtonComponent,\r\n MatMenuModule,\r\n MenuItemComponent,\r\n NgTemplateOutlet,\r\n MatFooterCell,\r\n MatFooterCellDef,\r\n RouterLink\r\n ],\r\n})\r\nexport class DataGridMenuColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n public canDelete: ModelSignal<boolean> = model(false);\r\n @Input() public canDeleteByRow: (row: any) => boolean = null;\r\n public canEdit: InputSignal<boolean> = input(false);\r\n public canDuplicate: ModelSignal<boolean> = model(false);\r\n @Input() public canDuplicateByRow: (row: any) => boolean = null;\r\n public editLinkField: InputSignal<string> = input();\r\n public duplicateLinkField: InputSignal<string> = input();\r\n @ContentChild(TemplateRef) public menuTemplate: TemplateRef<any>;\r\n\r\n public deleteClick = output<unknown>();\r\n public editClick = output<unknown>();\r\n public duplicateClick = output<unknown>();\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n public menuOpened(row: any): void {\r\n if (this.canDeleteByRow) {\r\n this.canDelete.set(this.canDeleteByRow(row));\r\n }\r\n if (this.canDuplicateByRow) {\r\n this.canDuplicate.set(this.canDuplicateByRow(row));\r\n }\r\n }\r\n}\r\n","<ng-container matColumnDef=\"menu\">\r\n <th mat-header-cell *matHeaderCellDef> {{ label }} </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div class=\"align-commands\">\r\n\r\n <cauca-icon-button colorOnHover=\"var(--primary)\" color=\"grey\" icon=\"more_horiz\" [matMenuTriggerFor]=\"actionMenu\" (menuOpened)=\"menuOpened(row)\" />\r\n\r\n <mat-menu #actionMenu=\"matMenu\" class=\"grid-menu\">\r\n @if (canEdit()) {\r\n <cauca-menu-item colorOnHover=\"var(--primary)\" icon=\"edit\" label=\"edit\" [translateLabel]=\"true\" [routerLink]=\"editLinkField() ? [row[editLinkField()]] : null\" (buttonClick)=\"editClick?.emit(row)\" class=\"edit-button\" />\r\n }\r\n\r\n @if (canDuplicate()) {\r\n <cauca-menu-item icon=\"content_copy\" label=\"duplicate\" [translateLabel]=\"true\" [routerLink]=\"duplicateLinkField() ? [row[duplicateLinkField()]] : null\" [queryParams]=\"{ duplicate: true }\" (buttonClick)=\"duplicateClick?.emit(row)\" class=\"duplicate-button\" />\r\n }\r\n\r\n @if (canDelete()) {\r\n <cauca-menu-item colorOnHover=\"var(--warn)\" icon=\"close\" label=\"delete\" [translateLabel]=\"true\" (buttonClick)=\"deleteClick?.emit(row)\" class=\"delete-button\" />\r\n }\r\n <template [ngTemplateOutlet]=\"menuTemplate\" [ngTemplateOutletContext]=\"{row:row}\"></template>\r\n\r\n </mat-menu>\r\n\r\n </div>\r\n\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport dayjs from 'dayjs';\r\n\r\n@Component({\r\n selector: 'cauca-time-label',\r\n imports: [DatePipe, MatTooltip],\r\n templateUrl: './time-label.component.html',\r\n styleUrl: './time-label.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TimeLabelComponent {\r\n public date = input.required<Date|null>();\r\n public minLimit = input<Date|null>(null);\r\n public maxLimit = input<Date|null>(null);\r\n public showTime = input<boolean>(true);\r\n public showSecond = input(false);\r\n\r\n public dateMask = computed(() => this.showTime() ? `dd/MM/yyy${this.timeFormat()}` : 'dd/MM/yyyy');\r\n public displayDate = computed(() => {\r\n if (!this.date()) {\r\n return '';\r\n }\r\n const date = new Date(this.date());\r\n if (this.minLimit()) {\r\n const minLimit = new Date(this.minLimit());\r\n return date < minLimit ? minLimit : date;\r\n } else if (this.maxLimit()) {\r\n const maxLimit = dayjs(this.maxLimit()).add(-1, 'second').toDate();\r\n return date > maxLimit ? maxLimit : date;\r\n } else {\r\n return date;\r\n }\r\n });\r\n \r\n private readonly timeFormat = computed(() => this.showSecond() ? ' HH:mm:ss' : ' HH:mm');\r\n}\r\n","<span [matTooltip]=\"displayDate() | date:dateMask()\">{{ displayDate() | date:dateMask() }}</span>","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewEncapsulation, forwardRef, Optional, input } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\nimport { NgStyle } from '@angular/common';\r\nimport { TimeLabelComponent } from '../../components/time-label/time-label.component';\r\n\r\n@Component({\r\n selector: 'cauca-date-grid-column',\r\n templateUrl: './date-grid-column.component.html',\r\n styleUrls: ['./date-grid-column.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DateGridColumnComponent) }],\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatSortHeader, NgStyle,\r\n MatCell, MatCellDef,\r\n TimeLabelComponent,\r\n MatFooterCell, MatFooterCellDef,\r\n ]\r\n})\r\nexport class DateGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n public showWithTime = input(false);\r\n public showSecond = input(false);\r\n\r\n public maxDate = input<Date|null>(null);\r\n public minDate = input<Date|null>(null);\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngStyle]=\"{'width': width}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n <cauca-time-label [date]=\"row[prop]\" [showTime]=\"showWithTime()\" [showSecond]=\"showSecond()\" [minLimit]=\"minDate()\" [maxLimit]=\"maxDate()\" />\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>\r\n\r\n","import { Component, Input, OnDestroy, OnInit, Optional, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { CheckIconComponent } from '../../components/check-icon/check-icon.component';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'cauca-sortable-data-grid-check-column',\r\n templateUrl: './sortable-data-grid-check-column.component.html',\r\n styleUrls: ['./sortable-data-grid-check-column.component.scss'],\r\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => SortableDataGridCheckColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatSortHeader, NgStyle, MatTooltip, MatCell, MatCellDef, CheckIconComponent, MatFooterCell, MatFooterCellDef]\r\n})\r\nexport class SortableDataGridCheckColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public checkIcon: string = 'check';\r\n @Input() public uncheckIcon: string = 'block';\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngStyle]=\"{'width': width}\" [matTooltip]=\"label ?? capitalize(prop)\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\" [ngStyle]=\"{'width': width}\">\r\n <cauca-check-icon [checkIcon]=\"checkIcon\" [uncheckIcon]=\"uncheckIcon\" [isChecked]=\"row[prop]\" />\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Component({\r\n selector: 'cauca-column-label',\r\n imports: [MatTooltip],\r\n templateUrl: './column-label.component.html',\r\n styleUrl: './column-label.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ColumnLabelComponent {\r\n public value = input<any>(null);\r\n public format = input<'none'|'phone'>('none');\r\n public showToolTip = input<boolean>(false);\r\n public displayValue = computed(() => {\r\n if (this.format() === 'phone') {\r\n return this.value()?.toString().replace(/(\\d{3})(\\d{3})(\\d{4})/, '$1-$2-$3');\r\n }\r\n return this.value();\r\n });\r\n}\r\n\r\n","@if (showToolTip()) {<span [matTooltip]=\"displayValue()\" >{{ displayValue() }}</span>}\r\n@else { <span>{{displayValue()}}</span>}","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Optional, ViewEncapsulation, forwardRef, input } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { ColumnLabelComponent } from '../../components/column-label/column-label.component';\r\nimport { NgStyle } from '@angular/common';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'cauca-sortable-data-grid-column',\r\n templateUrl: './sortable-data-grid-column.component.html',\r\n styleUrls: ['./sortable-data-grid-column.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => SortableDataGridColumnComponent) }],\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatSortHeader, NgStyle,\r\n MatCell, MatCellDef,\r\n MatTooltip, ColumnLabelComponent,\r\n MatFooterCell, MatFooterCellDef,\r\n ]\r\n})\r\nexport class SortableDataGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public showToolTip: boolean = false;\r\n public summaryType = input<'none'|'sum'|'count'>('none');\r\n public summaryLabel = input<string>('');\r\n public format = input<'none'|'phone'>('none');\r\n\r\n public isInitialized = false;\r\n private readonly grid = null;\r\n\r\n public constructor (@Optional() odata: OdataGridComponent, @Optional() grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n this.grid = grid??odata;\r\n this.isInitialized = true;\r\n }\r\n\r\n public calculateSummary(): string {\r\n if (this.isInitialized && this.grid?.data) {\r\n if (this.summaryType() === 'sum') {\r\n return this.summaryLabel() + this.grid.data.reduce((acc, row) => acc + row[this.prop], 0) + this.summaryLabel();\r\n }\r\n if (this.summaryType() === 'count') {\r\n return this.grid.data?.length + this.summaryLabel();\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n","\r\n<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngStyle]=\"{'width': width}\" [matTooltip]=\"label ?? capitalize(prop)\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n <cauca-column-label [value]=\"row[prop]\" [showToolTip]=\"showToolTip\" [format]=\"format()\" />\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (isInitialized) {\r\n {{calculateSummary()}}\r\n }\r\n </td>\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-translation-grid-column',\r\n templateUrl: './translation-grid-column.component.html',\r\n styleUrl: './translation-grid-column.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => TranslationGridColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, TranslateModule, MatFooterCell, MatFooterCellDef],\r\n})\r\nexport class TranslationGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public prefix: string = \"\";\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (prefix && row[prop]) { <span>{{ prefix+'.'+row[prop] | translate }}</span> }\r\n @else if(row[prop]) { <span>{{ row[prop] | translate }}</span> }\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","/*\r\n * Public API Surface of cauca-datagrid\r\n */\r\n\r\nexport * from './lib/data-grid/data-grid/data-grid.component';\r\nexport * from './lib/data-grid/odata-grid/odata-grid.component';\r\nexport * from './lib/data-grid/odata-grid/odata-listing.service';\r\n\r\nexport * from './lib/data-grid/components/data-grid-header/data-grid-header.component';\r\n\r\nexport * from './lib/data-grid/columns/base-grid-column.component';\r\nexport * from './lib/data-grid/columns/color-data-grid-column/color-data-grid-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-check-column/data-grid-check-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-column/data-grid-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-command-icon-column/data-grid-command-icon-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-commands-column/data-grid-commands-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-icon-column/data-grid-icon-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-menu-column/data-grid-menu-column.component';\r\nexport * from './lib/data-grid/columns/date-grid-column/date-grid-column.component';\r\nexport * from './lib/data-grid/columns/sortable-data-grid-check-column/sortable-data-grid-check-column.component';\r\nexport * from './lib/data-grid/columns/sortable-data-grid-column/sortable-data-grid-column.component';\r\nexport * from './lib/data-grid/columns/translation-grid-column/translation-grid-column.component';\r\nexport * from './lib/data-grid/models/data-grid-row-drop-event';\r\n\r\nexport * from './lib/provide-cauca-grid';\r\nexport * from './lib/services/base-preference-service';\r\nexport * from './lib/data-grid/models/density-enum';\r\nexport * from './lib/services/preference';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i1","i2","i5","i2.OdataListingService","i1.OdataGridComponent","i2.DataGridComponent","i3"],"mappings":"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"}
1
+ {"version":3,"file":"cauca-911-datagrid.mjs","sources":["../../../projects/cauca-datagrid/src/lib/data-grid/models/data-grid-row-drop-event.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/base-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-header/data-grid-header.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-header/data-grid-header.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/models/density-enum.ts","../../../projects/cauca-datagrid/src/lib/services/preference.ts","../../../projects/cauca-datagrid/src/lib/services/mat-paginator-localization.service.ts","../../../projects/cauca-datagrid/src/lib/services/preference.service.ts","../../../projects/cauca-datagrid/src/lib/provide-cauca-grid.ts","../../../projects/cauca-datagrid/src/lib/data-grid/base-data-grid.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/button-popover/button-popover.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/button-popover/button-popover.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-table-options/data-grid-table-options.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-table-options/data-grid-table-options.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-progress-spiner/data-grid-progress-spiner.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/data-grid-progress-spiner/data-grid-progress-spiner.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/data-grid/data-grid.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/data-grid/data-grid.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/odata-grid/odata-listing.service.ts","../../../projects/cauca-datagrid/src/lib/data-grid/odata-grid/odata-grid.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/odata-grid/odata-grid.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/color-data-grid-column/color-data-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/color-data-grid-column/color-data-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/check-icon/check-icon.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-check-column/data-grid-check-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-check-column/data-grid-check-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-column/data-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-column/data-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-command-icon-column/data-grid-command-icon-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-command-icon-column/data-grid-command-icon-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-commands-column/data-grid-commands-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-commands-column/data-grid-commands-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-icon-column/data-grid-icon-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-icon-column/data-grid-icon-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-menu-column/data-grid-menu-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/data-grid-menu-column/data-grid-menu-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/time-label/time-label.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/time-label/time-label.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/date-grid-column/date-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/date-grid-column/date-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-check-column/sortable-data-grid-check-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-check-column/sortable-data-grid-check-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/components/column-label/column-label.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/components/column-label/column-label.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-column/sortable-data-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/sortable-data-grid-column/sortable-data-grid-column.component.html","../../../projects/cauca-datagrid/src/lib/data-grid/columns/translation-grid-column/translation-grid-column.component.ts","../../../projects/cauca-datagrid/src/lib/data-grid/columns/translation-grid-column/translation-grid-column.component.html","../../../projects/cauca-datagrid/src/public-api.ts","../../../projects/cauca-datagrid/src/cauca-911-datagrid.ts"],"sourcesContent":["export class DataGridRowDropEvent {\r\n public item: unknown;\r\n public data: unknown[];\r\n public fromIndex: number;\r\n public toIndex: number;\r\n\r\n public constructor(data: {\r\n item: unknown;\r\n data: unknown[];\r\n fromIndex: number;\r\n toIndex: number;\r\n }) {\r\n Object.assign(this, data);\r\n }\r\n}\r\n","import { Component, HostBinding, Input, OnDestroy, OnInit, Optional, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatCellDef, MatColumnDef, MatFooterCellDef, MatHeaderCellDef, MatTable } from '@angular/material/table';\r\n\r\n@Component({ template: '' ,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport abstract class BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public prop = '';\r\n @Input() public showLabel = true;\r\n @Input() public label: string | undefined;\r\n @Input() public isInColumnChooser: boolean = true;\r\n @Input() public width: string = \"\";\r\n @Input() public showToolTip: boolean = false;\r\n\r\n @HostBinding('attr.ariaHidden') public ariaHidden!: true;\r\n @HostBinding('class') public classes!: 'column-template cdk-visually-hidden';\r\n\r\n @ViewChild(MatColumnDef, { static: true }) public columnDef!: MatColumnDef;\r\n @ViewChild(MatCellDef, { static: true }) public cellDef!: MatCellDef;\r\n @ViewChild(MatHeaderCellDef, { static: true }) public headerCellDef!: MatHeaderCellDef;\r\n @ViewChild(MatFooterCellDef, { static: true }) public footerCellDef!: MatFooterCellDef;\r\n\r\n public selected: boolean = true;\r\n\r\n public constructor(@Optional() public table: MatTable<unknown>) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n if (this.columnDef) {\r\n if (!this.columnDef.name) {\r\n this.columnDef.name = this.prop;\r\n }\r\n this.columnDef.cell = this.cellDef;\r\n this.columnDef.headerCell = this.headerCellDef;\r\n this.columnDef.footerCell = this.footerCellDef;\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.table) {\r\n this.table.removeColumnDef(this.columnDef);\r\n }\r\n }\r\n\r\n public capitalize(value: string): string {\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { IconButtonComponent, RaisedButtonComponent } from '@cauca-911/material';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { Subject, debounceTime, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-header',\r\n templateUrl: './data-grid-header.component.html',\r\n styleUrls: ['./data-grid-header.component.scss'],\r\n imports: [MatFormFieldModule, IconButtonComponent, RaisedButtonComponent, MatInputModule, ReactiveFormsModule, TranslateModule, MatIcon],\r\n})\r\nexport class DataGridHeaderComponent implements OnInit, OnDestroy {\r\n\r\n public filterControl: FormControl<string> = new FormControl<string>('');\r\n public showClearButton: boolean;\r\n\r\n @Input() public showAddButton: boolean = false;\r\n @Input() public showRefreshButton: boolean = false;\r\n @Input() public addButtonLabel: string = '';\r\n @Output() public filterChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() public addButtonClick: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() public refreshRequest: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n protected _onDestroy = new Subject<void>();\r\n\r\n public ngOnInit(): void {\r\n this.filterControl.valueChanges\r\n .pipe(\r\n debounceTime(500),\r\n takeUntil(this._onDestroy))\r\n .subscribe((filter: string) => {\r\n this.filterChange.emit(filter);\r\n this.showClearButton = !!filter;\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n public onRefresh(): void {\r\n this.refreshRequest.emit();\r\n }\r\n\r\n public clearSearchValue(): void {\r\n this.filterControl.setValue('');\r\n }\r\n\r\n public onAddButtonClick(): void {\r\n this.addButtonClick.emit(null);\r\n }\r\n}\r\n","<div class=\"grid-header\">\r\n\r\n <mat-form-field appearance=\"outline\" class=\"full-width-field grid-search-box\" subscriptSizing=\"dynamic\">\r\n @if (showClearButton) { <cauca-icon-button matPrefix (buttonClick)=\"clearSearchValue()\" icon=\"close\" /> }\r\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate}}</mat-label>\r\n <input matInput [formControl]=\"filterControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n\r\n <ng-content select=\"[filterRow]\" ngProjectAs=\"[filterRow]\" />\r\n\r\n @if (showRefreshButton) { <cauca-icon-button (buttonClick)=\"onRefresh()\" icon=\"refresh\" class=\"grid-refresh-button\" /> }\r\n\r\n @if (showAddButton) { <cauca-raised-button icon=\"add\" color=\"primary\" [label]=\"addButtonLabel\" [translateLabel]=\"false\" class=\"grid-new-button\" (buttonClick)=\"onAddButtonClick()\" /> }\r\n</div>","export enum Density {\r\n Compact = \"compact\",\r\n Standard = \"standard\",\r\n Comfortable = \"comfortable\"\r\n}","import { Density } from \"../data-grid/models/density-enum\";\r\n\r\nexport class Preference {\r\n public gridDensity: Density;\r\n}\r\n\r\nexport class GridConfiguration {\r\n public name: string;\r\n public visibleColumns: string[];\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\r\nimport { TranslateService } from \"@cauca-911/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MatPaginatorLocalizationService extends MatPaginatorIntl {\r\n public itemsPerPageLabel: string = 'Items per page';\r\n public nextPageLabel: string = 'Next page';\r\n public previousPageLabel: string = 'Previous page';\r\n public ofLabel: string = 'of'\r\n\r\n public constructor(\r\n private readonly translateService: TranslateService) {\r\n super();\r\n this.translateService.onLangChange.subscribe(() => this.loadTranslations());\r\n this.loadTranslations();\r\n }\r\n\r\n public getRangeLabel = (page, pageSize, length): string => {\r\n if (length == 0 || pageSize == 0) {\r\n return `0 ${this.ofLabel} ${length}`;\r\n }\r\n\r\n length = Math.max(length, 0);\r\n const startIndex = page * pageSize;\r\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\r\n return `${startIndex + 1} – ${endIndex} ${this.ofLabel} ${length}`;\r\n };\r\n\r\n private loadTranslations(): any {\r\n this.translateService.get([\r\n 'paginator.itemsPerPage',\r\n 'paginator.nextPage',\r\n 'paginator.previousPage',\r\n 'paginator.of'\r\n ])\r\n .subscribe(translation => {\r\n this.itemsPerPageLabel = translation['paginator.itemsPerPage'];\r\n this.nextPageLabel = translation['paginator.nextPage'];\r\n this.previousPageLabel = translation['paginator.previousPage'];\r\n this.ofLabel = translation['paginator.of'];\r\n this.changes.next();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { GridConfiguration, Preference } from './preference';\r\nimport { Density } from '../data-grid/models/density-enum';\r\nimport { BasePreferenceService } from './base-preference-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PreferenceService implements BasePreferenceService {\r\n public preference: BehaviorSubject<Preference> = new BehaviorSubject<Preference>(new Preference());\r\n\r\n public gridConfiguration: GridConfiguration[] = [];\r\n\r\n public constructor() {\r\n const data = localStorage.getItem('GridPreference');\r\n const configuration = localStorage.getItem('GridConfiguration');\r\n if (data) {\r\n this.preference.next(JSON.parse(data));\r\n }\r\n if (configuration) {\r\n this.gridConfiguration = JSON.parse(configuration);\r\n }\r\n }\r\n\r\n public getPreference(): Preference {\r\n return this.preference.value;\r\n }\r\n\r\n public setPreferenceDensity(density: Density) {\r\n const preference = this.getPreference();\r\n if (density === preference.gridDensity) return;\r\n preference.gridDensity = density;\r\n this.preference.next(preference);\r\n this.addOrUpdatePreference();\r\n }\r\n\r\n public addOrUpdatePreference(): void {\r\n localStorage.setItem('GridPreference', JSON.stringify(this.getPreference()));\r\n }\r\n\r\n public getPreferenceForGrid(gridName: string): Observable<GridConfiguration> {\r\n return of(this.getPreferenceForGridNotObservable(gridName));\r\n }\r\n\r\n public addOrUpdateGridPreference(gridName: string, visibleColumns: string[]): Observable<void> {\r\n const configuration = this.getPreferenceForGridNotObservable(gridName);\r\n configuration.visibleColumns = visibleColumns || [];\r\n localStorage.setItem('GridConfiguration', JSON.stringify(this.gridConfiguration));\r\n return of();\r\n }\r\n\r\n private getPreferenceForGridNotObservable(gridName: string): GridConfiguration {\r\n const configuration = this.gridConfiguration.find(g => g.name == gridName);\r\n if (configuration) {\r\n return configuration;\r\n }\r\n const newConfiguration = new GridConfiguration();\r\n newConfiguration.name = gridName;\r\n this.gridConfiguration.push(newConfiguration);\r\n return newConfiguration;\r\n }\r\n}","import { CDK_DRAG_CONFIG } from \"@angular/cdk/drag-drop\";\r\nimport { Provider, EnvironmentProviders, Type, InjectionToken } from \"@angular/core\";\r\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\r\nimport { MatPaginatorLocalizationService } from \"./services/mat-paginator-localization.service\";\r\nimport { PreferenceService } from \"./services/preference.service\";\r\nimport { BasePreferenceService } from \"./services/base-preference-service\";\r\n\r\nexport interface CaucaGridOptions {\r\n /** If not provided, a default implementation will be used which will use localStorage to store the grid preferences. */\r\n gridPreferenceService?: Type<BasePreferenceService>\r\n}\r\n\r\nexport const PREFERENCE_SERVICE_TOKEN = new InjectionToken<BasePreferenceService>('CaucaGridPreferenceService');\r\n\r\nexport function provideCaucaGrid(options?: CaucaGridOptions): (Provider|EnvironmentProviders) {\r\n return [\r\n { provide: CDK_DRAG_CONFIG, useValue: { previewContainer: 'parent' } },\r\n { provide: MatPaginatorIntl, useClass: MatPaginatorLocalizationService },\r\n { provide: PREFERENCE_SERVICE_TOKEN, useClass: options?.gridPreferenceService || PreferenceService }\r\n ];\r\n}\r\n","import {\r\n AfterContentInit, Component, ContentChild,\r\n ContentChildren, EventEmitter, Inject, input, Input, OnChanges, Output, QueryList, signal, SimpleChanges, ViewChild\r\n} from '@angular/core';\r\nimport { MatColumnDef, MatFooterRowDef, MatHeaderRowDef, MatNoDataRow, MatRowDef, MatTable } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BaseGridColumnComponent } from './columns/base-grid-column.component';\r\nimport { DataGridHeaderComponent } from './components/data-grid-header/data-grid-header.component';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { Density } from './models/density-enum';\r\nimport { Preference } from '../services/preference';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BasePreferenceService } from '../services/base-preference-service';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../provide-cauca-grid';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseDataGridComponent implements AfterContentInit, OnChanges {\r\n @Input({ required: true }) public resourceName: string;\r\n @Input() public displayedColumns: string[] = [];\r\n @Input() public showAddButton: boolean = false;\r\n @Input() public addButtonLabel: string = '';\r\n @Input() public searchableColumns: string[];\r\n @Input() public showTableOptions: boolean = false;\r\n @Input() public showColumnViewer: boolean = true;\r\n @Output() public addButtonClick: EventEmitter<void> = new EventEmitter<void>();\r\n public showPaginator = input<boolean>(false);\r\n public hidePageSize = input<boolean>(false);\r\n public showExpandButton = input<boolean>(false);\r\n public expandedElement = signal<any>(null);\r\n\r\n @ViewChild(DataGridHeaderComponent) public header!: DataGridHeaderComponent;\r\n @ViewChild(MatTable, { static: true }) public table: MatTable<unknown>;\r\n @ContentChildren(BaseGridColumnComponent) public regularColumns: QueryList<BaseGridColumnComponent>;\r\n @ContentChildren(MatColumnDef) public columnDefs: QueryList<MatColumnDef>;\r\n @ContentChild(MatHeaderRowDef) public headerRowDef: QueryList<MatHeaderRowDef>;\r\n @ContentChild(MatFooterRowDef) public footerRowDef: QueryList<MatFooterRowDef>;\r\n @ContentChildren(MatRowDef) public rowDefs: QueryList<MatRowDef<unknown>>;\r\n @ContentChild(MatNoDataRow) public noDataRow: MatNoDataRow;\r\n @ViewChild(MatPaginator) public paginator: MatPaginator;\r\n\r\n public defaultAddButtonLabel: string = '';\r\n public allDisplayedColumns = signal<string[]>([]);\r\n public preference: Preference;\r\n\r\n protected sort: MatSort = null;\r\n\r\n public get density(): typeof Density {\r\n return Density;\r\n }\r\n\r\n \r\n public constructor(translateService: TranslateService,\r\n @Inject(PREFERENCE_SERVICE_TOKEN) private preferenceService: BasePreferenceService,) {\r\n this.defaultAddButtonLabel = translateService.instant('dataGrid.defaultAddButtonLabel');\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n this.setUpPaginator(this.paginator, this.showPaginator());\r\n this.setUpFilterPredicate();\r\n if (this.table && this.regularColumns && this.rowDefs && this.columnDefs) {\r\n this.applyColumns();\r\n }\r\n\r\n if (this.showTableOptions) {\r\n this.preferenceService.preference.subscribe((preference) => {\r\n this.preference = preference;\r\n });\r\n } else {\r\n this.showColumnsWhenTableOptionsIsFalse();\r\n this.preference = new Preference();\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n this.updateDataWhenNeeded(changes);\r\n this.updateColumnsWhenNeeded(changes);\r\n }\r\n\r\n public onExpand(element: any): void {\r\n if (this.expandedElement() === element) {\r\n this.expandedElement.set(null);\r\n } else {\r\n this.expandedElement.set(element);\r\n }\r\n }\r\n\r\n public clearFilter(): void {\r\n this.header?.clearSearchValue();\r\n }\r\n\r\n public renderRows(): void {\r\n this.forceReloadFilter();\r\n this.applyColumns();\r\n this.table.renderRows();\r\n }\r\n\r\n public onDensityChanged(density: Density): void {\r\n this.preferenceService.setPreferenceDensity(density);\r\n }\r\n\r\n public abstract getData(): unknown[];\r\n protected abstract setUpFilterPredicate(): void;\r\n protected abstract setUpSort(sort: MatSort): void;\r\n protected abstract forceReloadFilter(): void;\r\n protected abstract updateDataWhenNeeded(changes: SimpleChanges): void;\r\n protected abstract showColumnsWhenTableOptionsIsFalse(): void;\r\n\r\n protected setUpPaginator(_paginator: MatPaginator, _showPaginator: boolean): void {\r\n // nothing\r\n }\r\n\r\n protected onColumnsChanged(columns: string[]): void {\r\n this.allDisplayedColumns.set([...columns]);\r\n const columnsToSave = this.removeMandatoryColumns([...columns]);\r\n this.preferenceService.addOrUpdateGridPreference(this.resourceName, columnsToSave).subscribe();\r\n }\r\n\r\n protected applyColumns(): void {\r\n this.regularColumns.forEach(dynColumn => this.table.addColumnDef(dynColumn.columnDef));\r\n this.rowDefs.forEach(rowDef => this.table.addRowDef(rowDef));\r\n this.table.setNoDataRow(this.noDataRow);\r\n this.columnDefs.forEach(columnDef => {\r\n this.table.addColumnDef(columnDef);\r\n this.sort.register({ id: columnDef.name, start: 'desc', disableClear: false });\r\n });\r\n }\r\n\r\n protected updateColumnsWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.displayedColumns) {\r\n this.allDisplayedColumns.set([...this.displayedColumns]);\r\n }\r\n }\r\n\r\n private removeMandatoryColumns(columns: string[]): string[] {\r\n let index = columns.indexOf(\"\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"position\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"buttons\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"menu\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n index = columns.indexOf(\"expand\");\r\n if (index > -1) {\r\n columns.splice(index, 1);\r\n }\r\n\r\n return columns;\r\n }\r\n}\r\n","import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\r\nimport { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';\r\nimport { BasicButtonComponent } from '@cauca-911/material';\r\n\r\n@Component({\r\n selector: 'cauca-button-popover',\r\n templateUrl: './button-popover.component.html',\r\n styleUrls: ['./button-popover.component.scss'],\r\n imports: [CdkConnectedOverlay, BasicButtonComponent, CdkOverlayOrigin],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonPopoverComponent {\r\n public buttonLabel = input<string>(null);\r\n public buttonIcon = input<string>('');;\r\n public color = input<string>('primary');\r\n\r\n public isActive = signal<boolean>(false);\r\n\r\n public toggle() {\r\n this.isActive.set(!this.isActive());\r\n }\r\n\r\n public close() {\r\n if (this.isActive()) {\r\n this.isActive.set(false);\r\n }\r\n }\r\n}\r\n","<cauca-basic-button [icon]=\"buttonIcon()\" [color]=\"color()\" [label]=\"buttonLabel()\" [translateLabel]=\"false\" (buttonClick)=\"toggle()\" cdkOverlayOrigin #popoverTrigger=\"cdkOverlayOrigin\" />\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"popoverTrigger\"\r\n [cdkConnectedOverlayOpen]=\"isActive()\"\r\n [cdkConnectedOverlayHasBackdrop]=\"isActive()\"\r\n [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop-cs'\"\r\n (backdropClick)=\"toggle()\">\r\n <ng-content></ng-content>\r\n</ng-template>","import { Component, EventEmitter, inject, Input, OnInit, Output, QueryList, ViewChild } from '@angular/core';\r\nimport { Density } from '../../models/density-enum';\r\nimport { BaseGridColumnComponent } from '../../columns/base-grid-column.component';\r\nimport { ButtonPopoverComponent } from '../button-popover/button-popover.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { BasicButtonComponent, MenuItemComponent, RaisedButtonComponent, StrokedButtonComponent } from '@cauca-911/material';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../../../provide-cauca-grid';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-table-options',\r\n templateUrl: './data-grid-table-options.component.html',\r\n styleUrls: ['./data-grid-table-options.component.scss'],\r\n imports: [MatCardModule, ButtonPopoverComponent, MatCheckboxModule, StrokedButtonComponent, RaisedButtonComponent, BasicButtonComponent, MatMenuModule, FormsModule, TranslateModule, MenuItemComponent],\r\n})\r\nexport class DataGridTableOptionsComponent implements OnInit {\r\n @Input({ required: true }) public gridName: string;\r\n @Input() public showColumnViewer: boolean = true;\r\n\r\n @Output() public densityChanged: EventEmitter<Density> = new EventEmitter<Density>();\r\n\r\n @Input() public allColumns: QueryList<BaseGridColumnComponent> = new QueryList();\r\n @Output() public columnsChanged: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n\r\n @ViewChild(ButtonPopoverComponent, { static: true }) public columnViewer: ButtonPopoverComponent;\r\n\r\n public columnsSearch: string = '';\r\n\r\n private readonly preferenceService = inject(PREFERENCE_SERVICE_TOKEN);\r\n\r\n public get density(): typeof Density {\r\n return Density;\r\n }\r\n\r\n public get columns(): BaseGridColumnComponent[] {\r\n return this.allColumns.filter(c => c.prop !== 'buttons' && c.prop !== 'menu' && c.prop !== '' && c.isInColumnChooser);\r\n }\r\n\r\n public get currentDensityIcon(): string {\r\n const currentDensity = this.preferenceService.getPreference()?.gridDensity;\r\n if (currentDensity === Density.Compact) {\r\n return 'density_small';\r\n }\r\n\r\n if (currentDensity === Density.Comfortable) {\r\n return 'density_large';\r\n }\r\n\r\n return 'density_medium';\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.preferenceService.getPreferenceForGrid(this.gridName).subscribe({\r\n next: configuration => {\r\n if (configuration?.visibleColumns) {\r\n this.selectOnlyUserColumns(configuration.visibleColumns);\r\n } else {\r\n this.selectAllColumns();\r\n }\r\n this.onColumnsChanged();\r\n }\r\n });\r\n }\r\n\r\n public closeColumnViewer(): void {\r\n if (this.columnViewer) {\r\n this.columnViewer.close();\r\n }\r\n }\r\n\r\n public changeDensity(newDensity: Density): void {\r\n this.densityChanged.emit(newDensity);\r\n }\r\n\r\n public onColumnsChanged(): void {\r\n const newColumns = this.allColumns.filter(column => column.selected);\r\n this.columnsChanged.emit(newColumns.map((column) => column.prop));\r\n }\r\n\r\n public resetColumns(): void {\r\n this.allColumns.forEach((column => column.selected = true));\r\n this.columnsChanged.emit(this.allColumns.map((column) => column.prop));\r\n }\r\n\r\n private selectOnlyUserColumns(configurationVisibleColumns: string[]): void {\r\n this.allColumns.forEach((column => {\r\n const index = configurationVisibleColumns.findIndex(c => c === column.prop);\r\n if (index === -1 && column.prop !== 'buttons' && column.prop !== 'menu' && column.prop !== '') {\r\n column.selected = false;\r\n }\r\n }));\r\n }\r\n\r\n private selectAllColumns(): void {\r\n this.allColumns.forEach((column => {\r\n column.selected = true;\r\n }));\r\n }\r\n}\r\n","<div class=\"table-options-bar\">\r\n <div class=\"table-options\">\r\n @if (showColumnViewer) { <cauca-button-popover [buttonLabel]=\"'dataGrid.columns' | translate\" buttonIcon=\"view_column\">\r\n <mat-card>\r\n <mat-card-content>\r\n <div class=\"columns\">\r\n @for (column of columns; track column) {\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"column.selected\"\r\n (change)=\"onColumnsChanged()\">\r\n {{column.label}}\r\n </mat-checkbox>\r\n }\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <cauca-stroked-button [small]=\"true\" color=\"primary\" (buttonClick)=\"resetColumns()\" label=\"dataGrid.columnChooser.reset\" [translateLabel]=\"true\" />\r\n <cauca-raised-button [small]=\"true\" color=\"primary\" (buttonClick)=\"resetColumns()\" label=\"dataGrid.columnChooser.showAll\" [translateLabel]=\"true\" />\r\n </mat-card-actions>\r\n </mat-card>\r\n </cauca-button-popover> }\r\n <cauca-basic-button color=\"primary\" [matMenuTriggerFor]=\"densityMenu\" class=\"open-menu-button\" [icon]=\"currentDensityIcon\" label=\"dataGrid.density.title\" [translateLabel]=\"true\" />\r\n </div>\r\n\r\n <ng-content select=\"[customFilter]\"> </ng-content>\r\n</div>\r\n\r\n<mat-menu #densityMenu=\"matMenu\">\r\n <cauca-menu-item label=\"dataGrid.density.compact\" [translateLabel]=\"true\" icon=\"density_small\" (buttonClick)=\"changeDensity(density.Compact)\" class=\"density-compact\" />\r\n <cauca-menu-item label=\"dataGrid.density.standard\" [translateLabel]=\"true\" icon=\"density_medium\" (buttonClick)=\"changeDensity(density.Standard)\" class=\"density-standard\" />\r\n <cauca-menu-item label=\"dataGrid.density.comfortable\" [translateLabel]=\"true\" icon=\"density_large\" (buttonClick)=\"changeDensity(density.Comfortable)\" class=\"density-comfortable\" />\r\n</mat-menu>","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-progress-spiner',\r\n templateUrl: './data-grid-progress-spiner.component.html',\r\n styleUrls: ['./data-grid-progress-spiner.component.scss'],\r\n imports: [MatProgressSpinnerModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DataGridProgressSpinerComponent {\r\n\r\n public isLoading = input<boolean>(false);\r\n public useBackground = input<boolean>(true);\r\n}\r\n","@if (isLoading()) {\r\n <div class=\"spiner-container\" [class.use-background]=\"useBackground()\">\r\n <mat-progress-spinner\r\n color=\"primary\"\r\n mode=\"indeterminate\">\r\n </mat-progress-spinner>\r\n </div>\r\n}","import {\r\n AfterContentInit, AfterViewInit, ChangeDetectionStrategy, Component,\r\n ContentChild,\r\n EventEmitter, inject, input, Input, OnChanges, output, Output, SimpleChanges,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatFooterRow, MatFooterRowDef, MatHeaderCell, MatHeaderCellDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatRow, MatRowDef, MatTable, MatTableDataSource } from '@angular/material/table';\r\nimport { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { DataGridRowDropEvent } from '../models/data-grid-row-drop-event';\r\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\r\nimport { BaseDataGridComponent } from '../base-data-grid.component';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { DataGridHeaderComponent } from '../components/data-grid-header/data-grid-header.component';\r\nimport { DataGridTableOptionsComponent } from '../components/data-grid-table-options/data-grid-table-options.component';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { DataGridProgressSpinerComponent } from '../components/data-grid-progress-spiner/data-grid-progress-spiner.component';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../../provide-cauca-grid';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'cauca-data-grid',\r\n templateUrl: './data-grid.component.html',\r\n styleUrls: ['./data-grid.component.scss'],\r\n imports: [\r\n NgTemplateOutlet, // still needed\r\n // Material Table structure:\r\n MatTable, MatSort, MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatCellDef,\r\n MatFooterCell, MatFooterCellDef,\r\n MatRow, MatRowDef,\r\n MatHeaderRow, MatHeaderRowDef,\r\n MatFooterRow, MatFooterRowDef,\r\n MatNoDataRow,\r\n // Drag and Drop:\r\n CdkDropList, CdkDrag, CdkDragHandle,\r\n // Material extras:\r\n MatIcon, MatPaginator,\r\n // ngx-translate:\r\n TranslateModule,\r\n // Custom Components:\r\n DataGridHeaderComponent,\r\n DataGridTableOptionsComponent,\r\n DataGridProgressSpinerComponent,\r\n IconButtonComponent\r\n ]\r\n})\r\nexport class DataGridComponent extends BaseDataGridComponent implements OnChanges, AfterContentInit, AfterViewInit {\r\n\r\n @Input() public data: any[] = [];\r\n @Input() public showLoadingError: boolean = false;\r\n @Input() public isLoading: boolean = false;\r\n @Input() public allowReordering: boolean = false;\r\n @Input() public searchableColumns: string[];\r\n @Input() public filterPredicate: (data: unknown, filter: string) => boolean;\r\n @Output() public rowDrop: EventEmitter<DataGridRowDropEvent> = new EventEmitter<DataGridRowDropEvent>();\r\n @ContentChild(TemplateRef) public rowDetailTemplate!: TemplateRef<any>;\r\n public showPaginator = input<boolean>(false);\r\n public showFooter = input<boolean>(false);\r\n public showHeader = input<boolean>(true);\r\n public headerColor = input<string | undefined>(undefined);\r\n public showRefreshButton = input<boolean>(false);\r\n public refreshData = output<void>();\r\n\r\n public dataSource: MatTableDataSource<unknown[]>;\r\n public dragDisabled: boolean = true;\r\n public currentFilter: string = '';\r\n\r\n\r\n public constructor(\r\n translateService: TranslateService,\r\n ) {\r\n super(translateService, inject(PREFERENCE_SERVICE_TOKEN));\r\n this.dataSource = new MatTableDataSource([]);\r\n }\r\n\r\n public onRefreshData(): void {\r\n this.dataSource.data = [];\r\n this.refreshData.emit();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.setUpPaginator(this.paginator, this.showPaginator());\r\n }\r\n\r\n public applyFilter(filter: string): void {\r\n if (this.paginator) {\r\n this.paginator.firstPage();\r\n }\r\n this.dataSource.filter = toLowerCaseAndWithoutDiacritics(filter);\r\n }\r\n\r\n public override setUpSort(sort: MatSort): void {\r\n this.sort = sort;\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n public override getData(): unknown[] {\r\n return this.dataSource.data;\r\n }\r\n\r\n public getFilteredData(): unknown[] {\r\n return this.dataSource.filteredData;\r\n }\r\n\r\n public refreshDisplayedColumns(columns: string[]): void {\r\n this.onColumnsChanged(columns);\r\n }\r\n\r\n public rowDropped(event: CdkDragDrop<unknown>): void {\r\n const data: unknown[] = this.getData();\r\n const filteredData: any[] = this.getFilteredData();\r\n const fromIndex = data.findIndex((d) => d === filteredData[event.previousIndex]);\r\n const toIndex = data.findIndex((d) => d === filteredData[event.currentIndex]);\r\n if (fromIndex >= 0 && toIndex >= 0) {\r\n moveItemInArray(data, fromIndex, toIndex);\r\n this.renderRows();\r\n this.rowDrop.emit(\r\n new DataGridRowDropEvent({\r\n item: data[fromIndex],\r\n data,\r\n fromIndex,\r\n toIndex,\r\n })\r\n );\r\n }\r\n }\r\n\r\n protected override setUpPaginator(paginator: MatPaginator, showPaginator: boolean): void {\r\n this.dataSource.paginator = paginator && showPaginator ? paginator : null;\r\n }\r\n\r\n protected override showColumnsWhenTableOptionsIsFalse(): void {\r\n if (this.allowReordering) {\r\n this.allDisplayedColumns.set(['position', ...this.displayedColumns]);\r\n } else {\r\n this.allDisplayedColumns.set([...this.displayedColumns]);\r\n }\r\n if (this.showExpandButton() && !this.allDisplayedColumns().includes('expand')) {\r\n this.allDisplayedColumns.set(['expand', ...this.displayedColumns]);\r\n }\r\n }\r\n\r\n protected override updateColumnsWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.displayedColumns || changes.allowReordering) {\r\n if (this.allowReordering && !this.allDisplayedColumns().includes('position')) {\r\n this.allDisplayedColumns.set(['position', ...this.allDisplayedColumns()]);\r\n } else {\r\n this.allDisplayedColumns.set([...this.allDisplayedColumns()]);\r\n }\r\n }\r\n if (this.showExpandButton() && !this.allDisplayedColumns().includes('expand')) {\r\n this.allDisplayedColumns.set(['expand', ...this.displayedColumns]);\r\n }\r\n }\r\n\r\n protected onColumnsChanged(columns: string[]): void {\r\n super.onColumnsChanged(columns);\r\n if (this.allowReordering && !columns.includes('position')) {\r\n this.allDisplayedColumns.set(['position', ...columns]);\r\n } else {\r\n this.allDisplayedColumns.set([...columns]);\r\n }\r\n if (this.showExpandButton() && !this.allDisplayedColumns().includes('expand')) {\r\n this.allDisplayedColumns.set(['expand', ...this.displayedColumns]);\r\n }\r\n }\r\n\r\n protected override setUpFilterPredicate(): void {\r\n if (this.filterPredicate) {\r\n this.dataSource.filterPredicate = this.filterPredicate;\r\n } else if (this.searchableColumns?.length > 0) {\r\n this.dataSource.filterPredicate = (data: unknown, filter: string) => {\r\n return this.searchableColumns.some((column) => {\r\n const value = data[column];\r\n return value?.toString().toLowerCaseAndWithoutDiacritics().includes(filter);\r\n });\r\n };\r\n }\r\n }\r\n\r\n protected override forceReloadFilter(): void {\r\n // eslint-disable-next-line no-self-assign\r\n this.dataSource.filter = this.dataSource.filter;\r\n }\r\n\r\n protected override updateDataWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.data?.currentValue && this.data) {\r\n this.setData(this.data);\r\n }\r\n }\r\n\r\n private async setData(data): Promise<void> {\r\n if (Array.isArray(data)) {\r\n this.dataSource.data = data;\r\n setTimeout(() => {\r\n this.table.setNoDataRow(this.noDataRow);\r\n this.table.renderRows();\r\n }, 0);\r\n }\r\n }\r\n}","@if (showHeader()) {\r\n <cauca-data-grid-header [showAddButton]=\"showAddButton\" [addButtonLabel]=\"addButtonLabel || defaultAddButtonLabel\"\r\n (addButtonClick)=\"addButtonClick.emit($event)\" (filterChange)=\"applyFilter($event)\"\r\n [showRefreshButton]=\"showRefreshButton()\" (refreshRequest)=\"onRefreshData()\">\r\n <ng-content select=\"[filterRow]\" ngProjectAs=\"[filterRow]\" />\r\n </cauca-data-grid-header>\r\n}\r\n\r\n@if (showTableOptions) {\r\n <cauca-data-grid-table-options [showColumnViewer]=\"showColumnViewer\" [gridName]=\"resourceName\" (densityChanged)=\"onDensityChanged($event)\" (columnsChanged)=\"onColumnsChanged($event)\" [allColumns]=\"regularColumns\">\r\n <ng-content\r\n select=\"[customFilter]\"\r\n ngProjectAs=\"[customFilter]\">\r\n </ng-content>\r\n </cauca-data-grid-table-options>\r\n}\r\n\r\n<table matSort mat-table [dataSource]=\"dataSource\" cdkDropList [cdkDropListData]=\"dataSource\"\r\n (cdkDropListDropped)=\"rowDropped($event)\" aria-describedby=\"Data Grid\" multiTemplateDataRows>\r\n\r\n @if (showExpandButton()) {\r\n <ng-container matColumnDef=\"expand\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div class=\"align-commands\">\r\n <cauca-icon-button (buttonClick)=\"onExpand(row)\" color=\"primary\" class=\"button-icon\" [icon]=\"row === expandedElement() ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\" />\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n }\r\n\r\n @if (allowReordering) {\r\n <ng-container matColumnDef=\"position\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell (mousedown)=\"dragDisabled = false\" (mouseup)=\"dragDisabled = true\" *matCellDef=\"let group\">\r\n <mat-icon class=\"reorder-icon\" cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n </ng-container>\r\n }\r\n\r\n <ng-content></ng-content>\r\n\r\n <tr class=\"grid-header\" [style.background-color]=\"headerColor()\" mat-header-row *matHeaderRowDef=\"allDisplayedColumns(); sticky: true\"></tr>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: allDisplayedColumns();\" cdkDrag [cdkDragData]=\"row\"\r\n [cdkDragDisabled]=\"dragDisabled\" (cdkDragReleased)=\"dragDisabled = true\"\r\n [class.compact]=\"preference.gridDensity === density.Compact\" [class.standard]=\"preference.gridDensity === density.Standard\"\r\n [class.comfortable]=\"preference.gridDensity === density.Comfortable\"></tr>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"grid-element-detail-wrapper\" [class.grid-element-detail-wrapper-expanded]=\"row === expandedElement()\">\r\n <div class=\"grid-element-detail\">\r\n @if (row === expandedElement()) {\r\n <template [ngTemplateOutlet]=\"rowDetailTemplate\" [ngTemplateOutletContext]=\"{ row: expandedElement() }\"></template>\r\n }\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"grid-detail-row\"></tr>\r\n\r\n @if (showFooter()) {\r\n <tr mat-footer-row *matFooterRowDef=\"allDisplayedColumns(); sticky: false\"></tr>\r\n }\r\n\r\n @if (!isLoading) {\r\n <tr class=\"mat-row\" *matNoDataRow>\r\n @if (!showLoadingError && !isLoading) {\r\n <td class=\"mat-cell data-grid-message\"\r\n [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>grid_off</mat-icon>\r\n <span>{{ 'dataGrid.noDataLabel' | translate }}</span>\r\n </div>\r\n </td>\r\n }\r\n @if (showLoadingError) {\r\n <td class=\"mat-cell data-grid-message error-message\" [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>error</mat-icon>\r\n <span>{{ 'dataGrid.errorLoadingDataLabel' | translate }}</span>\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n }\r\n\r\n</table>\r\n\r\n<cauca-data-grid-progress-spiner [isLoading]=\"isLoading\" />\r\n\r\n@if (showPaginator()) {\r\n <mat-paginator #paginator [hidePageSize]=\"hidePageSize()\" [pageSizeOptions]=\"[5, 10, 25, 50]\" [pageSize]=\"10\" />\r\n}","import {EventEmitter, Injectable, signal} from \"@angular/core\";\r\nimport {ODataDataSource, ODataFilter} from \"odata-data-source\";\r\nimport {distinctUntilChanged, Subscription} from \"rxjs\";\r\nimport {HttpClient} from \"@angular/common/http\";\r\n\r\nexport interface Paginator {\r\n pageIndex: number;\r\n pageSize: number;\r\n length: number;\r\n page: EventEmitter<any>;\r\n}\r\n\r\ninterface SingleSort {\r\n active: string;\r\n direction: 'asc' | 'desc' | '';\r\n sortChange: EventEmitter<any>;\r\n}\r\ninterface MultiSort {\r\n sortedBy: {\r\n id: string;\r\n direction: 'asc' | 'desc';\r\n }[];\r\n multiSortChange: EventEmitter<any>;\r\n}\r\n\r\nexport type Sort = SingleSort | MultiSort;\r\n\r\ninterface Props {\r\n baseUrl: string;\r\n resourceName: string;\r\n paginator: Paginator\r\n sort?: Sort;\r\n initialSort?: string[];\r\n filters: ODataFilter[]\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OdataListingService<T = any> {\r\n public dataSource: ODataDataSource | null = null;\r\n public error = signal(false);\r\n public loading = signal(false);\r\n private errorSubscription: Subscription | null = null;\r\n private loadingSubscription: Subscription | null = null;\r\n\r\n public get data(): T[] | null {\r\n return this.dataSource?.data ?? null;\r\n }\r\n\r\n public constructor(private readonly httpClient: HttpClient) {}\r\n\r\n public initialize({baseUrl, resourceName, paginator, sort, initialSort, filters}: Props): ODataDataSource {\r\n const newDataSource = new ODataDataSource(this.httpClient, `${baseUrl}odata/${resourceName}`);\r\n\r\n newDataSource.filters = filters;\r\n if (initialSort){\r\n newDataSource.initialSort = initialSort;\r\n }\r\n if (sort) {\r\n newDataSource.sort = sort;\r\n }\r\n newDataSource.paginator = paginator;\r\n this.dataSource = newDataSource;\r\n\r\n this.dataSource.refresh();\r\n this.errorSubscription = this.dataSource.errors.subscribe((errors) => this.error.set(!!errors));\r\n\r\n this.loadingSubscription = this.dataSource.loading\r\n .pipe(distinctUntilChanged())\r\n .subscribe((isLoading: boolean) => {\r\n if (isLoading) {\r\n this.loading.set(false);\r\n }\r\n this.loading.set(isLoading);\r\n });\r\n\r\n return newDataSource;\r\n }\r\n\r\n public updateFilters(filters: ODataFilter[]) {\r\n if (this.dataSource) {\r\n this.dataSource.filters = filters;\r\n }\r\n }\r\n\r\n public forceReloadFilter() {\r\n if (this.dataSource) {\r\n // eslint-disable-next-line no-self-assign\r\n this.dataSource.filters = this.dataSource.filters;\r\n }\r\n }\r\n\r\n public isInitialized() {\r\n return this.dataSource !== null;\r\n }\r\n\r\n public refresh() {\r\n this.dataSource?.refresh();\r\n }\r\n\r\n public destroy() {\r\n this.errorSubscription?.unsubscribe();\r\n this.loadingSubscription?.unsubscribe();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, inject, input, Input, OnChanges, OnDestroy, Output, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ODataFilter } from 'odata-data-source';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { BaseDataGridComponent } from '../base-data-grid.component';\r\nimport { CaucaCoreService, toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { OdataListingService } from \"./odata-listing.service\";\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatTable, MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatRow, MatRowDef, MatHeaderRow, MatHeaderRowDef, MatNoDataRow, MatCell, MatCellDef } from '@angular/material/table';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\nimport { DataGridHeaderComponent } from '../components/data-grid-header/data-grid-header.component';\r\nimport { DataGridProgressSpinerComponent } from '../components/data-grid-progress-spiner/data-grid-progress-spiner.component';\r\nimport { DataGridTableOptionsComponent } from '../components/data-grid-table-options/data-grid-table-options.component';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { PREFERENCE_SERVICE_TOKEN } from '../../provide-cauca-grid';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'cauca-odata-grid',\r\n templateUrl: './odata-grid.component.html',\r\n styleUrls: ['./odata-grid.component.scss'],\r\n providers: [OdataListingService],\r\n imports: [\r\n NgTemplateOutlet,\r\n // Material table structure:\r\n MatTable, MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef,\r\n MatHeaderRow, MatHeaderRowDef,\r\n MatRow, MatRowDef, MatNoDataRow,\r\n // Material extras\r\n MatIcon, MatPaginator,\r\n // ngx-translate\r\n TranslateModule,\r\n // custom components\r\n DataGridHeaderComponent,\r\n DataGridTableOptionsComponent,\r\n IconButtonComponent,\r\n DataGridProgressSpinerComponent,\r\n ]\r\n})\r\nexport class OdataGridComponent extends BaseDataGridComponent implements OnChanges, OnDestroy {\r\n\r\n public showTableHeader = input(true);\r\n @Input() public baseSort?: string[];\r\n @Input() public filterPredicate?: (filter: string) => ODataFilter[];\r\n @Input() public showHeader: boolean = true;\r\n @Input() public selectedRowId: any;\r\n @Input() public idField: string = 'id';\r\n @Output() public itemClick: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() public refreshRequested: EventEmitter<void> = new EventEmitter<void>();\r\n @Input() public showRefreshButton: boolean = false;\r\n @ContentChild(TemplateRef) public rowDetailTemplate!: TemplateRef<any>;\r\n @ViewChild(MatPaginator, {static: true}) public paginator!: MatPaginator;\r\n\r\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\r\n\r\n public constructor(\r\n translateService: TranslateService,\r\n public readonly listing: OdataListingService,\r\n ) {\r\n super(translateService, inject(PREFERENCE_SERVICE_TOKEN));\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.listing.destroy();\r\n }\r\n\r\n public refreshData(): void {\r\n this.listing.refresh();\r\n this.refreshRequested.emit();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n this.updateColumnsWhenNeeded(changes);\r\n }\r\n\r\n public getData(): unknown[] {\r\n return this.listing.data;\r\n }\r\n\r\n public applyFilter(filter: string): void {\r\n if (this.filterPredicate) {\r\n if (this.paginator) {\r\n this.paginator.firstPage();\r\n }\r\n this.listing.updateFilters(this.filterPredicate(toLowerCaseAndWithoutDiacritics(filter)));\r\n }\r\n }\r\n\r\n public refreshFilter(): void {\r\n if (this.filterPredicate) {\r\n this.listing.updateFilters(this.filterPredicate(toLowerCaseAndWithoutDiacritics(this.header.filterControl?.value)));\r\n }\r\n }\r\n\r\n public override setUpFilterPredicate(): void {\r\n this.listing.initialize({\r\n baseUrl: this.baseUrl,\r\n resourceName: this.resourceName,\r\n paginator: this.paginator,\r\n sort: this.sort,\r\n initialSort: this.baseSort,\r\n filters: this.filterPredicate?.('') ?? [],\r\n });\r\n }\r\n\r\n public override setUpSort(sort: MatSort): void {\r\n this.sort = sort;\r\n }\r\n\r\n protected updateColumnsWhenNeeded(changes: SimpleChanges): void {\r\n if (changes.displayedColumns || changes.showExpandButton) {\r\n let columns = [...this.displayedColumns];\r\n if (this.showExpandButton()) {\r\n columns = ['expand', ...columns];\r\n }\r\n this.allDisplayedColumns.set([...columns]);\r\n }\r\n }\r\n\r\n protected override forceReloadFilter(): void {\r\n this.listing.forceReloadFilter();\r\n }\r\n\r\n protected override updateDataWhenNeeded(_changes: SimpleChanges): void {\r\n // not implemented\r\n }\r\n\r\n protected override onColumnsChanged(columns: string[]): void {\r\n if (this.showExpandButton() && columns.indexOf('expand') === -1) {\r\n columns = ['expand', ...columns];\r\n }\r\n super.onColumnsChanged(columns);\r\n }\r\n\r\n protected override showColumnsWhenTableOptionsIsFalse(): void {\r\n let columns = [...this.displayedColumns];\r\n if (this.showExpandButton()) {\r\n columns = ['expand', ...columns];\r\n }\r\n this.allDisplayedColumns.set([...columns]);\r\n }\r\n}\r\n","@if (showHeader) {\r\n <cauca-data-grid-header\r\n [showRefreshButton]=\"showRefreshButton\" (refreshRequest)=\"refreshData()\"\r\n [showAddButton]=\"showAddButton\"\r\n [addButtonLabel]=\"addButtonLabel || defaultAddButtonLabel\"\r\n (addButtonClick)=\"addButtonClick.emit($event)\" (filterChange)=\"applyFilter($event)\">\r\n <ng-content select=\"[filterRow]\" ngProjectAs=\"[filterRow]\" />\r\n </cauca-data-grid-header>\r\n}\r\n\r\n<ng-content select=\"[customHeader]\" ngProjectAs=\"[customHeader]\" />\r\n\r\n@if (showTableOptions) {\r\n <cauca-data-grid-table-options [showColumnViewer]=\"showColumnViewer\" [gridName]=\"resourceName\" (densityChanged)=\"onDensityChanged($event)\" (columnsChanged)=\"onColumnsChanged($event)\" [allColumns]=\"regularColumns\">\r\n <ng-content select=\"[customFilter]\" ngProjectAs=\"[customFilter]\" />\r\n </cauca-data-grid-table-options>\r\n}\r\n\r\n<div class=\"relative\">\r\n <table mat-table [dataSource]=\"listing.dataSource\" aria-describedby=\"Data Grid\" multiTemplateDataRows>\r\n @if (showExpandButton()) {\r\n <ng-container matColumnDef=\"expand\">\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div class=\"align-commands\">\r\n <cauca-icon-button (buttonClick)=\"onExpand(row)\" color=\"primary\" class=\"button-icon\" [icon]=\"row === expandedElement() ? 'keyboard_arrow_up' : 'keyboard_arrow_down'\" />\r\n </div>\r\n </td>\r\n </ng-container>\r\n }\r\n\r\n <ng-content></ng-content>\r\n @if(showTableHeader()) {\r\n <tr mat-header-row *matHeaderRowDef=\"allDisplayedColumns(); sticky: true\"></tr>\r\n }\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: allDisplayedColumns()\"\r\n [class.showClick]=\"itemClick.observers.length > 0\"\r\n [class.compact]=\"preference.gridDensity === density.Compact\"\r\n [class.standard]=\"preference.gridDensity === density.Standard\"\r\n [class.comfortable]=\"preference.gridDensity === density.Comfortable\"\r\n [class.selected]=\"selectedRowId === row[idField]\"\r\n (click)=\"itemClick.emit(row)\"\r\n onkeypress=\"itemClick.emit(row)\">\r\n </tr>\r\n\r\n <ng-container matColumnDef=\"expandedDetail\">\r\n <td mat-cell *matCellDef=\"let row\" [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"grid-element-detail-wrapper\" [class.grid-element-detail-wrapper-expanded]=\"row === expandedElement()\">\r\n <div class=\"grid-element-detail\">\r\n @if (row === expandedElement()) {\r\n <template [ngTemplateOutlet]=\"rowDetailTemplate\" [ngTemplateOutletContext]=\"{ row: expandedElement() }\"></template>\r\n }\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"grid-detail-row\"></tr>\r\n\r\n <ng-container *matNoDataRow>\r\n @if(listing.loading() === false) {\r\n <ng-container>\r\n <tr class=\"mat-row\">\r\n @if (listing.error() === false) {\r\n <th class=\"mat-cell data-grid-message\"\r\n [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>grid_off</mat-icon>\r\n <span>{{ 'dataGrid.noDataLabel' | translate }}</span>\r\n </div>\r\n </th>\r\n } @else {\r\n <th class=\"mat-cell data-grid-message\"\r\n [attr.colspan]=\"allDisplayedColumns().length\">\r\n <div class=\"icon-text\">\r\n <mat-icon>error</mat-icon>\r\n <span>{{ 'dataGrid.errorLoadingDataLabel' | translate }}</span>\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-container>\r\n }\r\n </ng-container>\r\n </table>\r\n\r\n <cauca-data-grid-progress-spiner [useBackground]=\"false\" [isLoading]=\"listing.loading()\" />\r\n\r\n</div>\r\n\r\n<mat-paginator [hidePageSize]=\"hidePageSize()\" [pageSizeOptions]=\"[5, 10, 25, 50]\" [pageSize]=\"10\" />\r\n","import { ChangeDetectionStrategy, Component, forwardRef, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-color-data-grid-column',\r\n standalone: true,\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, NgStyle,\r\n MatCell, MatCellDef,\r\n MatFooterCellDef, MatFooterCellDef\r\n ],\r\n templateUrl: './color-data-grid-column.component.html',\r\n styleUrl: './color-data-grid-column.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => ColorDataGridColumnComponent) }],\r\n})\r\nexport class ColorDataGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (row[prop]) {\r\n <div class=\"color-capsule\" [style.backgroundColor]=\"row[prop]\"></div>\r\n }\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n\r\n</ng-container>","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'cauca-check-icon',\r\n template: `\r\n <mat-icon\r\n class=\"check-icon\"\r\n [class.check-mark]=\"checkMark()\"\r\n [class.check]=\"check()\"\r\n [class.uncheck]=\"uncheck()\"\r\n aria-hidden=\"false\"\r\n aria-label=\"State icon\"\r\n [fontIcon]=\"icon()\" />\r\n `,\r\n styleUrls: ['./check-icon.component.scss'],\r\n imports: [MatIcon],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CheckIconComponent {\r\n public checkIcon = input<string>('check');\r\n public uncheckIcon = input<string>('block');\r\n public isChecked = input<boolean>(false);\r\n\r\n public icon = computed(() => (this.isChecked() ? this.checkIcon() : this.uncheckIcon()));\r\n public checkMark = computed(() => this.isChecked() && this.checkIcon() === 'check');\r\n public check = computed(() => this.isChecked() && this.checkIcon() !== 'check');\r\n public uncheck = computed(() => !this.isChecked());\r\n}\r\n","import { Component, Input, OnDestroy, OnInit, Optional, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { CheckIconComponent } from '../../components/check-icon/check-icon.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-check-column',\r\n templateUrl: './data-grid-check-column.component.html',\r\n styleUrls: ['./data-grid-check-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridCheckColumnComponent) }],\r\n imports: [CheckIconComponent, MatColumnDef, MatHeaderCell, MatHeaderCellDef, NgStyle, MatCell, MatCellDef, MatFooterCell, MatFooterCellDef]\r\n})\r\nexport class DataGridCheckColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public checkIcon: string = 'check';\r\n @Input() public uncheckIcon: string = 'block';\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width, 'text-align': 'center'}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <cauca-check-icon [checkIcon]=\"checkIcon\" [uncheckIcon]=\"uncheckIcon\" [isChecked]=\"row[prop]\" />\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Optional, ViewEncapsulation, forwardRef, input } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-column',\r\n templateUrl: './data-grid-column.component.html',\r\n styleUrls: ['./data-grid-column.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, NgStyle, MatCell, MatCellDef, MatTooltip, MatFooterCell, MatFooterCellDef]\r\n})\r\nexport class DataGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public showToolTip: boolean = false;\r\n public summaryType = input<'none'|'sum'|'count'>('none');\r\n public summaryLabel = input<string>('');\r\n public format = input<'none'|'phone'>('none');\r\n public isInitialized = false;\r\n private readonly grid = null;\r\n\r\n public constructor (@Optional() odata: OdataGridComponent, @Optional() grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n this.grid = grid??odata;\r\n this.isInitialized = true;\r\n }\r\n\r\n public calculateSummary(): string {\r\n if (this.isInitialized && this.grid?.data) {\r\n if (this.summaryType() === 'sum') {\r\n return this.summaryLabel() + this.grid.data.reduce((acc, row) => acc + row[this.prop], 0) + this.summaryLabel();\r\n }\r\n if (this.summaryType() === 'count') {\r\n return this.grid.data?.length + this.summaryLabel();\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (showToolTip) {<span [matTooltip]=\"row[prop]\" >{{ row[prop] }}</span>}\r\n @else { <span>{{ row[prop] }}</span>}\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (isInitialized) {\r\n {{calculateSummary()}}\r\n }\r\n </td>\r\n\r\n</ng-container>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-command-icon-column',\r\n templateUrl: './data-grid-command-icon-column.component.html',\r\n styleUrls: ['./data-grid-command-icon-column.component.scss'],\r\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridCommandIconColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatSortHeader, MatHeaderCellDef, MatIcon, MatCell, MatCellDef, IconButtonComponent, MatFooterCell, MatFooterCellDef ]\r\n})\r\nexport class DataGridCommandIconColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public checkColor: string = '#F8B132';\r\n @Input() public checkIcon: string = 'star';\r\n @Input() public uncheckIcon: string = 'star_outline';\r\n @Input() public uncheckColor: string = 'default';\r\n\r\n @Output() public commandClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell mat-sort-header *matHeaderCellDef>\r\n <div>\r\n @if (label) {\r\n {{ label }}\r\n } @else {\r\n <mat-icon [style.color]=\"uncheckColor\" aria-hidden=\"false\" aria-label=\"State icon\" [fontIcon]=\"uncheckIcon\" />\r\n }\r\n </div>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div>\r\n <cauca-icon-button (buttonClick)=\"commandClick.emit(row)\" [icon]=\"row[prop] ? checkIcon : uncheckIcon\" [color]=\"row[prop] ? checkColor : uncheckColor\" />\r\n </div>\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, TemplateRef, ViewEncapsulation, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { IconButtonComponent } from '@cauca-911/material';\r\nimport { NgStyle, NgTemplateOutlet } from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-commands-column',\r\n templateUrl: './data-grid-commands-column.component.html',\r\n styleUrls: ['./data-grid-commands-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridCommandsColumnComponent) }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, IconButtonComponent, NgTemplateOutlet, MatFooterCell, MatFooterCellDef, NgStyle, RouterLink]\r\n})\r\nexport class DataGridCommandsColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public canDelete: boolean = false;\r\n @Input() public canEdit: boolean = false;\r\n @Input() public canDuplicate: boolean = false;\r\n @Input() public editLinkField: string;\r\n\r\n @ContentChild(TemplateRef) public menuTemplate: TemplateRef<any>;\r\n\r\n @Output() public deleteClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n @Output() public editClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n @Output() public duplicateClick: EventEmitter<unknown> = new EventEmitter<unknown>();\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"buttons\">\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width}\"> {{ label }} </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n\r\n <div class=\"align-commands\">\r\n\r\n @if (canEdit) { <cauca-icon-button colorOnHover=\"var(--primary)\" color=\"grey\" icon=\"edit\" [routerLink]=\"editLinkField ? [row[editLinkField]] : null\" (buttonClick)=\"editClick?.emit(row)\" class=\"edit-button\" /> }\r\n\r\n @if (canDuplicate) { <cauca-icon-button color=\"grey\" icon=\"content_copy\" (buttonClick)=\"duplicateClick?.emit(row)\" class=\"duplicate-button\" /> }\r\n\r\n @if (canDelete) { <cauca-icon-button colorOnHover=\"var(--warn)\" color=\"grey\" icon=\"close\" (buttonClick)=\"deleteClick?.emit(row)\" class=\"delete-button\" /> }\r\n\r\n <template [ngTemplateOutlet]=\"menuTemplate\" [ngTemplateOutletContext]=\"{row:row}\"></template>\r\n\r\n </div>\r\n\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { Component, Input, OnDestroy, OnInit, Optional, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { IconComponent } from '@cauca-911/material';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-icon-column',\r\n templateUrl: './data-grid-icon-column.component.html',\r\n styleUrls: ['./data-grid-icon-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridIconColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, IconComponent, MatFooterCell, MatFooterCellDef, NgClass, MatIcon]\r\n})\r\nexport class DataGridIconColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public alignRight = false;\r\n @Input() public useMatIcon = false;\r\n @Input() public icon: string = '';\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef> {{ showLabel ? label ?? capitalize(prop) : '' }} </th>\r\n <td [ngClass]=\"alignRight ? 'td-right' : ''\" mat-cell *matCellDef=\"let row\">\r\n @if (useMatIcon) { <mat-icon>{{icon}}</mat-icon> }\r\n @else { <cauca-icon [icon]=\"row[prop]\" /> }\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, ContentChild, Input, InputSignal, ModelSignal, OnDestroy, OnInit, Optional, TemplateRef, ViewEncapsulation, forwardRef, input, model, output } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { IconButtonComponent, MenuItemComponent } from '@cauca-911/material';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { RouterLink } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cauca-data-grid-menu-column',\r\n templateUrl: './data-grid-menu-column.component.html',\r\n styleUrls: ['./data-grid-menu-column.component.scss'],\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DataGridMenuColumnComponent) }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell,\r\n MatHeaderCellDef,\r\n MatCell,\r\n MatCellDef,\r\n IconButtonComponent,\r\n MatMenuModule,\r\n MenuItemComponent,\r\n NgTemplateOutlet,\r\n MatFooterCell,\r\n MatFooterCellDef,\r\n RouterLink\r\n ],\r\n})\r\nexport class DataGridMenuColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n public canDelete: ModelSignal<boolean> = model(false);\r\n @Input() public canDeleteByRow: (row: any) => boolean = null;\r\n public canEdit: InputSignal<boolean> = input(false);\r\n public canDuplicate: ModelSignal<boolean> = model(false);\r\n @Input() public canDuplicateByRow: (row: any) => boolean = null;\r\n public editLinkField: InputSignal<string> = input();\r\n public duplicateLinkField: InputSignal<string> = input();\r\n @ContentChild(TemplateRef) public menuTemplate: TemplateRef<any>;\r\n\r\n public deleteClick = output<unknown>();\r\n public editClick = output<unknown>();\r\n public duplicateClick = output<unknown>();\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n public menuOpened(row: any): void {\r\n if (this.canDeleteByRow) {\r\n this.canDelete.set(this.canDeleteByRow(row));\r\n }\r\n if (this.canDuplicateByRow) {\r\n this.canDuplicate.set(this.canDuplicateByRow(row));\r\n }\r\n }\r\n}\r\n","<ng-container matColumnDef=\"menu\">\r\n <th mat-header-cell *matHeaderCellDef> {{ label }} </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <div class=\"align-commands\">\r\n\r\n <cauca-icon-button colorOnHover=\"var(--primary)\" color=\"grey\" icon=\"more_horiz\" [matMenuTriggerFor]=\"actionMenu\" (menuOpened)=\"menuOpened(row)\" />\r\n\r\n <mat-menu #actionMenu=\"matMenu\" class=\"grid-menu\">\r\n @if (canEdit()) {\r\n <cauca-menu-item colorOnHover=\"var(--primary)\" icon=\"edit\" label=\"edit\" [translateLabel]=\"true\" [routerLink]=\"editLinkField() ? [row[editLinkField()]] : null\" (buttonClick)=\"editClick?.emit(row)\" class=\"edit-button\" />\r\n }\r\n\r\n @if (canDuplicate()) {\r\n <cauca-menu-item icon=\"content_copy\" label=\"duplicate\" [translateLabel]=\"true\" [routerLink]=\"duplicateLinkField() ? [row[duplicateLinkField()]] : null\" [queryParams]=\"{ duplicate: true }\" (buttonClick)=\"duplicateClick?.emit(row)\" class=\"duplicate-button\" />\r\n }\r\n\r\n @if (canDelete()) {\r\n <cauca-menu-item colorOnHover=\"var(--warn)\" icon=\"close\" label=\"delete\" [translateLabel]=\"true\" (buttonClick)=\"deleteClick?.emit(row)\" class=\"delete-button\" />\r\n }\r\n <template [ngTemplateOutlet]=\"menuTemplate\" [ngTemplateOutletContext]=\"{row:row}\"></template>\r\n\r\n </mat-menu>\r\n\r\n </div>\r\n\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { DatePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport dayjs from 'dayjs';\r\n\r\n@Component({\r\n selector: 'cauca-time-label',\r\n imports: [DatePipe, MatTooltip],\r\n templateUrl: './time-label.component.html',\r\n styleUrl: './time-label.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TimeLabelComponent {\r\n public date = input.required<Date|null>();\r\n public minLimit = input<Date|null>(null);\r\n public maxLimit = input<Date|null>(null);\r\n public showTime = input<boolean>(true);\r\n public showSecond = input(false);\r\n\r\n public dateMask = computed(() => this.showTime() ? `dd/MM/yyy${this.timeFormat()}` : 'dd/MM/yyyy');\r\n public displayDate = computed(() => {\r\n if (!this.date()) {\r\n return '';\r\n }\r\n const date = new Date(this.date());\r\n if (this.minLimit()) {\r\n const minLimit = new Date(this.minLimit());\r\n return date < minLimit ? minLimit : date;\r\n } else if (this.maxLimit()) {\r\n const maxLimit = dayjs(this.maxLimit()).add(-1, 'second').toDate();\r\n return date > maxLimit ? maxLimit : date;\r\n } else {\r\n return date;\r\n }\r\n });\r\n \r\n private readonly timeFormat = computed(() => this.showSecond() ? ' HH:mm:ss' : ' HH:mm');\r\n}\r\n","<span [matTooltip]=\"displayDate() | date:dateMask()\">{{ displayDate() | date:dateMask() }}</span>","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewEncapsulation, forwardRef, Optional, input } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\nimport { NgStyle } from '@angular/common';\r\nimport { TimeLabelComponent } from '../../components/time-label/time-label.component';\r\n\r\n@Component({\r\n selector: 'cauca-date-grid-column',\r\n templateUrl: './date-grid-column.component.html',\r\n styleUrls: ['./date-grid-column.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => DateGridColumnComponent) }],\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatSortHeader, NgStyle,\r\n MatCell, MatCellDef,\r\n TimeLabelComponent,\r\n MatFooterCell, MatFooterCellDef,\r\n ]\r\n})\r\nexport class DateGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n public showWithTime = input(false);\r\n public showSecond = input(false);\r\n\r\n public maxDate = input<Date|null>(null);\r\n public minDate = input<Date|null>(null);\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngStyle]=\"{'width': width}\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n <cauca-time-label [date]=\"row[prop]\" [showTime]=\"showWithTime()\" [showSecond]=\"showSecond()\" [minLimit]=\"minDate()\" [maxLimit]=\"maxDate()\" />\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>\r\n\r\n","import { Component, Input, OnDestroy, OnInit, Optional, forwardRef } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { NgStyle } from '@angular/common';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { CheckIconComponent } from '../../components/check-icon/check-icon.component';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'cauca-sortable-data-grid-check-column',\r\n templateUrl: './sortable-data-grid-check-column.component.html',\r\n styleUrls: ['./sortable-data-grid-check-column.component.scss'],\r\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => SortableDataGridCheckColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatSortHeader, NgStyle, MatTooltip, MatCell, MatCellDef, CheckIconComponent, MatFooterCell, MatFooterCellDef]\r\n})\r\nexport class SortableDataGridCheckColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public checkIcon: string = 'check';\r\n @Input() public uncheckIcon: string = 'block';\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngStyle]=\"{'width': width}\" [matTooltip]=\"label ?? capitalize(prop)\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\" [ngStyle]=\"{'width': width}\">\r\n <cauca-check-icon [checkIcon]=\"checkIcon\" [uncheckIcon]=\"uncheckIcon\" [isChecked]=\"row[prop]\" />\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Component({\r\n selector: 'cauca-column-label',\r\n imports: [MatTooltip],\r\n templateUrl: './column-label.component.html',\r\n styleUrl: './column-label.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ColumnLabelComponent {\r\n public value = input<any>(null);\r\n public format = input<'none'|'phone'>('none');\r\n public showToolTip = input<boolean>(false);\r\n public displayValue = computed(() => {\r\n if (this.format() === 'phone') {\r\n return this.value()?.toString().replace(/(\\d{3})(\\d{3})(\\d{4})/, '$1-$2-$3');\r\n }\r\n return this.value();\r\n });\r\n}\r\n\r\n","@if (showToolTip()) {<span [matTooltip]=\"displayValue()\" >{{ displayValue() }}</span>}\r\n@else { <span>{{displayValue()}}</span>}","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, Optional, ViewEncapsulation, forwardRef, input } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\nimport { ColumnLabelComponent } from '../../components/column-label/column-label.component';\r\nimport { NgStyle } from '@angular/common';\r\nimport { MatSortHeader } from '@angular/material/sort';\r\n\r\n@Component({\r\n selector: 'cauca-sortable-data-grid-column',\r\n templateUrl: './sortable-data-grid-column.component.html',\r\n styleUrls: ['./sortable-data-grid-column.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [ { provide: BaseGridColumnComponent, useExisting: forwardRef(() => SortableDataGridColumnComponent) }],\r\n imports: [\r\n MatColumnDef,\r\n MatHeaderCell, MatHeaderCellDef, MatSortHeader, NgStyle,\r\n MatCell, MatCellDef,\r\n MatTooltip, ColumnLabelComponent,\r\n MatFooterCell, MatFooterCellDef,\r\n ]\r\n})\r\nexport class SortableDataGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n\r\n @Input() public showToolTip: boolean = false;\r\n public summaryType = input<'none'|'sum'|'count'>('none');\r\n public summaryLabel = input<string>('');\r\n public format = input<'none'|'phone'>('none');\r\n\r\n public isInitialized = false;\r\n private readonly grid = null;\r\n\r\n public constructor (@Optional() odata: OdataGridComponent, @Optional() grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n this.grid = grid??odata;\r\n this.isInitialized = true;\r\n }\r\n\r\n public calculateSummary(): string {\r\n if (this.isInitialized && this.grid?.data) {\r\n if (this.summaryType() === 'sum') {\r\n return this.summaryLabel() + this.grid.data.reduce((acc, row) => acc + row[this.prop], 0) + this.summaryLabel();\r\n }\r\n if (this.summaryType() === 'count') {\r\n return this.grid.data?.length + this.summaryLabel();\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n","\r\n<ng-container matColumnDef=\"{{ prop }}\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngStyle]=\"{'width': width}\" [matTooltip]=\"label ?? capitalize(prop)\">\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n <cauca-column-label [value]=\"row[prop]\" [showToolTip]=\"showToolTip\" [format]=\"format()\" />\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef>\r\n @if (isInitialized) {\r\n {{calculateSummary()}}\r\n }\r\n </td>\r\n</ng-container>\r\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, OnDestroy, OnInit, Optional, ViewEncapsulation } from '@angular/core';\r\nimport { BaseGridColumnComponent } from '../base-grid-column.component';\r\nimport { DataGridComponent } from '../../data-grid/data-grid.component';\r\nimport { OdataGridComponent } from '../../odata-grid/odata-grid.component';\r\nimport { MatCell, MatCellDef, MatColumnDef, MatFooterCell, MatFooterCellDef, MatHeaderCell, MatHeaderCellDef } from '@angular/material/table';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'cauca-translation-grid-column',\r\n templateUrl: './translation-grid-column.component.html',\r\n styleUrl: './translation-grid-column.component.scss',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => TranslationGridColumnComponent) }],\r\n imports: [MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, TranslateModule, MatFooterCell, MatFooterCellDef],\r\n})\r\nexport class TranslationGridColumnComponent extends BaseGridColumnComponent implements OnDestroy, OnInit {\r\n @Input() public prefix: string = \"\";\r\n\r\n public constructor (@Optional() public readonly odata: OdataGridComponent, @Optional() public readonly grid: DataGridComponent) {\r\n super((grid??odata)?.table);\r\n }\r\n\r\n}\r\n","<ng-container matColumnDef=\"{{ prop }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef>\r\n {{ label ?? capitalize(prop) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (prefix && row[prop]) { <span>{{ prefix+'.'+row[prop] | translate }}</span> }\r\n @else if(row[prop]) { <span>{{ row[prop] | translate }}</span> }\r\n </td>\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n</ng-container>","/*\r\n * Public API Surface of cauca-datagrid\r\n */\r\n\r\nexport * from './lib/data-grid/data-grid/data-grid.component';\r\nexport * from './lib/data-grid/odata-grid/odata-grid.component';\r\nexport * from './lib/data-grid/odata-grid/odata-listing.service';\r\n\r\nexport * from './lib/data-grid/components/data-grid-header/data-grid-header.component';\r\n\r\nexport * from './lib/data-grid/columns/base-grid-column.component';\r\nexport * from './lib/data-grid/columns/color-data-grid-column/color-data-grid-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-check-column/data-grid-check-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-column/data-grid-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-command-icon-column/data-grid-command-icon-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-commands-column/data-grid-commands-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-icon-column/data-grid-icon-column.component';\r\nexport * from './lib/data-grid/columns/data-grid-menu-column/data-grid-menu-column.component';\r\nexport * from './lib/data-grid/columns/date-grid-column/date-grid-column.component';\r\nexport * from './lib/data-grid/columns/sortable-data-grid-check-column/sortable-data-grid-check-column.component';\r\nexport * from './lib/data-grid/columns/sortable-data-grid-column/sortable-data-grid-column.component';\r\nexport * from './lib/data-grid/columns/translation-grid-column/translation-grid-column.component';\r\nexport * from './lib/data-grid/models/data-grid-row-drop-event';\r\n\r\nexport * from './lib/provide-cauca-grid';\r\nexport * from './lib/services/base-preference-service';\r\nexport * from './lib/data-grid/models/density-enum';\r\nexport * from './lib/services/preference';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i1","i2","i5","i2.OdataListingService","i1.OdataGridComponent","i2.DataGridComponent","i3"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnDestroy, OnInit, EventEmitter, AfterContentInit, OnChanges, QueryList, SimpleChanges, TemplateRef, ModelSignal, InputSignal, Type, InjectionToken, Provider, EnvironmentProviders } from '@angular/core';
2
+ import { OnDestroy, OnInit, EventEmitter, AfterContentInit, OnChanges, QueryList, SimpleChanges, AfterViewInit, TemplateRef, ModelSignal, InputSignal, Type, InjectionToken, Provider, EnvironmentProviders } from '@angular/core';
3
3
  import { MatTable, MatColumnDef, MatCellDef, MatHeaderCellDef, MatFooterCellDef, MatHeaderRowDef, MatFooterRowDef, MatRowDef, MatNoDataRow, MatTableDataSource } from '@angular/material/table';
4
4
  import { CdkDragDrop } from '@angular/cdk/drag-drop';
5
5
  import { MatPaginator } from '@angular/material/paginator';
@@ -139,7 +139,7 @@ declare abstract class BaseDataGridComponent implements AfterContentInit, OnChan
139
139
  static ɵcmp: i0.ɵɵComponentDeclaration<BaseDataGridComponent, "ng-component", never, { "resourceName": { "alias": "resourceName"; "required": true; }; "displayedColumns": { "alias": "displayedColumns"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "addButtonLabel": { "alias": "addButtonLabel"; "required": false; }; "searchableColumns": { "alias": "searchableColumns"; "required": false; }; "showTableOptions": { "alias": "showTableOptions"; "required": false; }; "showColumnViewer": { "alias": "showColumnViewer"; "required": false; }; "showPaginator": { "alias": "showPaginator"; "required": false; "isSignal": true; }; "hidePageSize": { "alias": "hidePageSize"; "required": false; "isSignal": true; }; "showExpandButton": { "alias": "showExpandButton"; "required": false; "isSignal": true; }; }, { "addButtonClick": "addButtonClick"; }, ["headerRowDef", "footerRowDef", "noDataRow", "regularColumns", "columnDefs", "rowDefs"], never, true, never>;
140
140
  }
141
141
 
142
- declare class DataGridComponent extends BaseDataGridComponent implements OnChanges, AfterContentInit {
142
+ declare class DataGridComponent extends BaseDataGridComponent implements OnChanges, AfterContentInit, AfterViewInit {
143
143
  data: any[];
144
144
  showLoadingError: boolean;
145
145
  isLoading: boolean;
@@ -159,6 +159,7 @@ declare class DataGridComponent extends BaseDataGridComponent implements OnChang
159
159
  currentFilter: string;
160
160
  constructor(translateService: TranslateService);
161
161
  onRefreshData(): void;
162
+ ngAfterViewInit(): void;
162
163
  applyFilter(filter: string): void;
163
164
  setUpSort(sort: MatSort): void;
164
165
  getData(): unknown[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cauca-911/datagrid",
3
- "version": "20.2.15",
3
+ "version": "20.2.16-beta2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.2.1",
6
6
  "@angular/core": ">=20.2.1",