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

158 lines 3.4 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 render = chart.type == 'gauge'
20 ? 'Gauge'
21 : chart.type.charAt(0).toUpperCase() + chart.type.slice(1) + 'Chart';
22
23 render = new gv[render](container);
24 }
25
26 switch (v.charts[id].type) {
27 case 'pie':
28 if (settings.slices) {
29 for (i in settings.slices) {
30 if (settings.slices[i]['color'] == '') {
31 delete settings.slices[i]['color'];
32 }
33 }
34 }
35 break;
36 case 'line':
37 case 'bar':
38 case 'column':
39 case 'area':
40 case 'scatter':
41 case 'candlestick':
42 if (settings.series) {
43 for (i in settings.series) {
44 if (settings.series[i]['color'] == '') {
45 delete settings.series[i]['color'];
46 }
47 }
48 }
49 break;
50 case 'geo':
51 if (settings.region != undefined && settings.region.replace(/^\s+|\s+$/g, '') == '') {
52 settings['region'] = 'world';
53 }
54 break;
55 case 'gauge':
56 break;
57 default:
58 return;
59 }
60
61 if (series[0] && (series[0].type == 'date' || series[0].type == 'datetime')) {
62 axis = false;
63 switch (v.charts[id].type) {
64 case 'line':
65 case 'area':
66 case 'scatter':
67 case 'candlestick':
68 case 'column':
69 axis = settings.hAxis;
70 break;
71 case 'bar':
72 axis = settings.vAxis;
73 break;
74 }
75
76 if (axis) {
77 for (property in axis.viewWindow) {
78 date = new Date(axis.viewWindow[property]);
79 if (Object.prototype.toString.call(date) === "[object Date]") {
80 if (!isNaN(date.getTime())) {
81 axis.viewWindow[property] = date;
82 continue;
83 }
84 }
85
86 delete axis.viewWindow[property];
87 }
88 }
89 }
90
91 for (i = 0; i < data.length; i++) {
92 row = [];
93 for (j = 0; j < series.length; j++) {
94 if (series[j].type == 'date' || series[j].type == 'datetime') {
95 date = new Date(data[i][j]);
96 data[i][j] = null;
97 if (Object.prototype.toString.call(date) === "[object Date]") {
98 if (!isNaN(date.getTime())) {
99 data[i][j] = date;
100 }
101 }
102 }
103 row.push(data[i][j]);
104 }
105 table.addRow(row);
106 }
107
108 if (settings.series) {
109 for (i = 0; i < settings.series.length; i++) {
110 format = settings.series[i].format;
111 if (!format || format == '') {
112 continue;
113 }
114
115 formatter = null;
116 switch (series[i + 1].type) {
117 case 'number':
118 formatter = new g.visualization.NumberFormat({pattern: format});
119 break;
120 case 'date':
121 case 'datetime':
122 case 'timeofday':
123 formatter = new g.visualization.DateFormat({pattern: format});
124 break;
125 }
126
127 if (formatter) {
128 formatter.format(table, i + 1);
129 }
130 }
131 }
132
133 render.draw(table, settings);
134 };
135
136 v.render = function() {
137 for (var id in (v.charts || {})) {
138 v.renderChart(id);
139 }
140 };
141
142 g.load("visualization", "1", {packages: ["corechart", "geochart", "gauge"]});
143 g.setOnLoadCallback(function() {
144 gv = g.visualization;
145 v.render();
146 });
147 })(visualizer, google);
148
149 (function($, v) {
150 var resizeTimeout;
151
152 $(document).ready(function() {
153 $(window).resize(function() {
154 clearTimeout(resizeTimeout);
155 resizeTimeout = setTimeout(v.render, 100);
156 });
157 });
158 })(jQuery, visualizer);