UNPKG

@awsui/components-react

Version:

On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en

66 lines 2.96 kB
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import { warnOnce } from '@awsui/component-toolkit/internal'; export const applyTrackBy = (trackBy, item) => { if (typeof trackBy === 'function') { return trackBy(item); } return item[trackBy]; }; export const getItemKey = (trackBy, item, index) => { if (!trackBy) { return index; } return applyTrackBy(trackBy, item); }; export const getTrackableValue = (trackBy, item) => { if (!trackBy) { return item; } return applyTrackBy(trackBy, item); }; export const getColumnKey = (column, index) => { return column.id || index; }; export const toContainerVariant = (variant) => { const isDefaultVariant = !variant || variant === 'container'; return isDefaultVariant ? 'default' : variant === 'borderless' ? 'embedded' : variant; }; export function checkSortingState(columnDefinitions, sortingComparator) { const matchedColumn = columnDefinitions.filter(column => column.sortingComparator === sortingComparator)[0]; if (!matchedColumn) { warnOnce('Table', 'Currently active sorting comparator was not found in any columns. Make sure to provide the same comparator function instance on each render.'); } } export function getVisibleColumnDefinitions({ columnDisplay, visibleColumns, columnDefinitions, }) { // columnsDisplay has a precedence over visibleColumns. if (columnDisplay) { return getVisibleColumnDefinitionsFromColumnDisplay({ columnDisplay, columnDefinitions }); } else if (visibleColumns) { return getVisibleColumnDefinitionsFromVisibleColumns({ visibleColumns, columnDefinitions }); } else { return columnDefinitions; } } function getVisibleColumnDefinitionsFromColumnDisplay({ columnDisplay, columnDefinitions, }) { const columnDefinitionsById = columnDefinitions.reduce((accumulator, item) => (item.id === undefined ? accumulator : Object.assign(Object.assign({}, accumulator), { [item.id]: item })), {}); return columnDisplay .filter(item => item.visible) .map(item => columnDefinitionsById[item.id]) .filter(Boolean); } function getVisibleColumnDefinitionsFromVisibleColumns({ visibleColumns, columnDefinitions, }) { const ids = new Set(visibleColumns); return columnDefinitions.filter(({ id }) => id !== undefined && ids.has(id)); } export function getStickyClassNames(styles, props) { return { [styles['sticky-cell']]: !!props, [styles['sticky-cell-pad-inline-start']]: !!(props === null || props === void 0 ? void 0 : props.padInlineStart), [styles['sticky-cell-last-inline-start']]: !!(props === null || props === void 0 ? void 0 : props.lastInsetInlineStart), [styles['sticky-cell-last-inline-end']]: !!(props === null || props === void 0 ? void 0 : props.lastInsetInlineEnd), }; } //# sourceMappingURL=utils.js.map