mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-20 11:45:50 +00:00
Properly remove carbon calculator
This commit is contained in:
@@ -1,237 +0,0 @@
|
||||
let calculator_data = {
|
||||
'btc': {
|
||||
'kWh': 951.58,
|
||||
'tons': 0.000000466,
|
||||
'gas': 75.7
|
||||
},
|
||||
'eth': {
|
||||
'kWh': 42.86334969,
|
||||
'tons': 0.0000000273454,
|
||||
'gas': 2.38677
|
||||
},
|
||||
'pap': {
|
||||
'kWh': 0.044,
|
||||
'tons': 0.0000000000232,
|
||||
'gas': 0.0035
|
||||
},
|
||||
'xrp': {
|
||||
'kWh': 0.0079,
|
||||
'tons': 0.0000000000045,
|
||||
'gas': 0.00063
|
||||
},
|
||||
'vsa': {
|
||||
'kWh': 0.0008,
|
||||
'tons': 0.00000000000046,
|
||||
'gas': 0.00006
|
||||
},
|
||||
'mst': {
|
||||
'kWh': 0.0006,
|
||||
'tons': 0.00000000000051,
|
||||
'gas': 0.00005
|
||||
},
|
||||
}
|
||||
|
||||
function commarize() {
|
||||
// Alter numbers larger than 1k
|
||||
if (this >= 1e6) {
|
||||
var units = ["Thousand", "Million", "Billion", "Trillion"];
|
||||
|
||||
// Divide to get SI Unit engineering style numbers (1e3,1e6,1e9, etc)
|
||||
let unit = Math.floor(((this).toFixed(0).length - 1) / 3) * 3
|
||||
// Calculate the remainder
|
||||
var num = (this / ('1e'+unit)).toFixed(2)
|
||||
var unitname = units[Math.floor(unit / 3) - 1]
|
||||
|
||||
// output number remainder + unitname
|
||||
return num + ' ' + unitname
|
||||
}
|
||||
|
||||
// return formatted original number
|
||||
return this.toLocaleString()
|
||||
}
|
||||
|
||||
// Add method to prototype. this allows you to use this function on numbers and strings directly
|
||||
Number.prototype.commarize = commarize
|
||||
String.prototype.commarize = commarize
|
||||
|
||||
let slider = document.getElementById( 'myRange' ),
|
||||
txns = document.querySelectorAll( '.slider-amt' ),
|
||||
dataTypes = document.querySelectorAll( '.d-output' ),
|
||||
dataTxns = document.querySelectorAll( '.dash' ),
|
||||
dataViz = document.querySelectorAll( '.viz-output' );
|
||||
|
||||
// Update the current slider value (each time you drag the slider handle)
|
||||
function doCalculations(val){
|
||||
|
||||
// This loops through all the dataTypes returning the calculations for the selected one
|
||||
[].slice.call(dataTypes).forEach( function( dataType ){
|
||||
|
||||
// if 'active', do calculations
|
||||
if (dataType.classList.contains('active')){
|
||||
|
||||
// looping through the calculator data
|
||||
let data_type = dataType.getAttribute( 'data-type' ),
|
||||
data_comp = dataType.getAttribute( 'data-comp' ),
|
||||
total = val * 1000000 * calculator_data[ data_type ][ data_comp ],
|
||||
num = document.getElementById( data_comp + '-' + data_type ),
|
||||
|
||||
// kWhcomp = the number of kWh Portugal used in 2019
|
||||
kWhComp = ( total / 50340000000 ).toFixed( 2 );
|
||||
|
||||
if (data_comp === 'tons') {
|
||||
total = total * 1000000;
|
||||
}
|
||||
|
||||
num.innerHTML = total.commarize();
|
||||
num.style.transition = "all .2s ease-in-out";
|
||||
|
||||
// This is for the kWh comparison, it animates the transition/selection
|
||||
if (data_comp === 'kWh' && kWhComp > .02){
|
||||
if ( kWhComp > 1.1 ) { kWhComp = 1.03 };
|
||||
let dot = document.getElementById(data_comp + '-' + data_type + '-dot');
|
||||
dot.style.transition = "all .2s ease-in-out";
|
||||
dot.style.transform = "scale(" + kWhComp * 100 + ")";
|
||||
dot.style.webkitTransform = "scale(" + kWhComp * 100 + ")";
|
||||
dot.style.msTransform = "scale(" + kWhComp * 100 + ")";
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// This function is for the slider to highlight the selected number
|
||||
function highlightNum(val){
|
||||
[].slice.call(dataTxns).forEach(function(dataTxn){
|
||||
dataTxn.classList.remove('active');
|
||||
if (dataTxn.dataset.num === val){
|
||||
dataTxn.classList.add('active')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Run animations if crypto is selected
|
||||
function cryptoSelected(){
|
||||
gasCryptoAnimation();
|
||||
co2CryptoAnimation();
|
||||
}
|
||||
// Run animations if cash is selected
|
||||
function cashSelected(){
|
||||
gasCashAnimation();
|
||||
co2CashAnimation();
|
||||
}
|
||||
// Run animations if credit is selected
|
||||
function creditSelected(){
|
||||
gasCreditAnimation();
|
||||
co2CreditAnimation();
|
||||
}
|
||||
|
||||
// This is function to select the data type
|
||||
function changeDataType( type ){
|
||||
|
||||
[].slice.call(dataTypes).forEach( function(dataType){
|
||||
if (dataType.classList.contains(type)){
|
||||
let dType = type.substring(2);
|
||||
dataType.classList.add('active');
|
||||
document.getElementById('gasAnimation').innerHTML = '';
|
||||
document.getElementById('co2Animation').innerHTML = '';
|
||||
|
||||
if (dType === 'cash'){
|
||||
cashSelected();
|
||||
} else if (dType === 'credit'){
|
||||
creditSelected()
|
||||
} else {
|
||||
cryptoSelected();
|
||||
}
|
||||
} else {
|
||||
dataType.classList.remove('active');
|
||||
}
|
||||
});
|
||||
|
||||
// based on toggle, then to calculations + slider value
|
||||
doCalculations(slider.value);
|
||||
|
||||
}
|
||||
|
||||
$('.tab-link').on('click', function(e){
|
||||
e.preventDefault();
|
||||
$('#data-selector li').removeClass('active');
|
||||
$(this).parent('li').addClass('active');
|
||||
|
||||
// Pass the type to the Change Data function
|
||||
let type = $(this).data("currencytype");
|
||||
changeDataType(type);
|
||||
ga( 'send', 'event', 'Carbon Calculator', 'Toggle Data Type', type );
|
||||
})
|
||||
|
||||
// This is main section that will run the functions once the page is ready
|
||||
$(document).ready(function(){
|
||||
// gets the slider value
|
||||
[].slice.call(txns).forEach(function(txn){
|
||||
txn.innerHTML = slider.value;
|
||||
})
|
||||
|
||||
// On the slider change, run the Calculator functions
|
||||
slider.oninput = function() {
|
||||
var val = this.value;
|
||||
[].slice.call(txns).forEach(function(txn){
|
||||
txn.innerHTML = val;
|
||||
});
|
||||
highlightNum(val);
|
||||
doCalculations(val);
|
||||
ga( 'send', 'event', 'Carbon Calculator', 'Slider Data Amount', val );
|
||||
}
|
||||
|
||||
// On page load, run default functions
|
||||
doCalculations(slider.value);
|
||||
cryptoSelected();
|
||||
|
||||
// For mobile, show or hide the button
|
||||
$(window).on('load resize scroll', function() {
|
||||
if ($(window).width() < 993) {
|
||||
let distance = $('#calculator-outputs').offset().top,
|
||||
$window = $(window).scrollTop(),
|
||||
data_toggle = $('#calculator-mobile-toggle'),
|
||||
inputs = $('#calculator-inputs'),
|
||||
inputs_offset = $('#calculator-inputs-offset');
|
||||
|
||||
if (distance < $window){
|
||||
data_toggle.addClass('show').removeClass('hide');
|
||||
} else {
|
||||
inputs.removeClass('sticky');
|
||||
data_toggle.addClass('hide').removeClass('show');
|
||||
inputs_offset.removeClass('offset' );
|
||||
$('#data-toggle').text('Change Inputs');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// This is the mobile button
|
||||
$('#calculator-mobile-toggle').on( 'click', function(e){
|
||||
e.preventDefault();
|
||||
|
||||
let inputs = $('#calculator-inputs'),
|
||||
inputs_offset = $('#calculator-inputs-offset');
|
||||
|
||||
$('#calculator-inputs' ).toggleClass('show');
|
||||
|
||||
if (inputs.hasClass('sticky')) {
|
||||
inputs.removeClass('sticky');
|
||||
inputs_offset.removeClass('offset');
|
||||
$(this).text('Change Inputs');
|
||||
ga( 'send', 'event', 'Carbon Calculator', 'Mobile Toggle', 'Change Inputs' );
|
||||
} else {
|
||||
inputs.addClass('sticky show');
|
||||
inputs_offset.addClass('offset');
|
||||
$(this).text('Hide Inputs');
|
||||
ga( 'send', 'event', 'Carbon Calculator', 'Mobile Toggle', 'Hide Inputs' );
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('click', 'a[href^="#calculator"]', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
$('html, body').animate({
|
||||
scrollTop: $($.attr(this, 'href')).offset().top - 80
|
||||
}, 800);
|
||||
});
|
||||
|
||||
});
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user