prepare for cran
This commit is contained in:
parent
56ce243b0f
commit
a05d2db20d
|
@ -1,5 +1,5 @@
|
|||
Package: apexcharter
|
||||
Version: 0.1.8.9500
|
||||
Version: 0.2.0
|
||||
Title: Create Interactive Chart with the JavaScript 'ApexCharts' Library
|
||||
Description: Provides an 'htmlwidgets' interface to 'apexcharts.js'.
|
||||
'Apexcharts' is a modern JavaScript charting library to build interactive charts and visualizations with simple API.
|
||||
|
|
2
NEWS.md
2
NEWS.md
|
@ -1,7 +1,7 @@
|
|||
apexcharter 0.2.0
|
||||
==================
|
||||
|
||||
* Updated ApexCharts.js to 3.26.1
|
||||
* Updated ApexCharts.js to 3.26.2
|
||||
* New functions `ax_facet_wrap()` and `ax_facet_grid()` to create faceting charts.
|
||||
* New function `apex_grid()` to combine several charts in a grid.
|
||||
|
||||
|
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -84,11 +84,11 @@
|
|||
</button>
|
||||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;"><a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
@ -155,7 +155,7 @@
|
|||
|
||||
|
||||
</header><script src="spark-box_files/accessible-code-block-0.0.1/empty-anchor.js"></script><script src="spark-box_files/htmlwidgets-1.5.3/htmlwidgets.js"></script><script src="spark-box_files/apexcharts-3.26.2/apexcharts.min.js"></script><link href="spark-box_files/apexcharter-css-0.1.0/apexcharter.css" rel="stylesheet">
|
||||
<script src="spark-box_files/d3-format-1.4.2/d3-format.min.js"></script><script src="spark-box_files/apexcharter-binding-0.1.8.9500/apexcharter.js"></script><div class="row">
|
||||
<script src="spark-box_files/d3-format-1.4.2/d3-format.min.js"></script><script src="spark-box_files/apexcharter-binding-0.2.0/apexcharter.js"></script><div class="row">
|
||||
<div class="col-md-9 contents">
|
||||
<div class="page-header toc-ignore">
|
||||
<h1>Spark boxes</h1>
|
||||
|
@ -184,8 +184,8 @@
|
|||
title <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/mean.html">mean</a></span><span class="op">(</span><span class="va">spark_data</span><span class="op">$</span><span class="va">var1</span><span class="op">)</span>,
|
||||
subtitle <span class="op">=</span> <span class="st">"Variable 1"</span>
|
||||
<span class="op">)</span></code></pre></div>
|
||||
<div id="htmlwidget-3be5f0ce7bde156bd9a7" style="width:100%;height:160px;" class="apexcharter html-widget"></div>
|
||||
<script type="application/json" data-for="htmlwidget-3be5f0ce7bde156bd9a7">{"x":{"ax_opts":{"chart":{"type":"area","sparkline":{"enabled":true}},"series":[{"name":"var1","type":"area","data":[[1620777600000,36],[1620864000000,44],[1620950400000,45],[1621036800000,63],[1621123200000,48],[1621209600000,41],[1621296000000,62],[1621382400000,48],[1621468800000,54],[1621555200000,38],[1621641600000,57],[1621728000000,60],[1621814400000,33],[1621900800000,39],[1621987200000,48],[1622073600000,57],[1622160000000,35],[1622246400000,42],[1622332800000,47],[1622419200000,71]]}],"dataLabels":{"enabled":false},"stroke":{"curve":"straight","width":2},"yaxis":{"decimalsInFloat":2,"labels":{"style":{"colors":"#848484"}},"show":false},"xaxis":{"type":"datetime","labels":{"style":{"colors":"#848484"}}},"colors":["#2E93fA"],"title":{"text":48.4,"style":{"fontSize":"24px"}},"subtitle":{"text":"Variable 1","style":{"fontSize":"14px"}}},"auto_update":{"series_animate":true,"update_options":true,"options_animate":true,"options_redrawPaths":true,"update_synced_charts":false},"sparkbox":{"color":"#2E93fA","background":"#FFF"},"xaxis":{"min":"2021-05-12","max":"2021-05-31"},"type":"area"},"evals":[],"jsHooks":[]}</script><p>With more styles :</p>
|
||||
<div id="htmlwidget-18e5d2b2f07587aa0d88" style="width:100%;height:160px;" class="apexcharter html-widget"></div>
|
||||
<script type="application/json" data-for="htmlwidget-18e5d2b2f07587aa0d88">{"x":{"ax_opts":{"chart":{"type":"area","sparkline":{"enabled":true}},"series":[{"name":"var1","type":"area","data":[[1620777600000,42],[1620864000000,61],[1620950400000,46],[1621036800000,59],[1621123200000,51],[1621209600000,51],[1621296000000,58],[1621382400000,56],[1621468800000,47],[1621555200000,49],[1621641600000,56],[1621728000000,74],[1621814400000,55],[1621900800000,52],[1621987200000,58],[1622073600000,27],[1622160000000,46],[1622246400000,35],[1622332800000,46],[1622419200000,50]]}],"dataLabels":{"enabled":false},"stroke":{"curve":"straight","width":2},"yaxis":{"decimalsInFloat":2,"labels":{"style":{"colors":"#848484"}},"show":false},"xaxis":{"type":"datetime","labels":{"style":{"colors":"#848484"}}},"colors":["#2E93fA"],"title":{"text":50.95,"style":{"fontSize":"24px"}},"subtitle":{"text":"Variable 1","style":{"fontSize":"14px"}}},"auto_update":{"series_animate":true,"update_options":true,"options_animate":true,"options_redrawPaths":true,"update_synced_charts":false},"sparkbox":{"color":"#2E93fA","background":"#FFF"},"xaxis":{"min":"2021-05-12","max":"2021-05-31"},"type":"area"},"evals":[],"jsHooks":[]}</script><p>With more styles :</p>
|
||||
<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span class="fu"><a href="../reference/spark_box.html">spark_box</a></span><span class="op">(</span>
|
||||
data <span class="op">=</span> <span class="va">spark_data</span>,
|
||||
|
@ -195,8 +195,8 @@
|
|||
title_style <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html">list</a></span><span class="op">(</span>color <span class="op">=</span> <span class="st">"#FFF"</span><span class="op">)</span>,
|
||||
subtitle_style <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html">list</a></span><span class="op">(</span>color <span class="op">=</span> <span class="st">"#FFF"</span><span class="op">)</span>
|
||||
<span class="op">)</span></code></pre></div>
|
||||
<div id="htmlwidget-65af9da12182b2a00577" style="width:100%;height:160px;" class="apexcharter html-widget"></div>
|
||||
<script type="application/json" data-for="htmlwidget-65af9da12182b2a00577">{"x":{"ax_opts":{"chart":{"type":"area","sparkline":{"enabled":true}},"series":[{"name":"var1","type":"area","data":[[1620777600000,36],[1620864000000,44],[1620950400000,45],[1621036800000,63],[1621123200000,48],[1621209600000,41],[1621296000000,62],[1621382400000,48],[1621468800000,54],[1621555200000,38],[1621641600000,57],[1621728000000,60],[1621814400000,33],[1621900800000,39],[1621987200000,48],[1622073600000,57],[1622160000000,35],[1622246400000,42],[1622332800000,47],[1622419200000,71]]}],"dataLabels":{"enabled":false},"stroke":{"curve":"straight","width":2},"yaxis":{"decimalsInFloat":2,"labels":{"style":{"colors":"#848484"}},"show":false},"xaxis":{"type":"datetime","labels":{"style":{"colors":"#848484"}}},"colors":["#FFF"],"title":{"text":48.4,"style":{"color":"#FFF","fontSize":"24px"}},"subtitle":{"text":"Variable 1","style":{"color":"#FFF","fontSize":"14px"}}},"auto_update":{"series_animate":true,"update_options":true,"options_animate":true,"options_redrawPaths":true,"update_synced_charts":false},"sparkbox":{"color":"#FFF","background":"#2E93fA"},"xaxis":{"min":"2021-05-12","max":"2021-05-31"},"type":"area"},"evals":[],"jsHooks":[]}</script><p>You can also use spark boxes in Shiny application, use code to launch an example :</p>
|
||||
<div id="htmlwidget-2d58722ebaf6ced37180" style="width:100%;height:160px;" class="apexcharter html-widget"></div>
|
||||
<script type="application/json" data-for="htmlwidget-2d58722ebaf6ced37180">{"x":{"ax_opts":{"chart":{"type":"area","sparkline":{"enabled":true}},"series":[{"name":"var1","type":"area","data":[[1620777600000,42],[1620864000000,61],[1620950400000,46],[1621036800000,59],[1621123200000,51],[1621209600000,51],[1621296000000,58],[1621382400000,56],[1621468800000,47],[1621555200000,49],[1621641600000,56],[1621728000000,74],[1621814400000,55],[1621900800000,52],[1621987200000,58],[1622073600000,27],[1622160000000,46],[1622246400000,35],[1622332800000,46],[1622419200000,50]]}],"dataLabels":{"enabled":false},"stroke":{"curve":"straight","width":2},"yaxis":{"decimalsInFloat":2,"labels":{"style":{"colors":"#848484"}},"show":false},"xaxis":{"type":"datetime","labels":{"style":{"colors":"#848484"}}},"colors":["#FFF"],"title":{"text":50.95,"style":{"color":"#FFF","fontSize":"24px"}},"subtitle":{"text":"Variable 1","style":{"color":"#FFF","fontSize":"14px"}}},"auto_update":{"series_animate":true,"update_options":true,"options_animate":true,"options_redrawPaths":true,"update_synced_charts":false},"sparkbox":{"color":"#FFF","background":"#2E93fA"},"xaxis":{"min":"2021-05-12","max":"2021-05-31"},"type":"area"},"evals":[],"jsHooks":[]}</script><p>You can also use spark boxes in Shiny application, use code to launch an example :</p>
|
||||
<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
|
||||
<code class="sourceCode R"><span class="fu">run_sparkbox_demo</span><span class="op">(</span><span class="op">)</span></code></pre></div>
|
||||
<p><img src="figures/spark-box.png" alt="spark-box" style="width:100%;"></p>
|
||||
|
|
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,356 @@
|
|||
/*!
|
||||
*
|
||||
* htmlwidgets bindings for ApexCharts
|
||||
* https://github.com/dreamRs/apexcharter
|
||||
*
|
||||
*/
|
||||
|
||||
/*global HTMLWidgets, ApexCharts, Shiny */
|
||||
|
||||
/// Functions
|
||||
|
||||
// From Friss tuto (https://github.com/FrissAnalytics/shinyJsTutorials/blob/master/tutorials/tutorial_03.Rmd)
|
||||
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 {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
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;
|
||||
});
|
||||
}
|
||||
//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);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/// Widget
|
||||
|
||||
HTMLWidgets.widget({
|
||||
name: "apexcharter",
|
||||
|
||||
type: "output",
|
||||
|
||||
factory: function(el, width, height) {
|
||||
var axOpts;
|
||||
var apexchart = null;
|
||||
|
||||
return {
|
||||
renderValue: function(x) {
|
||||
// Global options
|
||||
axOpts = x.ax_opts;
|
||||
|
||||
if (x.sparkbox) {
|
||||
el.style.background = x.sparkbox.background;
|
||||
el.classList.add("apexcharter-spark-box");
|
||||
}
|
||||
|
||||
// Sizing
|
||||
if (typeof axOpts.chart === "undefined") {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
axOpts.chart.width = el.clientWidth;
|
||||
axOpts.chart.height = el.clientHeight;
|
||||
if (!axOpts.chart.hasOwnProperty("id")) {
|
||||
axOpts.chart.id = el.id;
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("parentHeightOffset")) {
|
||||
axOpts.chart.parentHeightOffset = 0;
|
||||
}
|
||||
|
||||
// added events to remove minheight container
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("mounted")) {
|
||||
axOpts.chart.events.mounted = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
if (!axOpts.chart.events.hasOwnProperty("updated")) {
|
||||
axOpts.chart.events.updated = function(chartContext, config) {
|
||||
el.style.minHeight = 0;
|
||||
};
|
||||
}
|
||||
|
||||
if (x.hasOwnProperty("shinyEvents") & HTMLWidgets.shinyMode) {
|
||||
if (!axOpts.hasOwnProperty("chart")) {
|
||||
axOpts.chart = {};
|
||||
}
|
||||
if (!axOpts.chart.hasOwnProperty("events")) {
|
||||
axOpts.chart.events = {};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("click")) {
|
||||
axOpts.chart.events.dataPointSelection = function(
|
||||
event,
|
||||
chartContext,
|
||||
opts
|
||||
) {
|
||||
var options = opts;
|
||||
var nonEmpty = opts.selectedDataPoints.filter(function(el) {
|
||||
return el !== null && el.length > 0;
|
||||
});
|
||||
if (nonEmpty.length > 0) {
|
||||
var select = {};
|
||||
for (var i = 0; i < opts.selectedDataPoints.length; i++) {
|
||||
if (typeof opts.selectedDataPoints[i] === "undefined") {
|
||||
continue;
|
||||
}
|
||||
var selection = apexcharter.getSelection(
|
||||
chartContext,
|
||||
options.selectedDataPoints,
|
||||
i
|
||||
);
|
||||
if (selection !== null) {
|
||||
if (opts.w.config.series[i].hasOwnProperty("name")) {
|
||||
var name = opts.w.config.series[i].name;
|
||||
select[name] = selection;
|
||||
} else {
|
||||
select[i] = selection;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (apexcharter.isSingleSerie(options)) {
|
||||
select = select[Object.keys(select)[0]];
|
||||
}
|
||||
Shiny.setInputValue(
|
||||
x.shinyEvents.click.inputId + ":apex_click",
|
||||
{ value: select, datetime: apexcharter.isDatetimeAxis(chartContext) }
|
||||
);
|
||||
} else {
|
||||
Shiny.setInputValue(x.shinyEvents.click.inputId, null);
|
||||
}
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("zoomed")) {
|
||||
axOpts.chart.events.zoomed = function(chartContext, xaxis, yaxis) {
|
||||
var id = x.shinyEvents.zoomed.inputId;
|
||||
if (apexcharter.isDatetimeAxis(chartContext)) {
|
||||
id = id + ":apex_datetime";
|
||||
}
|
||||
Shiny.setInputValue(id, {
|
||||
x: apexcharter.getXaxis(xaxis),
|
||||
y: apexcharter.getYaxis(xaxis)
|
||||
});
|
||||
};
|
||||
}
|
||||
if (x.shinyEvents.hasOwnProperty("selection")) {
|
||||
axOpts.chart.events.selection = function(
|
||||
chartContext,
|
||||
xaxis,
|
||||
yaxis
|
||||
) {
|
||||
var id = x.shinyEvents.selection.inputId;
|
||||
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: apexcharter.getYaxis(xaxis) };
|
||||
} else if (x.shinyEvents.selection.type === "y") {
|
||||
selectionValue = { y: apexcharter.getYaxis(xaxis) };
|
||||
}
|
||||
Shiny.setInputValue(id, selectionValue);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Generate or update chart
|
||||
if (apexchart === null) {
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
} else {
|
||||
if (x.auto_update) {
|
||||
//console.log(x.auto_update);
|
||||
if (x.auto_update.update_options) {
|
||||
var options = Object.assign({}, axOpts);
|
||||
delete options.series;
|
||||
delete options.chart.width;
|
||||
delete options.chart.height;
|
||||
apexchart
|
||||
.updateOptions(
|
||||
options,
|
||||
x.auto_update.options_redrawPaths,
|
||||
x.auto_update.options_animate,
|
||||
x.auto_update.update_synced_charts
|
||||
);
|
||||
}
|
||||
apexchart
|
||||
.updateSeries(axOpts.series, x.auto_update.series_animate)
|
||||
.then(function(chart) {
|
||||
apexcharter.exportChart(x, chart);
|
||||
});
|
||||
} else {
|
||||
apexchart.destroy();
|
||||
apexchart = new ApexCharts(el, axOpts);
|
||||
apexchart.render().then(function() {
|
||||
apexcharter.exportChart(x, apexchart);
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
getChart: function() {
|
||||
return apexchart;
|
||||
},
|
||||
|
||||
resize: function(width, height) {
|
||||
apexchart.updateOptions({
|
||||
chart: {
|
||||
width: width,
|
||||
height: height
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
if (HTMLWidgets.shinyMode) {
|
||||
// update serie
|
||||
Shiny.addCustomMessageHandler("update-apexchart-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
chart.updateSeries(
|
||||
[
|
||||
{
|
||||
data: obj.data.newSeries
|
||||
}
|
||||
],
|
||||
obj.data.animate
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// update options
|
||||
Shiny.addCustomMessageHandler("update-apexchart-options", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var options = obj.data.options;
|
||||
var evals = obj.data.evals;
|
||||
if (!(evals instanceof Array)) evals = [evals];
|
||||
for (var k = 0; evals && k < evals.length; k++) {
|
||||
window.HTMLWidgets.evaluateStringMember(options, evals[k]);
|
||||
}
|
||||
chart.updateOptions(options);
|
||||
}
|
||||
});
|
||||
|
||||
// toggle series
|
||||
Shiny.addCustomMessageHandler("update-apexchart-toggle-series", function(obj) {
|
||||
var chart = apexcharter.getWidget(obj.id);
|
||||
if (typeof chart != "undefined") {
|
||||
var seriesName = obj.data.seriesName;
|
||||
for(var i = 0; i < seriesName.length; i++) {
|
||||
chart.toggleSeries(seriesName[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -86,11 +86,11 @@
|
|||
</button>
|
||||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;"><a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
@ -231,7 +231,7 @@
|
|||
<a href="#apexcharter-020" class="anchor"></a>apexcharter 0.2.0<small> Unreleased </small>
|
||||
</h1>
|
||||
<ul>
|
||||
<li>Updated ApexCharts.js to 3.26.1</li>
|
||||
<li>Updated ApexCharts.js to 3.26.2</li>
|
||||
<li>New functions <code><a href="../reference/apex-facets.html">ax_facet_wrap()</a></code> and <code><a href="../reference/apex-facets.html">ax_facet_grid()</a></code> to create faceting charts.</li>
|
||||
<li>New function <code><a href="../reference/apex_grid.html">apex_grid()</a></code> to combine several charts in a grid.</li>
|
||||
</ul>
|
||||
|
|
|
@ -9,5 +9,5 @@ articles:
|
|||
shiny-integration: shiny-integration.html
|
||||
spark-box: spark-box.html
|
||||
sync-charts: sync-charts.html
|
||||
last_built: 2021-05-11T09:46Z
|
||||
last_built: 2021-05-11T12:38Z
|
||||
|
||||
|
|
|
@ -152,11 +152,11 @@ On scatter charts you can also add a smooth line." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -152,11 +152,11 @@ add_shade_weekend() add a shadow on every week-end." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -152,11 +152,11 @@ data, mapping and type of chart." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -153,11 +153,11 @@ as Depends of apexcharter" />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -154,11 +154,11 @@ to create interactive and modern SVG charts." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -152,11 +152,11 @@ applications and interactive Rmd documents." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -152,11 +152,11 @@ applications and interactive Rmd documents." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -152,11 +152,11 @@ applications and interactive Rmd documents." />
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -149,11 +149,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -158,11 +158,11 @@ scatter: retrieve XY coordinates.
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -151,11 +151,11 @@
|
|||
<span class="navbar-brand hidden-xs hidden-sm" style="padding: 10px 15px !important;">
|
||||
<img src="https://github.com/dreamRs.png" class="hidden-xs hidden-sm" style="height: 50px;display: inline;vertical-align: middle;">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
<span class="navbar-brand hidden-md hidden-lg">
|
||||
<a class="navbar-link" href="../index.html">apexcharter</a>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.1.8.9500</span>
|
||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">0.2.0</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
checks
|
||||
library
|
||||
checks.noindex
|
||||
library.noindex
|
||||
data.sqlite
|
||||
*.html
|
||||
cloud.noindex
|
|
@ -1,24 +0,0 @@
|
|||
# Platform
|
||||
|
||||
|field |value |
|
||||
|:--------|:----------------------------|
|
||||
|version |R version 3.6.3 (2020-02-29) |
|
||||
|os |Windows 10 x64 |
|
||||
|system |x86_64, mingw32 |
|
||||
|ui |RStudio |
|
||||
|language |(EN) |
|
||||
|collate |French_France.1252 |
|
||||
|ctype |French_France.1252 |
|
||||
|tz |Europe/Berlin |
|
||||
|date |2020-10-03 |
|
||||
|
||||
# Dependencies
|
||||
|
||||
|package |old |new |<U+0394> |
|
||||
|:-----------|:-----|:------|:--|
|
||||
|apexcharter |0.1.6 |0.1.7 |* |
|
||||
|backports |NA |1.1.10 |* |
|
||||
|withr |NA |2.3.0 |* |
|
||||
|
||||
# Revdeps
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
## revdepcheck results
|
||||
|
||||
We checked 1 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package.
|
||||
|
||||
* We saw 0 new problems
|
||||
* We failed to check 0 packages
|
||||
|
|
@ -1 +0,0 @@
|
|||
*Wow, no problems at all. :)*
|
|
@ -1 +0,0 @@
|
|||
*Wow, no problems at all. :)*
|
Loading…
Reference in New Issue