An accessible Angular 5 data table, with pagination, sorting, expandable rows, scrolling, sizing, etc.