File "data-table.js"
Full Path: /home/warrior1/public_html/wp-content/plugins/elementor/app/assets/js/molecules/data-table.js
File size: 1.8 KB
MIME-type: text/html
Charset: utf-8
import { arrayToClassName } from '../utils/utils';
import Table from 'elementor-app/ui/table/table';
export default function DataTable( {
className,
onSelect,
initialSelected,
initialDisabled,
headers,
layout,
rows,
selection,
} ) {
return (
<Table
selection={ selection }
onSelect={ onSelect }
initialSelected={ initialSelected }
initialDisabled={ initialDisabled }
className={ arrayToClassName( [ 'e-app-data-table', className ] ) }
>
{
! ! headers.length &&
<Table.Head>
<Table.Row>
{
selection &&
<Table.Cell tag="th">
<Table.Checkbox allSelectedCount={ rows.length } />
</Table.Cell>
}
{
headers.map( ( header, index ) => (
<Table.Cell tag="th" colSpan={ layout && layout[ index ] } key={ index }>
{ header }
</Table.Cell>
) )
}
</Table.Row>
</Table.Head>
}
<Table.Body>
{
rows.map( ( row, rowIndex ) => (
<Table.Row key={ rowIndex }>
{
selection &&
<Table.Cell tag="td">
<Table.Checkbox index={ rowIndex } />
</Table.Cell>
}
{
row.map( ( cell, cellIndex ) => (
<Table.Cell tag="td" colSpan={ layout && layout[ cellIndex ] } key={ cellIndex }>
{ cell }
</Table.Cell>
) )
}
</Table.Row>
) )
}
</Table.Body>
</Table>
);
}
DataTable.propTypes = {
className: PropTypes.string,
headers: PropTypes.array,
rows: PropTypes.array,
initialDisabled: PropTypes.array,
initialSelected: PropTypes.array,
layout: PropTypes.array,
onSelect: PropTypes.func,
selection: PropTypes.bool,
withHeader: PropTypes.bool,
};
DataTable.defaultProps = {
className: '',
headers: [],
rows: [],
initialDisabled: [],
initialSelected: [],
selection: false,
};