PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 3.3.4
Visualizer – Tables & Charts Manager with Built-in AI Generator v3.3.4
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
← All changes | classes/Visualizer/Gutenberg/src/Components/DataTable.js +50 -65 3.10.123.3.4 View file →
@@ -45,20 +45,21 @@
45 45 }
46 46
47 47 initDataTable( tableColumns, tableRow ) {
48 48 const settings = this.props.options;
49 +
49 50 const columns = tableColumns.map( ( i, index ) => {
50 51 let type = i.type;
51 52
52 53 switch ( i.type ) {
53 - case 'number':
54 - type = 'num';
55 - break;
56 - case 'date':
57 - case 'datetime':
58 - case 'timeofday':
59 - type = 'date';
60 - break;
54 + case 'number':
55 + type = 'num';
56 + break;
57 + case 'date':
58 + case 'datetime':
59 + case 'timeofday':
60 + type = 'date';
61 + break;
61 62 }
62 63
63 64 return {
64 65 title: i.label,
@@ -63,9 +64,9 @@
63 64 return {
64 65 title: i.label,
65 66 data: i.label,
66 67 type: type,
67 - render: this.dataRenderer( type, index )
68 + render: this.dataRenderer( data, type, index )
68 69 };
69 70 });
70 71
71 72 const data = tableRow.map( i => {
@@ -71,15 +72,9 @@
71 72 const data = tableRow.map( i => {
72 73 const row = {};
73 74
74 75 columns.forEach( ( j, n ) => {
75 - var datum = i[n];
76 -
77 - // datum could be undefined for dynamic data (e.g. through json).
78 - if ( 'undefined' === typeof datum ) {
79 - datum = i[j.data];
80 - }
81 - row[j.data] = datum;
76 + row[j.data] = i[n];
82 77 });
83 78
84 79 return row;
85 80 });
@@ -92,11 +87,11 @@
92 87 pageLength: settings.pageLength_int || 10,
93 88 pagingType: settings.pagingType,
94 89 ordering: 'false' === settings.ordering_bool ? false : true,
95 90 fixedHeader: 'true' === settings.fixedHeader_bool ? true : false,
96 - scrollCollapse: !! this.props.chartsScreen || 'true' === settings.scrollCollapse_bool ? true : false,
91 + scrollCollapse: this.props.chartsScreen && true || 'true' === settings.scrollCollapse_bool ? true : false,
97 92 scrollY: this.props.chartsScreen && 180 || ( 'true' === settings.scrollCollapse_bool && Number( settings.scrollY_int ) || false ),
98 - responsive: !! this.props.chartsScreen || 'true' === settings.responsive_bool ? true : false,
93 + responsive: this.props.chartsScreen && true || 'true' === settings.responsive_bool ? true : false,
99 94 searching: false,
100 95 select: false,
101 96 lengthChange: false,
102 97 bFilter: false,
@@ -103,60 +98,50 @@
103 98 bInfo: false
104 99 });
105 100 }
106 101
107 - dataRenderer( type, index ) {
102 + dataRenderer( data, type, index ) {
108 103 const settings = this.props.options;
109 104
110 - let renderer = null;
111 - if ( 'undefined' === typeof settings.series || 'undefined' === typeof settings.series[index] || 'undefined' === typeof settings.series[index].format ) {
112 - return renderer;
113 - }
105 + if ( undefined === settings.series[index]) {
106 + return data;
107 + }
114 108
115 - switch ( type ) {
116 - case 'date':
117 - case 'datetime':
118 - case 'timeofday':
119 - if ( settings.series[index].format && settings.series[index].format.from && settings.series[index].format.to ) {
120 - renderer = jQuery.fn.dataTable.render.moment( settings.series[index].format.from, settings.series[index].format.to );
121 - } else {
122 - renderer = jQuery.fn.dataTable.render.moment( 'MM-DD-YYYY' );
123 - }
124 - break;
125 - case 'num':
126 - const parts = [ '', '', '', '', '' ];
127 - if ( settings.series[index].format.thousands ) {
128 - parts[0] = settings.series[index].format.thousands;
129 - }
130 - if ( settings.series[index].format.decimal ) {
131 - parts[1] = settings.series[index].format.decimal;
132 - }
133 - if ( settings.series[index].format.precision && 0 < parseInt( settings.series[index].format.precision ) ) {
134 - parts[2] = settings.series[index].format.precision;
135 - }
136 - if ( settings.series[index].format.prefix ) {
137 - parts[3] = settings.series[index].format.prefix;
138 - }
139 - if ( settings.series[index].format.suffix ) {
140 - parts[4] = settings.series[index].format.suffix;
141 - }
142 - renderer = jQuery.fn.dataTable.render.number( ...parts );
143 - break;
144 - case 'boolean':
145 - jQuery.fn.dataTable.render.extra = function( data, type, row ) {
146 - if ( ( true === data || 'true' === data ) && '' !== settings.series[index].format.truthy ) {
147 - return settings.series[index].format.truthy.replace( /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '' );
148 - }
149 - if ( ( false === data || 'false' === data ) && '' !== settings.series[index].format.falsy ) {
150 - return settings.series[index].format.falsy.replace( /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '' );
151 - }
152 - return data;
153 - };
154 - renderer = jQuery.fn.dataTable.render.extra;
155 - break;
109 + if ( 'date' === type || 'datetime' === type || 'timeofday' === type ) {
110 + if ( settings.series[index].format && settings.series[index].format.from && settings.series[index].format.to ) {
111 + return jQuery.fn.dataTable.render.moment( settings.series[index].format.from, settings.series[index].format.to );
112 + }
113 +
114 + return jQuery.fn.dataTable.render.moment( 'MM-DD-YYYY' );
156 115 }
157 116
158 - return renderer;
117 + if ( 'num' === type ) {
118 + const parts = [ '', '', '', '', '' ];
119 +
120 + if ( settings.series[index].format.thousands ) {
121 + parts[0] = settings.series[index].format.thousands;
122 + }
123 +
124 + if ( settings.series[index].format.decimal ) {
125 + parts[1] = settings.series[index].format.decimal;
126 + }
127 +
128 + if ( settings.series[index].format.precision ) {
129 + parts[2] = settings.series[index].format.precision;
130 + }
131 +
132 + if ( settings.series[index].format.prefix ) {
133 + parts[3] = settings.series[index].format.prefix;
134 + }
135 +
136 + if ( settings.series[index].format.suffix ) {
137 + parts[4] = settings.series[index].format.suffix;
138 + }
139 +
140 + return jQuery.fn.dataTable.render.number( ...parts );
141 + }
142 +
143 + return data;
159 144 }
160 145
161 146 render() {
162 147 const settings = this.props.options;