Файловый менеджер - Редактировать - /home/bean7936/deribos.com/wp-content3e392d/plugins/graphina-elementor-charts-and-graphs/dist/GraphinaGoogleChartBase.js
Назад
class w{constructor(){this.chartHandlers={},this.isGoogleChartsLoaded=!1,this.init()}init(){this.setUpChartsHandler(),this.bindEventHandlers(),this.bindElementorInit()}bindElementorInit(){let e=!1;const t=()=>{e||window.elementorFrontend&&window.elementorFrontend.elementsHandler&&(e=!0,window.elementorFrontend.hooks.addAction("frontend/element_ready/widget",r=>{const a=r.find(".graphina-google-chart");a.length>0&&this.initializeCharts(a)}))};window.elementorFrontend&&window.elementorFrontend.elementsHandler&&t(),jQuery(window).on("elementor/frontend/init",()=>{setTimeout(t,50)}),jQuery(document).ready(()=>{if(!e){const r=jQuery(".graphina-google-chart");r.length>0&&r.each((a,n)=>{this.initializeCharts(jQuery(n))})}})}bindEventHandlers(){jQuery(document.body).on("change",".graphina-select-google-chart-type",this.debounce(this.handleChartTypeChange.bind(this),300)),jQuery(document.body).off("click",".graphina-filter-div-button.google"),jQuery(document.body).on("click",".graphina-filter-div-button.google",this.handleChartFilter.bind(this))}debounce(e,t){let r;return function(...a){const n=this;clearTimeout(r),r=setTimeout(()=>e.apply(n,a),t)}}handleChartTypeChange(e){const t=jQuery(e.target),r=t.val(),a=t.data("element_id"),n=jQuery(`.graphina-google-chart[data-element_id="${a}"]`);n.length>0&&this.updateChartType(n,r)}updateChartType(e,t){this.setupChart(e,t)}getGoogleChartTypeFromAlias(e){return{area_google:"AreaChart",bar_google:"BarChart",column_google:"ColumnChart",line_google:"LineChart",pie_google:"PieChart",donut_google:"PieChart",geo_google:"GeoChart",gauge_google:"Gauge",gantt_google:"Gantt",org_google:"OrgChart"}[e]||e}handleChartFilter(e){const t=e.currentTarget,r=jQuery(t).data("element_id"),a=jQuery(`.graphina-google-chart[data-element_id="${r}"]`),n=a.data("chart_type"),o=this.getGoogleChartTypeFromAlias(n);a.length>0&&this.setupChart(a,o)}setUpChartsHandler(){throw new Error("setUpChartsHandler method must be implemented by subclasses")}handleElementorWidgetInit(){elementorFrontend.hooks.addAction("frontend/element_ready/widget",e=>{const t=e.find(".graphina-google-chart");t.length>0&&this.initializeCharts(t)})}setupTableData(e,t,r,a,n){var o,g;((o=e==null?void 0:e.google_chart_data)==null?void 0:o.title_array.length)>0&&((g=e==null?void 0:e.google_chart_data)==null?void 0:g.data.length)>0?(t.addColumn("string",e.google_chart_data.title),e.google_chart_data.title_array.forEach(l=>{t.addColumn("number",l),e.google_chart_data.annotation_show&&t.addColumn({type:"string",role:"annotation"})}),e.google_chart_data.data.forEach(l=>t.addRow(l)),r.show(),a.hide()):(e==null?void 0:e.columns.length)>0&&e.rows.length>0?(e.columns.forEach((l,i)=>{t.addColumn(l)}),e.rows.forEach(l=>t.addRow(l))):(r.hide(),a.show())}initializeCharts(e){const t=e.data("chart_type");this.chartHandlers[t]&&this.chartHandlers[t](e)}setFieldsForCSV(e,t,r,a){const n=e[`${a.graphina_prefix}${r}_chart_dynamic_data_option`]==="sql-builder",o=`[data-setting="${a.graphina_prefix}${r}_${n?"chart_sql_builder_x_columns":"chart_csv_x_columns"}"]`,g=`[data-setting="${a.graphina_prefix}${r}_${n?"chart_sql_builder_y_columns":"chart_csv_y_columns"}"]`,l=parent.document.querySelector(o),i=parent.document.querySelector(g);if(!l||!i)return;l.innerHTML="",i.innerHTML="";const p=n?t.extra.db_column:t.extra.column,u=n?a.chart_csv_x_columns_sql:a.chart_csv_x_columns,_=n?a.chart_csv_y_columns_sql:a.chart_csv_y_columns;p.forEach(s=>{const f=Array.from(l.options).some(d=>d.value===s),c=Array.from(i.options).some(d=>d.value===s);if(!f){const d=Array.isArray(u)?u.includes(s):u===s;l.append(new Option(s,s,d,d))}if(!c){const d=Array.isArray(_)?_.includes(s):_===s;i.append(new Option(s,s,d,d))}})}getDynamicData(e,t,r,a,n){let o=jQuery(`[data-element_id="${a}"]`).closest("[data-elementor-id]").data("elementor-id");return new Promise((g,l)=>{jQuery.ajax({url:gcfe_public_localize.ajaxurl,type:"POST",dataType:"json",data:{action:"graphina_get_dynamic_data",nonce:gcfe_public_localize.nonce,chartType:r,post_id:o,element_id:a,series_count:t.chart_data_series_count_dynamic,settings:JSON.stringify(e),selected_field:n},success:i=>{i.status?((t.chart_csv_column_wise_enable||t.chart_dynamic_data_option==="sql-builder")&&(t.chart_dynamic_data_option==="csv"||t.chart_dynamic_data_option==="remote-csv"||t.chart_dynamic_data_option==="google-sheet"||t.chart_dynamic_data_option==="sql-builder")&&jQuery("body").hasClass("elementor-editor-active")&&this.setFieldsForCSV(e,i,r,t),g(i)):(console.error("Error:",i.message),l(new Error(i.message||"Failed to fetch dynamic data.")))},error:i=>{console.error("AJAX Error:",i),l(new Error("AJAX request failed."))}})})}getFinalChartOptions(e){return e}getFinalChartData(e){return e}prepareGanttRowData(e){return e.map(function(t,r){if(r===3||r===4)if(/^\d{2}-\d{2}-\d{4}$/.test(t)){let[a,n,o]=t.split("-");t=new Date(`${o}-${n}-${a}`)}else/^\d{4}-\d{2}-\d{2}$/.test(t)?t=new Date(t):t=null;return r===5&&(t=null),r===7&&(t==="null"||t==="0")?t=null:r===7&&t!=="null"&&(t=t.toString()),r===0&&(t=t.toString()),r===6&&(t=parseInt(t)),t})}afterSetupChart(e,t,r,a,n){return!0}async setupChart(e,t){const r=e.closest(".chart-box"),a=r?r.find(".google-chart-texture"):null,n=r?r.find(".graphina-google-chart"):null;try{const o=e.data("element_id"),g=e.data("chart_type"),l=e.data("chart_data"),i=e.data("extra_data"),p=e.data("settings"),u=e.data("chart_options")||{};if(await this.loadGoogleCharts(),!google.visualization[t])throw new Error(`Invalid chart type: ${t}`);const _=new google.visualization.DataTable;if(i.chart_data_option){try{let c=[];const d=jQuery(`#graphina_chart_filter_${o}`).data("total_filter");for(let h=0;h<d;h++)c[h]=jQuery(`#graphina-start-date_${h}${o}`).val()??jQuery(`#graphina-drop_down_filter_${h}${o}`).val();const m=await this.getDynamicData(p,i,g,o,c);this.setupTableData(m,_,n,a,i)}catch(c){n.hide(),a.show(),console.error("Failed to get dynamic data:",c)}jQuery(document).find(`.graphina-${o}-loader`).hide()}else{const c=this.getFinalChartData(l);this.setupTableData(c,_,n,a,i)}t==="Gantt"&&this.setDependField(p,i);const s=new google.visualization[t](e[0]),f=this.getFinalChartOptions(u,o);s.draw(_,f),this.afterSetupChart(e[0],i,s,_,f),i.can_chart_reload_ajax&&!jQuery("body").hasClass("elementor-editor-active")&&setInterval(async()=>{try{let c=[];const d=jQuery(`#graphina_chart_filter_${o}`).data("total_filter");for(let h=0;h<d;h++)c[h]=jQuery(`#graphina-start-date_${h}${o}`).val()??jQuery(`#graphina-drop_down_filter_${h}${o}`).val();const m=await this.getDynamicData(p,i,g,o,c);if(m){const h=new google.visualization.DataTable;this.setupTableData(m,h,n,a,i);const y=this.getFinalChartOptions(u,o);s.draw(h,y)}else console.warn(`No data returned for ${g} chart with ID ${o}.`)}catch(c){console.warn(`Error fetching dynamic data for ${g} chart with ID ${o}:`,c)}},i.interval_data_refresh*1e3)}catch(o){console.error(`Error initializing ${t} chart:`,o)}}async loadGoogleCharts(){if(!this.isGoogleChartsLoaded)return new Promise((e,t)=>{try{google.charts.load("current",{packages:["corechart","geochart","gauge","gantt","orgchart"]}),google.charts.setOnLoadCallback(()=>{this.isGoogleChartsLoaded=!0,e()})}catch(r){console.error("Error loading Google Charts:",r),t(r)}})}}export{w as G}; //# sourceMappingURL=GraphinaGoogleChartBase.js.map
| ver. 1.6 |
Github
|
.
| PHP 8.3.30 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка