indexColumn()

in sample/frontend/src/app/shared/fix/fix-table-primeng.directive.ts [129:159]


  indexColumn(element: any) {
    const table = [];
    const rows = element.closest('thead').rows;
    for (let rIndex = 0; rIndex < rows.length; rIndex++) {
      const cells = rows[rIndex].cells;
      // tslint:disable-next-line:prefer-for-of
      for (let cIndex = 0; cIndex < cells.length; cIndex++) {
        const cell = cells[cIndex];
        const colSpan = cell.colSpan || 1;
        const rowSpan = cell.rowSpan || 1;
        let colIndexSkip = -1;
        table[rIndex] = table[rIndex] || [];
        for (let mColIndex = 0; mColIndex <= table[rIndex].length && colIndexSkip === -1; mColIndex++) {
          if (!table[rIndex][mColIndex] && table[rIndex][mColIndex] !== 0) {
            colIndexSkip = mColIndex;
          }
        }
        for (let mRowIndex = rIndex; mRowIndex < rIndex + rowSpan; mRowIndex++) {
          table[mRowIndex] = table[mRowIndex] || [];
          let colIndex;
          for (let mColIndex = colIndexSkip; mColIndex < colIndexSkip + colSpan; mColIndex++) {
            table[mRowIndex][mColIndex] = mColIndex;
            colIndex = mColIndex;
          }
          if (cell === element) {
            return colIndex;
          }
        }
      }
    }
  }