@awsui/components-react
Version:
AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A
51 lines (50 loc) • 1.56 kB
JavaScript
export var applyTrackBy = function (trackBy, item) {
if (typeof trackBy === 'function') {
return trackBy(item);
}
return item[trackBy];
};
export var getItemKey = function (trackBy, item, index) {
if (!trackBy) {
return index;
}
return applyTrackBy(trackBy, item);
};
export var getTrackableValue = function (trackBy, item) {
if (!trackBy) {
return item;
}
return applyTrackBy(trackBy, item);
};
export var getColumnKey = function (column, index) {
return column.id || index;
};
var stateToIcon = {
sortable: 'caret-down',
ascending: 'caret-up-filled',
descending: 'caret-down-filled'
};
var stateToAriaSort = {
sortable: 'none',
ascending: 'ascending',
descending: 'descending'
};
export var getSortingStatus = function (sortable, sorted, descending, disabled) {
if (sorted) {
if (descending) {
return 'descending';
}
return 'ascending';
}
if (sortable && !disabled) {
return 'sortable';
}
return undefined;
};
export var getSortingIconName = function (sortingState) { return stateToIcon[sortingState]; };
export var getAriaSort = function (sortingState) { return stateToAriaSort[sortingState]; };
export var isSorted = function (column, sortingColumn) {
return column === sortingColumn ||
(column.sortingField !== undefined && column.sortingField === sortingColumn.sortingField) ||
(column.sortingComparator !== undefined && column.sortingComparator === sortingColumn.sortingComparator);
};