File

src/app/shared/widgets/data-list/pipes/data-list-column-settings.pipe.ts

Metadata

name nmDataListColumnSettings

Methods

transform
transform(columns: Column[], grid: DataListComponent, columnOrder: string[], visibleDataColumns: string[], showAllColumns: boolean)
Parameters :
Name Type Optional Default value
columns Column[] no
grid DataListComponent no
columnOrder string[] no
visibleDataColumns string[] no
showAllColumns boolean no false
Returns : Column[]
import { Pipe, PipeTransform } from "@angular/core";
import { DataListComponent } from "../data-list-component/data-list.component";
import { Column } from "../../interfaces/list.interfaces";
import { Attributes } from "../../../components/edit-attribute";

@Pipe({
  name: "nmDataListColumnSettings",
})
export class DataListColumnSettingsPipe implements PipeTransform {
  transform(
    columns: Column[],
    grid: DataListComponent,
    columnOrder: string[],
    visibleDataColumns: string[],
    showAllColumns: boolean = false
  ): Column[] {
    if (columnOrder.length) {
      const orders = columnOrder.map((attribute) =>
        Attributes.fromField(attribute)
      );
      columns = columns.sort((a, b) => {
        let aField = Attributes.fromField(a.field);
        let bField = Attributes.fromField(b.field);
        return (
          (orders.indexOf(aField) != -1 ? orders.indexOf(aField) : 1000) -
          (orders.indexOf(bField) != -1 ? orders.indexOf(bField) : 1000)
        );
      });
    }

    const settingsColOrder = JSON.stringify(columnOrder);

    return columns.map((column, idx) => {
      column.settings = {
        columnHeaderClasses: grid.getColumnHeaderClasses(column),
        headerClasses: grid.getHeaderClass(column),
        cellClasses: grid.getCellClass(column),
        sortStrategy: grid.sortStrategy(column),
        groupingComparer: grid.groupingComparer(column),
        header: grid.getTranslationKey(column),
        highlightReadOnly: grid.getHighlightReadOnly(),
        source: Attributes.toSourceField(column.field),
        order: idx,
        columnOrder: settingsColOrder,
      };

      if (column.visibilityConfigurable) {
        column.hidden = !(
          visibleDataColumns.includes(column.field) || showAllColumns
        );
      }

      column.width = grid.getGridColumnWidth(column);

      return column;
    });
  }
}

results matching ""

    No results matching ""