Компоненты PrimeNG
Table
Reorder

Reorder

<p-table [value]="productsReorder" [columns]="cols" [reorderableColumns]="true" responsiveLayout="scroll">
  <ng-template pTemplate="header" let-columns>
    <tr>
      <th style="width:3rem"></th>
      <th *ngFor="let col of columns" pReorderableColumn>
        { { col.header } }
      </th>
    </tr>
  </ng-template>
  <ng-template pTemplate="body" let-rowData let-columns="columns" let-index="rowIndex">
    <tr [pReorderableRow]="index">
      <td>
        <span class="pi pi-bars" pReorderableRowHandle></span>
      </td>
      <td *ngFor="let col of columns">
        { { rowData[col.field] } }
      </td>
    </tr>
  </ng-template>
</p-table>