@notiz/ngx-tablo
Version:
JSON powered material table for Angular
17 lines • 2.78 kB
JavaScript
import { _isNumberValue } from '@angular/cdk/coercion';
import { MatTableDataSource } from '@angular/material/table';
import { resolveNestedValue } from '../nested-value';
/**
* MatTableDataSource that supports sorting for nested objects.
*/
export class NestedObjectDataSource extends MatTableDataSource {
constructor(initialData) {
super(initialData);
this.sortingDataAccessor = (data, sortHeaderId) => {
const value = resolveNestedValue(data, sortHeaderId);
return _isNumberValue(value) ? Number(value) : value;
};
}
}
export const nestedObjectDataSource = (initialData) => new NestedObjectDataSource(initialData);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLW9iamVjdC5kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10YWJsby9zcmMvbGliL2RhdGFzb3VyY2UvbmVzdGVkLW9iamVjdC5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsa0JBQXFCO0lBQ2xFLFlBQVksV0FBaUI7UUFDM0IsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBR1osd0JBQW1CLEdBR0wsQ0FBQyxJQUFPLEVBQUUsWUFBb0IsRUFBbUIsRUFBRTtZQUN4RSxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDckQsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3ZELENBQUMsQ0FBQztJQVJGLENBQUM7Q0FTRjtBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUksV0FBaUIsRUFBRSxFQUFFLENBQzdELElBQUksc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfaXNOdW1iZXJWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyByZXNvbHZlTmVzdGVkVmFsdWUgfSBmcm9tICcuLi9uZXN0ZWQtdmFsdWUnO1xuXG4vKipcbiAqIE1hdFRhYmxlRGF0YVNvdXJjZSB0aGF0IHN1cHBvcnRzIHNvcnRpbmcgZm9yIG5lc3RlZCBvYmplY3RzLlxuICovXG5leHBvcnQgY2xhc3MgTmVzdGVkT2JqZWN0RGF0YVNvdXJjZTxUPiBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxUPiB7XG4gIGNvbnN0cnVjdG9yKGluaXRpYWxEYXRhPzogVFtdKSB7XG4gICAgc3VwZXIoaW5pdGlhbERhdGEpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc29ydGluZ0RhdGFBY2Nlc3NvcjogKFxuICAgIGRhdGE6IFQsXG4gICAgc29ydEhlYWRlcklkOiBzdHJpbmcsXG4gICkgPT4gc3RyaW5nIHwgbnVtYmVyID0gKGRhdGE6IFQsIHNvcnRIZWFkZXJJZDogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVOZXN0ZWRWYWx1ZShkYXRhLCBzb3J0SGVhZGVySWQpO1xuICAgIHJldHVybiBfaXNOdW1iZXJWYWx1ZSh2YWx1ZSkgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBuZXN0ZWRPYmplY3REYXRhU291cmNlID0gPFQ+KGluaXRpYWxEYXRhPzogVFtdKSA9PlxuICBuZXcgTmVzdGVkT2JqZWN0RGF0YVNvdXJjZShpbml0aWFsRGF0YSk7XG4iXX0=