Verified Commit e830c262 authored by Merzough Münker's avatar Merzough Münker
Browse files

feat(table-data-source): add support for dynamic parameters

Added a new @Input property 'parameters' to handle dynamic parameters via Observable and linked it to dataSource configuration.
parent 22117948
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -13,10 +13,10 @@ import {
  RxapTableDataSourceError,
  SortLike,
} from '@rxap/data-source/table';
import { Required } from '@rxap/utilities';
import { DataSourceCollectionDirective } from '@rxap/data-source/directive';
import { IdOrInstanceOrToken } from '@rxap/definition';
import { BaseDataSourceViewer } from '@rxap/data-source';
import { Observable } from 'rxjs';

@Directive({
  selector: '[rxapTableDataSource]',
@@ -31,6 +31,9 @@ export class TableDataSourceDirective<Data extends Record<any, any> = any, Param
  @Input('rxapTableDataSourceSort')
  public sort!: SortLike;

  @Input('rxapTableDataSourceParameters')
  public parameters!: Observable<Record<string, any>>;

  @Input('rxapTableDataSourceFilter')
  public filter!: FilterLike;
  // eslint-disable-next-line @angular-eslint/no-input-rename
@@ -53,6 +56,7 @@ export class TableDataSourceDirective<Data extends Record<any, any> = any, Param
        dataSource.setPaginator(this.paginator, this.viewer.id);
        dataSource.setSort(this.sort, this.viewer.id);
        dataSource.setFilter(this.filter, this.viewer.id);
        dataSource.setParameters(this.parameters, this.viewer.id);
      } else {
        if (dataSource.paginator !== this.paginator) {
          dataSource.paginator = this.paginator;
@@ -63,6 +67,9 @@ export class TableDataSourceDirective<Data extends Record<any, any> = any, Param
        if (dataSource.filter !== this.filter) {
          dataSource.filter = this.filter;
        }
        if (dataSource.parameters !== this.parameters) {
          dataSource.parameters = this.parameters;
        }
      }
    }