1const googleDiviChartList = ['gauge_google','geo_google']; 2if (typeof graphinaDiviIsInit === "undefined") { 3 var graphinaDiviIsInit = {}; 4} 5 6function graphinaBuilderGoogleChartInit(ele,options,type,id){ 7 graphinaDiviResetVars(); 8 if (id in graphina_divi_localize.graphinaAllGraphs) { 9 graphina_divi_localize.graphinaAllGraphs[id].clearChart(); 10 delete graphina_divi_localize.graphinaAllGraphs[id]; 11 delete graphina_divi_localize.graphinaBlockCharts[id]; 12 } 13 graphinaDiviIsInit[id] = false; 14 graphina_divi_localize.graphinaAllGraphsOptions[id] = options; 15 if( ele !== null){ 16 if(graphina_divi_localize.is_view_port_disable !== undefined && graphina_divi_localize.is_view_port_disable === 'on'){ 17 graphinaBuilderGoogleChartRender(id,type); 18 }else{ 19 const observer = new IntersectionObserver(enteries => { 20 enteries.forEach(entry =>{ 21 if(entry.isIntersecting){ 22 if (graphinaDiviIsInit[id] === false) { 23 graphinaBuilderGoogleChartRender(id,type); 24 } 25 } 26 }) 27 }) 28 observer.observe(ele); 29 } 30 } 31} 32 33function graphinaBuilderGoogleChartRender(id,type){ 34 if(graphinaDiviIsInit[id] !== true){ 35 graphina_divi_localize.graphinaAllGraphs[id] = new window.google.visualization[graphina_divi_localize.graphinaAllGraphsOptions[id].renderType](graphina_divi_localize.graphinaAllGraphsOptions[id].ele); 36 graphina_divi_localize.graphinaAllGraphs[id].draw(graphina_divi_localize.graphinaAllGraphsOptions[id].series, graphina_divi_localize.graphinaAllGraphsOptions[id].options); 37 graphinaDiviIsInit[id] = true; 38 } 39} 40 41function graphinaDiviRenderChart(ele,data,type,id){ 42 graphinaDiviResetVars(); 43 if (id in graphina_divi_localize.graphinaAllGraphs) { 44 graphina_divi_localize.graphinaAllGraphs[id].destroy(); 45 delete graphina_divi_localize.graphinaAllGraphs[id]; 46 delete graphina_divi_localize.graphinaAllGraphsOptions[id]; 47 delete graphina_divi_localize.graphinaBlockCharts[id]; 48 } 49 graphinaDiviIsInit[id] = false; 50 graphina_divi_localize.graphinaAllGraphsOptions[id] = data; 51 graphinaDiviGetChart(id); 52} 53 54function graphinaDiviGetChart(id){ 55 if (typeof ApexCharts === 'function' && graphina_divi_localize.graphinaAllGraphsOptions[id].ele !== null 56 && (id in graphinaDiviIsInit) && graphinaDiviIsInit[id] === false) { 57 if(graphina_divi_localize.is_view_port_disable !== undefined && graphina_divi_localize.is_view_port_disable === 'on'){ 58 graphinaDiviInitORUpdateGraphinaCharts(id); 59 }else{ 60 const observer = new IntersectionObserver(enteries => { 61 enteries.forEach(entry =>{ 62 if(entry.isIntersecting && graphinaDiviIsInit[id] === false){ 63 graphinaDiviInitORUpdateGraphinaCharts(id); 64 } 65 }) 66 }) 67 observer.observe(graphina_divi_localize.graphinaAllGraphsOptions[id].ele); 68 } 69 } 70} 71 72function graphinaDiviInitORUpdateGraphinaCharts(id,type='area'){ 73 if(Object.keys(graphina_divi_localize.graphinaBlockCharts).includes(id)){ 74 if (graphinaDiviIsInit[id] === true){ 75 graphina_divi_localize.graphinaAllGraphs[id].destroy(); 76 } 77 if(googleDiviChartList.includes(type)){ 78 if (graphinaDiviIsInit[id] === true){ 79 graphina_divi_localize.graphinaAllGraphs[id].clearChart(); 80 } 81 } 82 graphina_divi_localize.graphinaAllGraphsOptions[id].ele.innerHTML=''; 83 graphina_divi_localize.graphinaAllGraphsOptions[id].ele.innerHTML = graphina_divi_localize.graphinaBlockCharts[id]; 84 }else { 85 if (graphinaDiviIsInit[id] === true || graphina_divi_localize.graphinaAllGraphs[id]) { 86 if(googleDiviChartList.includes(type)){ 87 if (graphinaDiviIsInit[id] === true){ 88 graphina_divi_localize.graphinaAllGraphs[id].draw(graphina_divi_localize.graphinaAllGraphsOptions[id].series,graphina_divi_localize.graphinaAllGraphsOptions[id].options); 89 } 90 }else{ 91 graphina_divi_localize.graphinaAllGraphsOptions[id].options.series = graphina_divi_localize.graphinaAllGraphsOptions[id].series; 92 if(['line','bar','column','area','scatter','bubble','heatmap','radar','mixed','distributed_column'].includes(type)){ 93 graphina_divi_localize.graphinaAllGraphsOptions[id].options.xaxis.categories = graphina_divi_localize.graphinaAllGraphsOptions[id].category 94 }else { 95 graphina_divi_localize.graphinaAllGraphsOptions[id].options.labels = graphina_divi_localize.graphinaAllGraphsOptions[id].category; 96 } 97 graphina_divi_localize.graphinaAllGraphs[id].updateOptions(graphina_divi_localize.graphinaAllGraphsOptions[id].options); 98 } 99 100 } else { 101 if(googleDiviChartList.includes(type)){ 102 graphinaBuilderGoogleChartRender(id,type) 103 }else{ 104 graphinaDiviChartsFirstTimeInit(id) 105 } 106 } 107 } 108} 109 110function graphinaDiviChartsFirstTimeInit(id){ 111 graphina_divi_localize.graphinaAllGraphsOptions[id].options.chart.animations.enabled = graphina_divi_localize.graphinaAllGraphsOptions[id].animation 112 graphina_divi_localize.graphinaAllGraphs[id] = new ApexCharts(graphina_divi_localize.graphinaAllGraphsOptions[id].ele, graphina_divi_localize.graphinaAllGraphsOptions[id].options); 113 graphina_divi_localize.graphinaAllGraphs[id].render(); 114 graphinaDiviIsInit[id] = true; 115} 116function graphinaDiviResetVars(){ 117 if(typeof graphina_divi_localize.graphinaAllGraphs === "undefined"){ 118 graphina_divi_localize.graphinaAllGraphs = {}; 119 } 120 if(typeof graphina_divi_localize.graphinaAllGraphsOptions === "undefined"){ 121 graphina_divi_localize.graphinaAllGraphsOptions = {}; 122 } 123} 124 125function graphinaDiviGetDataForChartAjax(setting,type,id){ 126 jQuery.ajax({ 127 url: graphina_divi_localize.ajaxurl, 128 type: "post", 129 data: { 130 type:type, 131 id:id, 132 action:'graphina_divi_get_dynamic_data', 133 security: window.graphina_divi_localize.nonce , // Add nonce here 134 dataType:'simple', 135 setting:setting, 136 }, 137 success: function (response) { 138 if(document.getElementById(id).length === 0) { 139 return 0; 140 } 141 if (response.status === true) { 142 if(googleDiviChartList.includes(type)){ 143 jQuery('#loader-chart-icon'+id).css('display','none') 144 jQuery('#'+id).removeClass('d-none') 145 let row = graphina_divi_localize.graphinaAllGraphsOptions[id].series.getNumberOfRows(); 146 if(row > 0){ 147 graphina_divi_localize.graphinaAllGraphsOptions[id].series.removeRows(0,row) 148 } 149 graphina_divi_localize.graphinaAllGraphsOptions[id].series.addRows(response.googlechart_data) 150 if(type === 'geo_google'){ 151 152 let existingOptions = graphina_divi_localize.graphinaAllGraphsOptions[id].options; 153 let colorAxisOptions = existingOptions.colorAxis || {}; // In case colorAxis is not defined 154 155 graphina_divi_localize.graphinaAllGraphsOptions[id].options = Object.assign( 156 {}, 157 existingOptions, 158 { 159 colorAxis: Object.assign({}, colorAxisOptions, { 160 colors: response.color 161 }) 162 } 163 ); 164 165 } 166 }else{ 167 graphina_divi_localize.graphinaAllGraphsOptions[id].series = response.data.series; 168 graphina_divi_localize.graphinaAllGraphsOptions[id].category = response.data.category; 169 } 170 if(type === 'radar'){ 171 graphina_divi_localize.graphinaAllGraphsOptions[id].options.xaxis.labels.style.colors = new Array(response.data.category.length).fill(setting.xaxis_label_color !== undefined ? setting.xaxis_label_color : '#000000' ) 172 } 173 if (response.instant_init === true) { 174 graphinaDiviChartsFirstTimeInit(id); 175 graphina_divi_localize.graphinaAllGraphsOptions[id].animation = false;
176 } 177 178 graphinaDiviInitORUpdateGraphinaCharts(id,type); 179 180 }else{ 181 if(googleDiviChartList.includes(type)){ 182 jQuery('#loader-chart-icon'+id).css('display','none') 183 jQuery('#'+id).removeClass('d-none') 184 let row = graphina_divi_localize.graphinaAllGraphsOptions[id].series.getNumberOfRows(); 185 if(row > 0){ 186 graphina_divi_localize.graphinaAllGraphsOptions[id].series.removeRows(0,row) 187 } 188 graphina_divi_localize.graphinaAllGraphsOptions[id].series.addRows(response.googlechart_data) 189 if(type === 'geo_google'){ 190 let existingOptions = graphina_divi_localize.graphinaAllGraphsOptions[id].options; 191 let colorAxisOptions = existingOptions.colorAxis || {}; // In case colorAxis is not defined 192 193 graphina_divi_localize.graphinaAllGraphsOptions[id].options = Object.assign( 194 {}, 195 existingOptions, 196 { 197 colorAxis: Object.assign({}, colorAxisOptions, { 198 colors: response.colors 199 }) 200 } 201 ); 202 203 } 204 } 205 if(typeof response.fail_message !== 'undefined' ){ 206 graphina_divi_localize.graphinaBlockCharts[id] = response.fail_message; 207 }else{ 208 graphina_divi_localize.graphinaAllGraphsOptions[id].options.noData.text = 'No data Found' 209 } 210 graphinaDiviInitORUpdateGraphinaCharts(id); 211 } 212 }, 213 error: function () { 214 console.log('fail'); 215 } 216 }); 217} 218 219function graphinaDiviDynamicData(setting,type,id,ajaxReload,ajaxReloadTime){ 220 221 if (window['ajaxIntervalGraphina_' + id] !== undefined) { 222 clearInterval(window['ajaxIntervalGraphina_' + id]); 223 } 224 225 if(setting.data_type !== undefined && setting.data_type !== 'manual' 226 && typeof graphinaDiviGetDataForChartAjax !== "undefined"){ 227 if(googleDiviChartList.includes(type)){ 228 jQuery('#loader-chart-icon'+id).css('display','flex') 229 jQuery('#'+id).addClass('d-none') 230 } 231 graphinaDiviGetDataForChartAjax(setting, type, id); 232 if (ajaxReload === 'true') { 233 window['ajaxIntervalGraphina_' + id] = setInterval(function () { 234 graphinaDiviGetDataForChartAjax(setting, type, id); 235 }, parseInt(ajaxReloadTime) * 1000); 236 } 237 } 238 if(setting.data_type !== undefined && setting.data_type !== 'manual' 239 && typeof elementordataAjax !== "undefined"){ 240 if(googleDiviChartList.includes(type)){ 241 jQuery('#loader-chart-icon'+id).css('display','flex') 242 jQuery('#'+id).addClass('d-none') 243 } 244 elementordataAjax(setting, type, id); 245 if (ajaxReload === 'true') { 246 window['ajaxIntervalGraphina_' + id] = setInterval(function () { 247 elementordataAjax(setting, type, id); 248 }, parseInt(ajaxReloadTime) * 1000); 249 } 250 } 251} 252 253window.graphinaDiviNumberThousandSeperate = function(x, decimal = -1) { 254 let separator = graphina_divi_localize.thousand_seperator; 255 if(separator.trim === ''){ 256 return x 257 } 258 if ( isNaN(x)) { 259 return x; 260 } 261 var parts = x.toString().split("."); 262 let val = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, separator); 263 264 if (parts[1]) { 265 if (decimal === -1) { 266 val = val + '.' + parts[1] 267 }else if (decimal !== 0) { 268 val = val + '.' + parts[1].substring(0, decimal) 269 } 270 } 271 272 return val; 273}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.