PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.11.7
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.11.7
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.10.1 3.10.10 3.10.11 3.10.12 3.10.13 3.10.14 3.10.15 3.10.2 3.10.3 3.10.4 All 148 releases
visualizer / classes / Visualizer / Gutenberg / src / Components / Sidebar / TableSettings.js

TableSettings.js in Visualizer – Tables & Charts Manager with Built-in AI Generator 3.11.7, at classes/Visualizer/Gutenberg/src/Components/Sidebar/TableSettings.js

229 lines 6.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5
6 const {
7 Component,
8 Fragment
9 } = wp.element;
10
11 const {
12 CheckboxControl,
13 PanelBody,
14 SelectControl,
15 TextControl
16 } = wp.components;
17
18 class TableSettings extends Component {
19 constructor() {
20 super( ...arguments );
21 }
22
23 render() {
24
25 const settings = this.props.chart['visualizer-settings'];
26
27 const type = this.props.chart['visualizer-chart-type'];
28 const library = this.props.chart['visualizer-chart-library'];
29
30 return (
31 <PanelBody
32 title={ __( 'Table Settings' ) }
33 initialOpen={ false }
34 className="visualizer-advanced-panel"
35 >
36
37 { ( 'DataTable' === library ) ? (
38 <Fragment>
39 <CheckboxControl
40 label={ __( 'Enable Pagination' ) }
41 help={ __( 'To enable paging through the data.' ) }
42 checked={ 'true' === settings.paging_bool ? true : false }
43 onChange={ e => {
44 settings.paging_bool = 'true'; // eslint-disable-line camelcase
45 if ( ! e ) {
46 settings.paging_bool = 'false'; // eslint-disable-line camelcase
47 }
48 this.props.edit( settings );
49 } }
50 />
51
52 <TextControl
53 label={ __( 'Number of rows per page' ) }
54 help={ __( 'The number of rows in each page, when paging is enabled.' ) }
55 type="number"
56 value={ settings.pageLength_int }
57 placeholder={ 10 }
58 onChange={ e => {
59 settings.pageLength_int = e; // eslint-disable-line camelcase
60 this.props.edit( settings );
61 } }
62 />
63
64 <SelectControl
65 label={ __( 'Pagination type' ) }
66 help={ __( 'Determines what type of pagination options to show.' ) }
67 value={ settings.pagingType }
68 options={ [
69 { label: __( 'Page number buttons only' ), value: 'numbers' },
70 { label: __( '\'Previous\' and \'Next\' buttons only' ), value: 'simple' },
71 { label: __( '\'Previous\' and \'Next\' buttons, plus page numbers' ), value: 'simple_numbers' },
72 { label: __( '\'First\', \'Previous\', \'Next\' and \'Last\' buttons' ), value: 'full' },
73 { label: __( '\'First\', \'Previous\', \'Next\' and \'Last\' buttons, plus page numbers' ), value: 'full_numbers' },
74 { label: __( '\'First\' and \'Last\' buttons, plus page numbers' ), value: 'first_last_numbers' }
75 ] }
76 onChange={ e => {
77 settings.pagingType = e;
78 this.props.edit( settings );
79 } }
80 />
81
82 <CheckboxControl
83 label={ __( 'Scroll Collapse' ) }
84 help={ __( 'Allow the table to reduce in height when a limited number of rows are shown.' ) }
85 checked={ 'true' === settings.scrollCollapse_bool ? true : false }
86 onChange={ e => {
87 settings.scrollCollapse_bool = 'true'; // eslint-disable-line camelcase
88 if ( ! e ) {
89 settings.scrollCollapse_bool = 'false'; // eslint-disable-line camelcase
90 }
91 this.props.edit( settings );
92 } }
93 />
94
95 { ( 'true' === settings.scrollCollapse_bool ) && (
96 <TextControl
97 label={ __( 'Vertical Height' ) }
98 help={ __( 'Vertical scrolling will constrain the table to the given height.' ) }
99 type="number"
100 value={ settings.scrollY_int }
101 placeholder={ 300 }
102 onChange={ e => {
103 settings.scrollY_int = e; // eslint-disable-line camelcase
104 this.props.edit( settings );
105 } }
106 />
107 ) }
108
109 <CheckboxControl
110 label={ __( 'Disable Sort' ) }
111 help={ __( 'To disable sorting on columns.' ) }
112 checked={ 'false' === settings.ordering_bool ? true : false }
113 onChange={ e => {
114 settings.ordering_bool = 'true'; // eslint-disable-line camelcase
115 if ( e ) {
116 settings.ordering_bool = 'false'; // eslint-disable-line camelcase
117 }
118 this.props.edit( settings );
119 } }
120 />
121
122 <CheckboxControl
123 label={ __( 'Freeze Header/Footer' ) }
124 help={ __( 'Freeze the header and footer.' ) }
125 checked={ 'true' === settings.fixedHeader_bool ? true : false }
126 onChange={ e => {
127 settings.fixedHeader_bool = 'true'; // eslint-disable-line camelcase
128 if ( ! e ) {
129 settings.fixedHeader_bool = 'false'; // eslint-disable-line camelcase
130 }
131 this.props.edit( settings );
132 } }
133 />
134
135 <CheckboxControl
136 label={ __( 'Responsive' ) }
137 help={ __( 'Enable the table to be responsive.' ) }
138 checked={ 'true' === settings.responsive_bool ? true : false }
139 onChange={ e => {
140 settings.responsive_bool = 'true'; // eslint-disable-line camelcase
141 if ( ! e ) {
142 settings.responsive_bool = 'false'; // eslint-disable-line camelcase
143 }
144 this.props.edit( settings );
145 } }
146 />
147 </Fragment>
148 ) : (
149 <Fragment>
150 <SelectControl
151 label={ __( 'Enable Pagination' ) }
152 help={ __( 'To enable paging through the data.' ) }
153 value={ settings.pagination ? settings.pagination : 0 }
154 options={ [
155 { label: __( 'Enable' ), value: 1 },
156 { label: __( 'Disable' ), value: 0 }
157 ] }
158 onChange={ e => {
159 settings.pagination = e;
160 this.props.edit( settings );
161 } }
162 />
163
164 { '1' === settings.pagination && (
165 <TextControl
166 label={ __( 'Number of rows per page' ) }
167 help={ __( 'The number of rows in each page, when paging is enabled.' ) }
168 type="number"
169 value={ settings.pageSize }
170 onChange={ e => {
171 settings.pageSize = e;
172 this.props.edit( settings );
173 } }
174 />
175 ) }
176
177 <SelectControl
178 label={ __( 'Disable Sort' ) }
179 help={ __( 'To disable sorting on columns.' ) }
180 value={ settings.sort ? settings.sort : 'enable' }
181 options={ [
182 { label: __( 'Enable' ), value: 'enable' },
183 { label: __( 'Disable' ), value: 'disable' }
184 ] }
185 onChange={ e => {
186 settings.sort = e;
187 this.props.edit( settings );
188 } }
189 />
190
191 <TextControl
192 label={ __( 'Freeze Columns' ) }
193 help={ __( 'The number of columns from the left that will be frozen.' ) }
194 type="number"
195 value={ settings.frozenColumns }
196 onChange={ e => {
197 settings.frozenColumns = e;
198 this.props.edit( settings );
199 } }
200 />
201
202 <CheckboxControl
203 label={ __( 'Allow HTML' ) }
204 help={ __( 'If enabled, formatted values of cells that include HTML tags will be rendered as HTML.' ) }
205 checked={ Number( settings.allowHtml ) }
206 onChange={ e => {
207 settings.allowHtml = ! Number( settings.allowHtml );
208 this.props.edit( settings );
209 } }
210 />
211
212 <CheckboxControl
213 label={ __( 'Right to Left table' ) }
214 help={ __( 'Adds basic support for right-to-left languages.' ) }
215 checked={ Number( settings.rtlTable ) }
216 onChange={ e => {
217 settings.rtlTable = ! Number( settings.rtlTable );
218 this.props.edit( settings );
219 } }
220 />
221 </Fragment>
222 ) }
223 </PanelBody>
224 );
225 }
226 }
227
228 export default TableSettings;
229