@@ -20,7 +20,7 @@ | |||||
margin: 0 0.5em; | margin: 0 0.5em; | ||||
color: #fff; | color: #fff; | ||||
background: rgba(255, 255, 255, 0.1); | background: rgba(255, 255, 255, 0.1); | ||||
border: 1px solid rgba(255, 255, 255, 0.4) | |||||
border: 1px solid rgba(255, 255, 255, 0.4); | |||||
} | } | ||||
.btn-transparent:hover { | .btn-transparent:hover { | ||||
color: #fff; | color: #fff; | ||||
@@ -148,19 +148,19 @@ Array.prototype.slice.call( | |||||
el.addEventListener('click', (e) => { | el.addEventListener('click', (e) => { | ||||
let btn = e.target; | let btn = e.target; | ||||
let type = btn.getAttribute('data-type'); | let type = btn.getAttribute('data-type'); | ||||
let conf = []; | |||||
let config = []; | |||||
if(type === 'line') { | if(type === 'line') { | ||||
conf = [0, 0, 0]; | |||||
config = [0, 0, 0]; | |||||
} else if(type === 'region') { | } else if(type === 'region') { | ||||
conf = [0, 0, 1]; | |||||
config = [0, 0, 1]; | |||||
} else { | } else { | ||||
conf = [0, 1, 0]; | |||||
config = [0, 1, 0]; | |||||
} | } | ||||
plot_chart_args.show_dots = conf[0]; | |||||
plot_chart_args.heatline = conf[1]; | |||||
plot_chart_args.region_fill = conf[2]; | |||||
plot_chart_args.show_dots = config[0]; | |||||
plot_chart_args.heatline = config[1]; | |||||
plot_chart_args.region_fill = config[2]; | |||||
plot_chart_args.init = false; | plot_chart_args.init = false; | ||||
@@ -294,7 +294,7 @@ let data_div = document.querySelector('.chart-events-data'); | |||||
events_chart.parent.addEventListener('data-select', (e) => { | events_chart.parent.addEventListener('data-select', (e) => { | ||||
let name = moon_names[e.index]; | let name = moon_names[e.index]; | ||||
data_div.querySelector('.moon-name').innerHTML = name; | data_div.querySelector('.moon-name').innerHTML = name; | ||||
data_div.querySelector('.semi-major-axis').innerHTML = distances[e.index]; | |||||
data_div.querySelector('.semi-major-axis').innerHTML = distances[e.index] * 1000; | |||||
data_div.querySelector('.mass').innerHTML = masses[e.index]; | data_div.querySelector('.mass').innerHTML = masses[e.index]; | ||||
data_div.querySelector('.diameter').innerHTML = diameters[e.index]; | data_div.querySelector('.diameter').innerHTML = diameters[e.index]; | ||||
data_div.querySelector('img').src = "./assets/img/" + name.toLowerCase() + ".jpg"; | data_div.querySelector('img').src = "./assets/img/" + name.toLowerCase() + ".jpg"; | ||||
@@ -335,12 +335,12 @@ document.querySelector('[data-aggregation="sums"]').addEventListener("click", (e | |||||
}); | }); | ||||
document.querySelector('[data-aggregation="average"]').addEventListener("click", (e) => { | document.querySelector('[data-aggregation="average"]').addEventListener("click", (e) => { | ||||
if(e.target.innerHTML === "Show Average") { | |||||
if(e.target.innerHTML === "Show Averages") { | |||||
aggr_chart.show_averages(); | aggr_chart.show_averages(); | ||||
e.target.innerHTML = "Hide Average"; | |||||
e.target.innerHTML = "Hide Averages"; | |||||
} else { | } else { | ||||
aggr_chart.hide_averages(); | aggr_chart.hide_averages(); | ||||
e.target.innerHTML = "Show Average"; | |||||
e.target.innerHTML = "Show Averages"; | |||||
} | } | ||||
}); | }); | ||||
@@ -360,7 +360,7 @@ let heatmap_data = { | |||||
1506277800.0: 2 | 1506277800.0: 2 | ||||
}; | }; | ||||
let heatmap = new Chart({ | |||||
new Chart({ | |||||
parent: "#chart-heatmap", | parent: "#chart-heatmap", | ||||
data: heatmap_data, | data: heatmap_data, | ||||
type: 'heatmap', | type: 'heatmap', | ||||
@@ -368,22 +368,35 @@ let heatmap = new Chart({ | |||||
discrete_domains: 1 // default 0 | discrete_domains: 1 // default 0 | ||||
}); | }); | ||||
document.querySelector('[data-heatmap="discrete"]').addEventListener("click", (e) => { | |||||
heatmap = new Chart({ | |||||
parent: "#chart-heatmap", | |||||
data: heatmap_data, | |||||
type: 'heatmap', | |||||
height: 100, | |||||
discrete_domains: 1 // default 0 | |||||
}); | |||||
}); | |||||
Array.prototype.slice.call( | |||||
document.querySelectorAll('.heatmap-mode-buttons button') | |||||
).map(el => { | |||||
el.addEventListener('click', (e) => { | |||||
let btn = e.target; | |||||
let mode = btn.getAttribute('data-mode'); | |||||
if(mode === 'discrete') { | |||||
new Chart({ | |||||
parent: "#chart-heatmap", | |||||
data: heatmap_data, | |||||
type: 'heatmap', | |||||
height: 100, | |||||
discrete_domains: 1 // default 0 | |||||
}); | |||||
} else { | |||||
new Chart({ | |||||
parent: "#chart-heatmap", | |||||
data: heatmap_data, | |||||
type: 'heatmap', | |||||
height: 100 | |||||
}); | |||||
} | |||||
document.querySelector('[data-heatmap="continuous"]').addEventListener("click", (e) => { | |||||
heatmap = new Chart({ | |||||
parent: "#chart-heatmap", | |||||
data: heatmap_data, | |||||
type: 'heatmap', | |||||
height: 100 | |||||
Array.prototype.slice.call( | |||||
btn.parentNode.querySelectorAll('button')).map(el => { | |||||
el.classList.remove('active'); | |||||
}); | |||||
btn.classList.add('active'); | |||||
}); | }); | ||||
}); | }); | ||||
@@ -205,9 +205,9 @@ | |||||
</h6> | </h6> | ||||
<div id="chart-heatmap" class="border" | <div id="chart-heatmap" class="border" | ||||
style="overflow: scroll; text-align: center; padding: 20px;"></div> | style="overflow: scroll; text-align: center; padding: 20px;"></div> | ||||
<div class="mt-1 mx-auto" role="group"> | |||||
<button type="button" class="btn btn-sm btn-secondary active" data-heatmap="discrete">Discrete</button> | |||||
<button type="button" class="btn btn-sm btn-secondary" data-heatmap="continuous">Continuous</button> | |||||
<div class="heatmap-mode-buttons btn-group mt-1 mx-auto" role="group"> | |||||
<button type="button" class="btn btn-sm btn-secondary active" data-mode="discrete">Discrete</button> | |||||
<button type="button" class="btn btn-sm btn-secondary" data-mode="continuous">Continuous</button> | |||||
</div> | </div> | ||||
<pre><code class="hljs javascript margin-vertical-px"> let heatmap = new Chart({ | <pre><code class="hljs javascript margin-vertical-px"> let heatmap = new Chart({ | ||||
parent: "#heatmap", | parent: "#heatmap", | ||||
@@ -249,8 +249,8 @@ | |||||
</svg> | </svg> | ||||
</a> | </a> | ||||
<!--<script src="../dist/frappe-charts.min.js"></script>--> | |||||
<script src="assets/js/frappe-charts.min.js"></script> | |||||
<script src="../dist/frappe-charts.min.js"></script> | |||||
<!--<script src="assets/js/frappe-charts.min.js"></script>--> | |||||
<script src="assets/js/index.js"></script> | <script src="assets/js/index.js"></script> | ||||
</body> | </body> | ||||
</html> | </html> |
@@ -456,7 +456,7 @@ export default class AxisChart extends BaseChart { | |||||
this.make_x_axis(true); | this.make_x_axis(true); | ||||
setTimeout(() => { | setTimeout(() => { | ||||
if(!this.updating) this.make_x_axis(); | if(!this.updating) this.make_x_axis(); | ||||
}, 300); | |||||
}, 350); | |||||
} | } | ||||
if(!arrays_equal(this.y_old_axis_values, this.y_axis_values) || | if(!arrays_equal(this.y_old_axis_values, this.y_axis_values) || | ||||
@@ -469,7 +469,7 @@ export default class AxisChart extends BaseChart { | |||||
this.make_y_axis(); | this.make_y_axis(); | ||||
this.make_y_specifics(); | this.make_y_specifics(); | ||||
} | } | ||||
}, 300); | |||||
}, 350); | |||||
} | } | ||||
// Change in data, so calculate dependencies | // Change in data, so calculate dependencies | ||||
@@ -518,7 +518,7 @@ export default class AxisChart extends BaseChart { | |||||
this.chart_wrapper.removeChild(anim_svg); | this.chart_wrapper.removeChild(anim_svg); | ||||
this.chart_wrapper.appendChild(this.svg); | this.chart_wrapper.appendChild(this.svg); | ||||
} | } | ||||
}, 200); | |||||
}, 250); | |||||
} | } | ||||
animate_graphs() { | animate_graphs() { | ||||
@@ -539,7 +539,7 @@ export default class AxisChart extends BaseChart { | |||||
this.make_path && this.make_path(d, i, this.x_axis_positions, d.y_tops, d.color || this.colors[i]); | this.make_path && this.make_path(d, i, this.x_axis_positions, d.y_tops, d.color || this.colors[i]); | ||||
this.make_new_units(d, i); | this.make_new_units(d, i); | ||||
}); | }); | ||||
}, 300); | |||||
}, 400); | |||||
} | } | ||||
animate_path(d, i, old_x, old_y, new_x, new_y) { | animate_path(d, i, old_x, old_y, new_x, new_y) { | ||||
@@ -547,7 +547,7 @@ export default class AxisChart extends BaseChart { | |||||
const new_points_list = new_y.map((y, i) => (new_x[i] + ',' + y)); | const new_points_list = new_y.map((y, i) => (new_x[i] + ',' + y)); | ||||
const new_path_str = new_points_list.join("L"); | const new_path_str = new_points_list.join("L"); | ||||
const path_args = [{unit: d.path, object: d, key: 'path'}, {d:"M"+new_path_str}, 250, "easein"]; | |||||
const path_args = [{unit: d.path, object: d, key: 'path'}, {d:"M"+new_path_str}, 350, "easein"]; | |||||
this.elements_to_animate.push(path_args); | this.elements_to_animate.push(path_args); | ||||
// Animate region | // Animate region | ||||
@@ -558,7 +558,7 @@ export default class AxisChart extends BaseChart { | |||||
const region_args = [ | const region_args = [ | ||||
{unit: d.region_path, object: d, key: 'region_path'}, | {unit: d.region_path, object: d, key: 'region_path'}, | ||||
{d:"M" + reg_start_pt + new_path_str + reg_end_pt}, | {d:"M" + reg_start_pt + new_path_str + reg_end_pt}, | ||||
250, | |||||
350, | |||||
"easein" | "easein" | ||||
]; | ]; | ||||
this.elements_to_animate.push(region_args); | this.elements_to_animate.push(region_args); | ||||
@@ -569,7 +569,7 @@ export default class AxisChart extends BaseChart { | |||||
let type = this.unit_args.type; | let type = this.unit_args.type; | ||||
d.svg_units.map((unit, i) => { | d.svg_units.map((unit, i) => { | ||||
if(!new_x[i] || !new_y[i]) return; | |||||
if(new_x[i] === undefined || new_y[i] === undefined) return; | |||||
this.elements_to_animate.push(this.animate[type]( | this.elements_to_animate.push(this.animate[type]( | ||||
{unit:unit, array:d.svg_units, index: i}, // unit, with info to replace where it came from in the data | {unit:unit, array:d.svg_units, index: i}, // unit, with info to replace where it came from in the data | ||||
new_x[i], | new_x[i], | ||||
@@ -646,7 +646,7 @@ export default class AxisChart extends BaseChart { | |||||
this.elements_to_animate && this.elements_to_animate.push([ | this.elements_to_animate && this.elements_to_animate.push([ | ||||
{unit: x_line, array: [0], index: 0}, | {unit: x_line, array: [0], index: 0}, | ||||
{transform: `${ new_pos }, 0`}, | {transform: `${ new_pos }, 0`}, | ||||
250, | |||||
350, | |||||
"easein", | "easein", | ||||
"translate", | "translate", | ||||
{transform: `${ old_pos }, 0`} | {transform: `${ old_pos }, 0`} | ||||
@@ -836,7 +836,7 @@ export default class AxisChart extends BaseChart { | |||||
this.elements_to_animate && this.elements_to_animate.push([ | this.elements_to_animate && this.elements_to_animate.push([ | ||||
{unit: y_line, array: [0], index: 0}, | {unit: y_line, array: [0], index: 0}, | ||||
new_props, | new_props, | ||||
250, | |||||
350, | |||||
"easein", | "easein", | ||||
"translate", | "translate", | ||||
old_props | old_props | ||||
@@ -1050,12 +1050,12 @@ export default class AxisChart extends BaseChart { | |||||
x = start + (width * index); | x = start + (width * index); | ||||
return [bar_obj, {width: width, height: height, x: x, y: y}, 250, "easein"]; | |||||
// bar.animate({height: args.new_height, y: y_top}, 250, mina.easein); | |||||
return [bar_obj, {width: width, height: height, x: x, y: y}, 350, "easein"]; | |||||
// bar.animate({height: args.new_height, y: y_top}, 350, mina.easein); | |||||
}, | }, | ||||
'dot': (dot_obj, x, y_top) => { | 'dot': (dot_obj, x, y_top) => { | ||||
return [dot_obj, {cx: x, cy: y_top}, 300, "easein"]; | |||||
// dot.animate({cy: y_top}, 250, mina.easein); | |||||
return [dot_obj, {cx: x, cy: y_top}, 350, "easein"]; | |||||
// dot.animate({cy: y_top}, 350, mina.easein); | |||||
} | } | ||||
}; | }; | ||||
} | } | ||||