PluginProbe
Elementor Website Builder – more than just a page builder / 3.8.0-beta1
Elementor Website Builder – more than just a page builder v3.8.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / app / assets / js / molecules / data-table.js

data-table.js in Elementor Website Builder – more than just a page builder 3.8.0-beta1, at app/assets/js/molecules/data-table.js

92 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { arrayToClassName } from '../utils/utils';
2
3 import Table from 'elementor-app/ui/table/table';
4
5 export default function DataTable( {
6 className,
7 onSelect,
8 initialSelected,
9 initialDisabled,
10 headers,
11 layout,
12 rows,
13 selection,
14 } ) {
15 return (
16 <Table
17 selection={ selection }
18 onSelect={ onSelect }
19 initialSelected={ initialSelected }
20 initialDisabled={ initialDisabled }
21 className={ arrayToClassName( [ 'e-app-data-table', className ] ) }
22 >
23 {
24 ! ! headers.length &&
25 <Table.Head>
26 <Table.Row>
27 {
28 selection &&
29 <Table.Cell tag="th">
30 <Table.Checkbox allSelectedCount={ rows.length } />
31 </Table.Cell>
32 }
33
34 {
35 headers.map( ( header, index ) => (
36 <Table.Cell tag="th" colSpan={ layout && layout[ index ] } key={ index }>
37 { header }
38 </Table.Cell>
39 ) )
40 }
41 </Table.Row>
42 </Table.Head>
43 }
44
45 <Table.Body>
46 {
47 rows.map( ( row, rowIndex ) => (
48 <Table.Row key={ rowIndex }>
49 {
50 selection &&
51 <Table.Cell tag="td">
52 <Table.Checkbox index={ rowIndex } />
53 </Table.Cell>
54 }
55
56 {
57 row.map( ( cell, cellIndex ) => (
58 <Table.Cell tag="td" colSpan={ layout && layout[ cellIndex ] } key={ cellIndex }>
59 { cell }
60 </Table.Cell>
61 ) )
62 }
63 </Table.Row>
64 ) )
65 }
66 </Table.Body>
67 </Table>
68 );
69 }
70
71 DataTable.propTypes = {
72 className: PropTypes.string,
73 headers: PropTypes.array,
74 rows: PropTypes.array,
75 initialDisabled: PropTypes.array,
76 initialSelected: PropTypes.array,
77 layout: PropTypes.array,
78 onSelect: PropTypes.func,
79 selection: PropTypes.bool,
80 withHeader: PropTypes.bool,
81 };
82
83 DataTable.defaultProps = {
84 className: '',
85 headers: [],
86 rows: [],
87 initialDisabled: [],
88 initialSelected: [],
89 selection: false,
90 };
91
92