PluginProbe
Visualizer – Tables & Charts Manager with Built-in AI Generator / 1.5.6
Visualizer – Tables & Charts Manager with Built-in AI Generator v1.5.6
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 / js / render.js

render.js in Visualizer – Tables & Charts Manager with Built-in AI Generator 1.5.6, at js/render.js

192 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function(v, g) {
2 var gv;
3
4 v.objects = {};
5
6 v.renderChart = function(id) {
7 var chart, render, container, series, data, table, settings, i, j, row, date, axis, property, format, formatter;
8
9 chart = v.charts[id];
10 series = chart.series;
11 data = chart.data;
12 settings = chart.settings;
13
14 container = document.getElementById(id);
15 table = new gv.DataTable({cols: series});
16
17 render = v.objects[id] || null;
18 if (!render) {
19 switch (chart.type) {
20 case "gauge":
21 case "table":
22 case "timeline":
23 render = chart.type.charAt(0).toUpperCase() + chart.type.slice(1);
24 break;
25 default:
26 render = chart.type.charAt(0).toUpperCase() + chart.type.slice(1) + 'Chart';
27 break;
28 }
29
30 render = new gv[render](container);
31 }
32
33 switch (v.charts[id].type) {
34 case 'pie':
35 if (settings.slices) {
36 for (i in settings.slices) {
37 if (settings.slices[i]['color'] == '') {
38 delete settings.slices[i]['color'];
39 }
40 }
41 }
42 break;
43 case 'line':
44 case 'bar':
45 case 'column':
46 case 'area':
47 case 'scatter':
48 case 'candlestick':
49 if (settings.series) {
50 for (i in settings.series) {
51 if (settings.series[i]['color'] == '') {
52 delete settings.series[i]['color'];
53 }
54 }
55 }
56 break;
57 case 'geo':
58 if (settings.region != undefined && settings.region.replace(/^\s+|\s+$/g, '') == '') {
59 settings['region'] = 'world';
60 }
61 break;
62 case 'table':
63 if (parseInt(settings['pagination']) != 1)
64 {
65 delete settings['pageSize'];
66 }
67 break;
68 case 'gauge':
69 break;
70 case 'timeline':
71 settings['timeline'] = [];
72 settings['timeline']['groupByRowLabel'] = settings['groupByRowLabel'] ? true : false;
73 settings['timeline']['colorByRowLabel'] = settings['colorByRowLabel'] ? true : false;
74 settings['timeline']['showRowLabels'] = settings['showRowLabels'] ? true : false;
75 if(settings['singleColor'] != '') {
76 settings['timeline']['singleColor'] = settings['singleColor'];
77 }
78 break;
79 case 'combo':
80 if (settings.series) {
81 for (i in settings.series) {
82 if (settings.series[i]['type'] == '') {
83 delete settings.series[i]['type'];
84 }
85 if (settings.series[i]['color'] == '') {
86 delete settings.series[i]['color'];
87 }
88 }
89 }
90 break;
91 default:
92 return;
93 }
94
95 if (series[0] && (series[0].type == 'date' || series[0].type == 'datetime')) {
96 axis = false;
97 switch (v.charts[id].type) {
98 case 'line':
99 case 'area':
100 case 'scatter':
101 case 'candlestick':
102 case 'column':
103 axis = settings.hAxis;
104 break;
105 case 'bar':
106 axis = settings.vAxis;
107 break;
108 }
109
110 if (axis) {
111 for (property in axis.viewWindow) {
112 date = new Date(axis.viewWindow[property]);
113 if (Object.prototype.toString.call(date) === "[object Date]") {
114 if (!isNaN(date.getTime())) {
115 axis.viewWindow[property] = date;
116 continue;
117 }
118 }
119
120 delete axis.viewWindow[property];
121 }
122 }
123 }
124
125 for (i = 0; i < data.length; i++) {
126 row = [];
127 for (j = 0; j < series.length; j++) {
128 if (series[j].type == 'date' || series[j].type == 'datetime') {
129 date = new Date(data[i][j]);
130 data[i][j] = null;
131 if (Object.prototype.toString.call(date) === "[object Date]") {
132 if (!isNaN(date.getTime())) {
133 data[i][j] = date;
134 }
135 }
136 }
137 row.push(data[i][j]);
138 }
139 table.addRow(row);
140 }
141
142 if (settings.series) {
143 for (i = 0; i < settings.series.length; i++) {
144 format = settings.series[i].format;
145 if (!format || format == '') {
146 continue;
147 }
148
149 formatter = null;
150 switch (series[i + 1].type) {
151 case 'number':
152 formatter = new g.visualization.NumberFormat({pattern: format});
153 break;
154 case 'date':
155 case 'datetime':
156 case 'timeofday':
157 formatter = new g.visualization.DateFormat({pattern: format});
158 break;
159 }
160
161 if (formatter) {
162 formatter.format(table, i + 1);
163 }
164 }
165 }
166
167 render.draw(table, settings);
168 };
169
170 v.render = function() {
171 for (var id in (v.charts || {})) {
172 v.renderChart(id);
173 }
174 };
175
176 g.charts.load("current", {packages: ["corechart", "geochart", "gauge", "table", "timeline"]});
177 g.charts.setOnLoadCallback(function() {
178 gv = g.visualization;
179 v.render();
180 });
181 })(visualizer, google);
182
183 (function($, v) {
184 var resizeTimeout;
185
186 $(document).ready(function() {
187 $(window).resize(function() {
188 clearTimeout(resizeTimeout);
189 resizeTimeout = setTimeout(v.render, 100);
190 });
191 });
192 })(jQuery, visualizer);