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

202 lines 5.1 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
57 if (settings.series && settings.legend && settings.legend.position == "left")
58 {
59 settings.targetAxisIndex = 1;
60 }
61 break;
62 case 'geo':
63 if (settings.region != undefined && settings.region.replace(/^\s+|\s+$/g, '') == '') {
64 settings['region'] = 'world';
65 }
66 break;
67 case 'table':
68 if (parseInt(settings['pagination']) != 1)
69 {
70 delete settings['pageSize'];
71 }
72 break;
73 case 'gauge':
74 break;
75 case 'timeline':
76 settings['timeline'] = [];
77 settings['timeline']['groupByRowLabel'] = settings['groupByRowLabel'] ? true : false;
78 settings['timeline']['colorByRowLabel'] = settings['colorByRowLabel'] ? true : false;
79 settings['timeline']['showRowLabels'] = settings['showRowLabels'] ? true : false;
80 if(settings['singleColor'] != '') {
81 settings['timeline']['singleColor'] = settings['singleColor'];
82 }
83 break;
84 case 'combo':
85 if (settings.series) {
86 for (i in settings.series) {
87 if (settings.series[i]['type'] == '') {
88 delete settings.series[i]['type'];
89 }
90 if (settings.series[i]['color'] == '') {
91 delete settings.series[i]['color'];
92 }
93 }
94 }
95
96 if (settings.series && settings.legend && settings.legend.position == "left")
97 {
98 settings.targetAxisIndex = 1;
99 }
100 break;
101 default:
102 return;
103 }
104
105 if (series[0] && (series[0].type == 'date' || series[0].type == 'datetime')) {
106 axis = false;
107 switch (v.charts[id].type) {
108 case 'line':
109 case 'area':
110 case 'scatter':
111 case 'candlestick':
112 case 'column':
113 axis = settings.hAxis;
114 break;
115 case 'bar':
116 axis = settings.vAxis;
117 break;
118 }
119
120 if (axis) {
121 for (property in axis.viewWindow) {
122 date = new Date(axis.viewWindow[property]);
123 if (Object.prototype.toString.call(date) === "[object Date]") {
124 if (!isNaN(date.getTime())) {
125 axis.viewWindow[property] = date;
126 continue;
127 }
128 }
129
130 delete axis.viewWindow[property];
131 }
132 }
133 }
134
135 for (i = 0; i < data.length; i++) {
136 row = [];
137 for (j = 0; j < series.length; j++) {
138 if (series[j].type == 'date' || series[j].type == 'datetime') {
139 date = new Date(data[i][j]);
140 data[i][j] = null;
141 if (Object.prototype.toString.call(date) === "[object Date]") {
142 if (!isNaN(date.getTime())) {
143 data[i][j] = date;
144 }
145 }
146 }
147 row.push(data[i][j]);
148 }
149 table.addRow(row);
150 }
151
152 if (settings.series) {
153 for (i = 0; i < settings.series.length; i++) {
154 format = settings.series[i].format;
155 if (!format || format == '') {
156 continue;
157 }
158
159 formatter = null;
160 switch (series[i + 1].type) {
161 case 'number':
162 formatter = new g.visualization.NumberFormat({pattern: format});
163 break;
164 case 'date':
165 case 'datetime':
166 case 'timeofday':
167 formatter = new g.visualization.DateFormat({pattern: format});
168 break;
169 }
170
171 if (formatter) {
172 formatter.format(table, i + 1);
173 }
174 }
175 }
176
177 render.draw(table, settings);
178 };
179
180 v.render = function() {
181 for (var id in (v.charts || {})) {
182 v.renderChart(id);
183 }
184 };
185
186 g.charts.load("current", {packages: ["corechart", "geochart", "gauge", "table", "timeline"]});
187 g.charts.setOnLoadCallback(function() {
188 gv = g.visualization;
189 v.render();
190 });
191 })(visualizer, google);
192
193 (function($, v) {
194 var resizeTimeout;
195
196 $(document).ready(function() {
197 $(window).resize(function() {
198 clearTimeout(resizeTimeout);
199 resizeTimeout = setTimeout(v.render, 100);
200 });
201 });
202 })(jQuery, visualizer);