PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.3.1
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.3.1
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 / ColumnSettings.js

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

182 lines 4.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 ExternalLink,
13 PanelBody,
14 TextControl
15 } = wp.components;
16
17 class ColumnSettings extends Component {
18 constructor() {
19 super( ...arguments );
20 }
21
22 componentDidMount() {
23
24 /**
25 * We use deep-clean to remove all empty properties which causes a major issue with Series Settings.
26 * So add a dummy property to make sure `series` object isn't empty.
27 * Should be removed before saving the data.
28 */
29 const settings = this.props.chart['visualizer-settings'];
30
31 Object.keys( settings.series )
32 .map( i => {
33 if ( settings.series[i] !== undefined ) {
34 settings.series[i].temp = 1;
35 }
36 }
37 );
38
39 this.props.edit( settings );
40 }
41
42 render() {
43
44 const settings = this.props.chart['visualizer-settings'];
45
46 const series = this.props.chart['visualizer-series'];
47
48 return (
49 <PanelBody
50 title={ __( 'Column Settings' ) }
51 initialOpen={ false }
52 className="visualizer-advanced-panel"
53 >
54
55 { Object.keys( settings.series )
56 .map( ( i ) => {
57 return (
58 <PanelBody
59 title={ series[i].label }
60 className="visualizer-inner-sections"
61 initialOpen={ false }
62 >
63
64 { ( 'date' === series[i].type || 'datetime' === series[i].type || 'timeofday' === series[i].type ) && (
65 <Fragment>
66 <TextControl
67 label={ __( 'Display Date Format' ) }
68 help={ __( 'Enter custom format pattern to apply to this series value.' ) }
69 value={ settings.series[i].format ? settings.series[i].format.to : '' }
70 onChange={ e => {
71 if ( ! settings.series[i].format ) {
72 settings.series[i].format = {};
73 }
74 settings.series[i].format.to = e;
75 this.props.edit( settings );
76 } }
77 />
78
79 <TextControl
80 label={ __( 'Source Date Format' ) }
81 help={ __( 'What format is the source date in?' ) }
82 value={ settings.series[i].format ? settings.series[i].format.from : '' }
83 onChange={ e => {
84 if ( ! settings.series[i].format ) {
85 settings.series[i].format = {};
86 }
87 settings.series[i].format.from = e;
88 this.props.edit( settings );
89 } }
90 />
91
92 <p>
93 { __( 'You can find more info on ' ) }
94 <ExternalLink href="https://momentjs.com/docs/#/displaying/">
95 { __( 'date and time formats here.' ) }
96 </ExternalLink>
97 </p>
98 </Fragment>
99 ) }
100
101 { ( 'number' === series[i].type ) && (
102 <Fragment>
103 <TextControl
104 label={ __( 'Thousands Separator' ) }
105 value={ settings.series[i].format ? settings.series[i].format.thousands : '' }
106 onChange={ e => {
107 if ( ! settings.series[i].format ) {
108 settings.series[i].format = {};
109 }
110 settings.series[i].format.thousands = e;
111 this.props.edit( settings );
112 } }
113 />
114
115 <TextControl
116 label={ __( 'Decimal Separator' ) }
117 value={ settings.series[i].format ? settings.series[i].format.decimal : '' }
118 onChange={ e => {
119 if ( ! settings.series[i].format ) {
120 settings.series[i].format = {};
121 }
122 settings.series[i].format.decimal = e;
123 this.props.edit( settings );
124 } }
125 />
126
127 <TextControl
128 label={ __( 'Precision' ) }
129 help={ __( 'Round values to how many decimal places?' ) }
130 value={ settings.series[i].format ? settings.series[i].format.precision : '' }
131 type="number"
132 onChange={ e => {
133 if ( 100 < e ) {
134 return;
135 }
136
137 if ( ! settings.series[i].format ) {
138 settings.series[i].format = {};
139 }
140 settings.series[i].format.precision = e;
141 this.props.edit( settings );
142 } }
143 />
144
145 <TextControl
146 label={ __( 'Prefix' ) }
147 value={ settings.series[i].format ? settings.series[i].format.prefix : '' }
148 onChange={ e => {
149 if ( ! settings.series[i].format ) {
150 settings.series[i].format = {};
151 }
152 settings.series[i].format.prefix = e;
153 this.props.edit( settings );
154 } }
155 />
156
157 <TextControl
158 label={ __( 'Suffix' ) }
159 value={ settings.series[i].format ? settings.series[i].format.suffix : '' }
160 onChange={ e => {
161 if ( ! settings.series[i].format ) {
162 settings.series[i].format = {};
163 }
164 settings.series[i].format.suffix = e;
165 this.props.edit( settings );
166 } }
167 />
168 </Fragment>
169 ) }
170
171 </PanelBody>
172 );
173 }
174 ) }
175
176 </PanelBody>
177 );
178 }
179 }
180
181 export default ColumnSettings;
182