From 727c9ed3fe59afbbf48bc573f3758f7116c7e41e Mon Sep 17 00:00:00 2001 From: pvictor Date: Wed, 11 Nov 2020 10:21:28 +0100 Subject: [PATCH] fixed bad JS namespace --- inst/htmlwidgets/apexcharter.js | 248 ++++++++++++++++---------------- 1 file changed, 125 insertions(+), 123 deletions(-) diff --git a/inst/htmlwidgets/apexcharter.js b/inst/htmlwidgets/apexcharter.js index b6298c7..f4b1f3b 100644 --- a/inst/htmlwidgets/apexcharter.js +++ b/inst/htmlwidgets/apexcharter.js @@ -10,119 +10,121 @@ /// Functions // From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd) -function get_widget(id) { - var htmlWidgetsObj = HTMLWidgets.find("#" + id); - var widgetObj; - if (typeof htmlWidgetsObj !== "undefined") { - widgetObj = htmlWidgetsObj.getChart(); - } - return widgetObj; -} - -function is_single(options) { - var typeLabels = ["pie", "radialBar", "donut"]; - var lab = typeLabels.indexOf(options.w.config.chart.type) > -1; - var single = options.w.config.series.length === 1; - return lab | single; -} - -function is_datetime(chartContext) { - if ( - chartContext.hasOwnProperty("w") && - chartContext.w.hasOwnProperty("config") && - chartContext.w.config.hasOwnProperty("xaxis") && - chartContext.w.config.xaxis.hasOwnProperty("type") - ) { - return chartContext.w.config.xaxis.type == "datetime"; - } else { - return false; - } -} - -function getSelection(chartContext, selectedDataPoints, serieIndex) { - var typeLabels = ["pie", "radialBar", "donut"]; - var typeXY = ["scatter", "bubble"]; - var selected; - if (typeLabels.indexOf(chartContext.opts.chart.type) > -1) { - var labels = chartContext.opts.labels; - selected = selectedDataPoints[serieIndex].map(function(index) { - return labels[index]; - }); - } else { - var data = chartContext.opts.series[serieIndex].data; - selected = selectedDataPoints[serieIndex].map(function(index) { - var val = data[index]; - if (typeXY.indexOf(chartContext.opts.chart.type) < 0) { - if (val.hasOwnProperty("x")) { - val = val.x; - } else { - val = val[0]; - } - } - return val; - }); - } - //console.log(selected); - if (typeXY.indexOf(chartContext.opts.chart.type) > -1) { - selected = { - x: selected.map(function(obj) { - return obj.x; - }), - y: selected.map(function(obj) { - return obj.y; - }) - }; - } - if (typeof selected == "undefined") { - selected = null; - } - return selected; -} - -function getYaxis(axis) { - var yzoom = { min: null, max: null }; - if (typeof axis.yaxis !== "undefined" && axis.yaxis !== null) { - var y_axis; - if (axis.yaxis.hasOwnProperty("min")) { - y_axis = axis.yaxis; +var apexcharter = { + getWidget: function(id) { + var htmlWidgetsObj = HTMLWidgets.find("#" + id); + var widgetObj; + if (typeof htmlWidgetsObj !== "undefined") { + widgetObj = htmlWidgetsObj.getChart(); + } + return widgetObj; + }, + + isSingleSerie: function(options) { + var typeLabels = ["pie", "radialBar", "donut"]; + var lab = typeLabels.indexOf(options.w.config.chart.type) > -1; + var single = options.w.config.series.length === 1; + return lab | single; + }, + + isDatetimeAxis: function(chartContext) { + if ( + chartContext.hasOwnProperty("w") && + chartContext.w.hasOwnProperty("config") && + chartContext.w.config.hasOwnProperty("xaxis") && + chartContext.w.config.xaxis.hasOwnProperty("type") + ) { + return chartContext.w.config.xaxis.type == "datetime"; } else { - y_axis = axis.yaxis[0]; + return false; } - if (y_axis.hasOwnProperty("min") && typeof y_axis.min !== "undefined") { - yzoom.min = y_axis.min; + }, + + getSelection: function(chartContext, selectedDataPoints, serieIndex) { + var typeLabels = ["pie", "radialBar", "donut"]; + var typeXY = ["scatter", "bubble"]; + var selected; + if (typeLabels.indexOf(chartContext.opts.chart.type) > -1) { + var labels = chartContext.opts.labels; + selected = selectedDataPoints[serieIndex].map(function(index) { + return labels[index]; + }); + } else { + var data = chartContext.opts.series[serieIndex].data; + selected = selectedDataPoints[serieIndex].map(function(index) { + var val = data[index]; + if (typeXY.indexOf(chartContext.opts.chart.type) < 0) { + if (val.hasOwnProperty("x")) { + val = val.x; + } else { + val = val[0]; + } + } + return val; + }); } - if (y_axis.hasOwnProperty("max") && typeof y_axis.max !== "undefined") { - yzoom.max = y_axis.max; + //console.log(selected); + if (typeXY.indexOf(chartContext.opts.chart.type) > -1) { + selected = { + x: selected.map(function(obj) { + return obj.x; + }), + y: selected.map(function(obj) { + return obj.y; + }) + }; + } + if (typeof selected == "undefined") { + selected = null; + } + return selected; + }, + + getYaxis: function(axis) { + var yzoom = { min: null, max: null }; + if (typeof axis.yaxis !== "undefined" && axis.yaxis !== null) { + var y_axis; + if (axis.yaxis.hasOwnProperty("min")) { + y_axis = axis.yaxis; + } else { + y_axis = axis.yaxis[0]; + } + if (y_axis.hasOwnProperty("min") && typeof y_axis.min !== "undefined") { + yzoom.min = y_axis.min; + } + if (y_axis.hasOwnProperty("max") && typeof y_axis.max !== "undefined") { + yzoom.max = y_axis.max; + } + } + return yzoom; + }, + + getXaxis: function(axis) { + var xzoom = { min: null, max: null }; + if (typeof axis.xaxis !== "undefined") { + var x_axis = axis.xaxis; + if (x_axis.hasOwnProperty("min") && typeof x_axis.min !== "undefined") { + xzoom.min = x_axis.min; + } + if (x_axis.hasOwnProperty("max") && typeof x_axis.max !== "undefined") { + xzoom.max = x_axis.max; + } + } + return xzoom; + }, + + exportChart: function(x, chart) { + if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) { + if (x.shinyEvents.hasOwnProperty("export")) { + setTimeout(function() { + chart.dataURI().then(function(imgURI) { + Shiny.setInputValue(x.shinyEvents.export.inputId, imgURI); + }); + }, 1000); + } } } - return yzoom; -} - -function getXaxis(axis) { - var xzoom = { min: null, max: null }; - if (typeof axis.xaxis !== "undefined") { - var x_axis = axis.xaxis; - if (x_axis.hasOwnProperty("min") && typeof x_axis.min !== "undefined") { - xzoom.min = x_axis.min; - } - if (x_axis.hasOwnProperty("max") && typeof x_axis.max !== "undefined") { - xzoom.max = x_axis.max; - } - } - return xzoom; -} - -function exportChart(x, chart) { - if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) { - if (x.shinyEvents.hasOwnProperty("export")) { - setTimeout(function() { - chart.dataURI().then(function(imgURI) { - Shiny.setInputValue(x.shinyEvents.export.inputId, imgURI); - }); - }, 1000); - } - } -} +}; /// Widget @@ -196,7 +198,7 @@ HTMLWidgets.widget({ if (typeof opts.selectedDataPoints[i] === "undefined") { continue; } - var selection = getSelection( + var selection = apexcharter.getSelection( chartContext, options.selectedDataPoints, i @@ -210,12 +212,12 @@ HTMLWidgets.widget({ } } } - if (is_single(options)) { + if (apexcharter.isSingleSerie(options)) { select = select[Object.keys(select)[0]]; } Shiny.setInputValue( x.shinyEvents.click.inputId + ":apex_click", - { value: select, datetime: is_datetime(chartContext) } + { value: select, datetime: apexcharter.isDatetimeAxis(chartContext) } ); } else { Shiny.setInputValue(x.shinyEvents.click.inputId, null); @@ -225,12 +227,12 @@ HTMLWidgets.widget({ if (x.shinyEvents.hasOwnProperty("zoomed")) { axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) { var id = x.shinyEvents.zoomed.inputId; - if (is_datetime(chartContext)) { + if (apexcharter.isDatetimeAxis(chartContext)) { id = id + ":apex_datetime"; } Shiny.setInputValue(id, { - x: getXaxis(xaxis), - y: getYaxis(xaxis) + x: apexcharter.getXaxis(xaxis), + y: apexcharter.getYaxis(xaxis) }); }; } @@ -241,16 +243,16 @@ HTMLWidgets.widget({ yaxis ) { var id = x.shinyEvents.selection.inputId; - if (is_datetime(chartContext)) { + if (apexcharter.isDatetimeAxis(chartContext)) { id = id + ":apex_datetime"; } var selectionValue; if (x.shinyEvents.selection.type === "x") { selectionValue = { x: xaxis.xaxis }; } else if (x.shinyEvents.selection.type === "xy") { - selectionValue = { x: xaxis.xaxis, y: getYaxis(xaxis) }; + selectionValue = { x: xaxis.xaxis, y: apexcharter.getYaxis(xaxis) }; } else if (x.shinyEvents.selection.type === "y") { - selectionValue = { y: getYaxis(xaxis) }; + selectionValue = { y: apexcharter.getYaxis(xaxis) }; } Shiny.setInputValue(id, selectionValue); }; @@ -261,7 +263,7 @@ HTMLWidgets.widget({ if (apexchart === null) { apexchart = new ApexCharts(el, axOpts); apexchart.render().then(function() { - exportChart(x, apexchart); + apexcharter.exportChart(x, apexchart); }); } else { if (x.auto_update) { @@ -282,13 +284,13 @@ HTMLWidgets.widget({ apexchart .updateSeries(axOpts.series, x.auto_update.series_animate) .then(function(chart) { - exportChart(x, chart); + apexcharter.exportChart(x, chart); }); } else { apexchart.destroy(); apexchart = new ApexCharts(el, axOpts); apexchart.render().then(function() { - exportChart(x, apexchart); + apexcharter.exportChart(x, apexchart); }); } } @@ -313,7 +315,7 @@ HTMLWidgets.widget({ if (HTMLWidgets.shinyMode) { // update serie Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) { - var chart = get_widget(obj.id); + var chart = apexcharter.getWidget(obj.id); if (typeof chart != "undefined") { chart.updateSeries( [ @@ -328,7 +330,7 @@ if (HTMLWidgets.shinyMode) { // update options Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) { - var chart = get_widget(obj.id); + var chart = apexcharter.getWidget(obj.id); if (typeof chart != "undefined") { chart.updateOptions(obj.data.options); } @@ -336,7 +338,7 @@ if (HTMLWidgets.shinyMode) { // toggle series Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) { - var chart = get_widget(obj.id); + var chart = apexcharter.getWidget(obj.id); if (typeof chart != "undefined") { var seriesName = obj.data.seriesName; for(var i = 0; i < seriesName.length; i++) {