mirror of
https://github.com/nathanp/crypto-price-widget.git
synced 2025-11-06 03:08:55 -05:00
Lots of good UI updates and code formatting
This commit is contained in:
parent
504aed67be
commit
2f52fd2978
518
index.html
518
index.html
@ -4,10 +4,13 @@
|
||||
<meta charset="UTF-8">
|
||||
<title>Latest Crypto Prices</title>
|
||||
<link href="https://fonts.googleapis.com/css?family=Heebo:100,400" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet">
|
||||
<style type="text/css">
|
||||
/*@import url('https://rsms.me/interface/interface.css');*/
|
||||
body {
|
||||
background: #000;
|
||||
font-family: 'Heebo', sans-serif;
|
||||
/*font-family: 'Heebo', sans-serif;*/
|
||||
font-family: 'Inconsolata', monospace;
|
||||
color: #fff;
|
||||
}
|
||||
.titlebar {
|
||||
@ -61,8 +64,8 @@
|
||||
#prices {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 36px;
|
||||
font-weight: 100;
|
||||
font-size: 28px;
|
||||
font-weight: 400;
|
||||
}
|
||||
#prices li {
|
||||
margin: 0px 0px 15px 0px;
|
||||
@ -82,8 +85,97 @@
|
||||
.inactive {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*Settings Page*/
|
||||
#myInput {
|
||||
font-family: 'Inconsolata', monospace;
|
||||
border: none;
|
||||
padding: 0px 0px 10px;
|
||||
font-size: 14px;
|
||||
background: #000;
|
||||
color: #fff;
|
||||
outline: none;
|
||||
border-bottom: 1px solid #252525;
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
#saveCoins {
|
||||
background-color: #000000;
|
||||
color: #fff;
|
||||
border: 1px solid #252525;
|
||||
padding: 5px 10px;
|
||||
margin: -1px 0px 0px 0px;
|
||||
font-family: 'Inconsolata', monospace;
|
||||
}
|
||||
#coinlist {
|
||||
margin: 15px 0px 0px 0px;
|
||||
padding: 0;
|
||||
max-height: 240px;
|
||||
overflow: scroll;
|
||||
}
|
||||
|
||||
/*Scrollbar*/
|
||||
::-webkit-scrollbar,
|
||||
::-webkit-scrollbar-corner {
|
||||
background-color: black;
|
||||
}
|
||||
::-webkit-scrollbar {
|
||||
width: .5em;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:window-inactive,
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #252525;
|
||||
-webkit-border-radius: 100px;
|
||||
}
|
||||
|
||||
/*Select Boxes*/
|
||||
.custom-select {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.custom-select select {
|
||||
display: inline-block;
|
||||
border: 1px solid #252525;
|
||||
padding: 4px 3px 3px 5px;
|
||||
margin: 0;
|
||||
font: inherit;
|
||||
outline: none;
|
||||
line-height: 1.2;
|
||||
background: #000000;
|
||||
-webkit-appearance: none;
|
||||
width: 145px;
|
||||
color: #fff;
|
||||
}
|
||||
/* for Webkit's CSS-only solution */
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
.custom-select select {
|
||||
padding-right:30px;
|
||||
}
|
||||
}
|
||||
/* Since we removed the default focus styles, we have to add our own */
|
||||
.custom-select select:focus {
|
||||
-webkit-box-shadow: 0 0 3px 1px #00afc1;
|
||||
-moz-box-shadow: 0 0 3px 1px #00afc1;
|
||||
box-shadow: 0 0 3px 1px #00afc1;
|
||||
}
|
||||
/* Select arrow styling */
|
||||
.custom-select:after {
|
||||
content: "▼";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
font-size: 60%;
|
||||
line-height: 30px;
|
||||
padding: 0 7px;
|
||||
background: #252525;
|
||||
color: white;
|
||||
pointer-events: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header style="-webkit-app-region: drag" class="titlebar">
|
||||
<div class="controls">
|
||||
@ -92,37 +184,35 @@
|
||||
</div>
|
||||
<button id="settings-btn" onclick="toggleSettings()"><img src="images/icons8-Settings.png"></button>
|
||||
</header>
|
||||
|
||||
<div id="main" class="panel active">
|
||||
<ul id="prices">
|
||||
</ul>
|
||||
|
||||
<div>
|
||||
Hello <span id="firstname"></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ul>
|
||||
</div><!-- #main -->
|
||||
|
||||
<div id="settings" class="panel inactive">
|
||||
<h3>Choose Your Coins</h3>
|
||||
|
||||
<div id="coinsearch">
|
||||
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for names..">
|
||||
<button type="button" style="background-color: #fff;" id="saveCoins">Click Me!</button>
|
||||
<input type="text" id="myInput" onkeyup="myFunction()" placeholder="Type here to filter list">
|
||||
<button type="button" id="saveCoins">Save</button>
|
||||
<ul id="coinlist">
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div><!-- #coinsearch -->
|
||||
|
||||
<h3>Choose Your Base Currency</h3>
|
||||
<select id="base" onchange="setBase()">
|
||||
<option value="USD">USD</option>
|
||||
<option value="EUR">EUR</option>
|
||||
<option value="GBP">GBP</option>
|
||||
<option value="BTC">BTC</option>
|
||||
<option value="LTC">LTC</option>
|
||||
<option value="ETH">ETH</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="custom-select">
|
||||
<select id="base" onchange="setBase()">
|
||||
<option value="USD">USD</option>
|
||||
<option value="EUR">EUR</option>
|
||||
<option value="GBP">GBP</option>
|
||||
<option value="BTC">BTC</option>
|
||||
<option value="LTC">LTC</option>
|
||||
<option value="ETH">ETH</option>
|
||||
</select>
|
||||
</label>
|
||||
</div><!-- #settings -->
|
||||
|
||||
</body>
|
||||
|
||||
<script>
|
||||
@ -131,7 +221,9 @@
|
||||
</script>
|
||||
|
||||
<script>
|
||||
|
||||
/******************
|
||||
* APP FUNCTIONALITY
|
||||
******************/
|
||||
(function() {
|
||||
|
||||
function loadJSON(callback) {
|
||||
@ -146,17 +238,18 @@
|
||||
}
|
||||
};
|
||||
xobj.send(null);
|
||||
}
|
||||
} //loadJSON
|
||||
|
||||
// Generate the list of all coins
|
||||
loadJSON(function(response) {
|
||||
// Parse JSON string into object
|
||||
// Parse JSON string into object
|
||||
var myDiv = document.getElementById("coinlist");
|
||||
var actual_JSON = JSON.parse(response);
|
||||
//alert(settings.get('user.coins'));
|
||||
//console.log(actual_JSON.Data);
|
||||
|
||||
//loop through data, get coin info, generate checkbox fore each coin
|
||||
Object.keys(actual_JSON.Data).forEach(function(key) {
|
||||
|
||||
//console.log(actual_JSON.Data[key].Name);
|
||||
//console.log(actual_JSON.Data[key].CoinName);
|
||||
var li = document.createElement("li");
|
||||
@ -178,13 +271,12 @@
|
||||
li.appendChild(label);
|
||||
label.appendChild(document.createTextNode(actual_JSON.Data[key].CoinName));
|
||||
label.appendChild(document.createTextNode(' ('+actual_JSON.Data[key].Name+')'));
|
||||
});
|
||||
}); //forEach
|
||||
|
||||
});
|
||||
}); //loadJSON
|
||||
|
||||
base = 'USD';
|
||||
setBase = function() {
|
||||
|
||||
//selected base currency
|
||||
var x = document.getElementById("base").selectedIndex;
|
||||
var y = document.getElementById("base").options;
|
||||
@ -193,153 +285,135 @@
|
||||
|
||||
})();
|
||||
|
||||
function createNode(element) {
|
||||
return document.createElement(element);
|
||||
}
|
||||
function append(parent, el) {
|
||||
return parent.appendChild(el);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//user settings
|
||||
const settings = require('electron-settings');
|
||||
settings.set('name', {
|
||||
first: 'Nathan',
|
||||
last: 'Parikh'
|
||||
});
|
||||
|
||||
// Returns an array with values of the selected (checked) checkboxes in "frm"
|
||||
function getSelectedChbox(frm) {
|
||||
// JavaScript & jQuery Course - http://coursesweb.net/javascript/
|
||||
var selchbox = []; // array that will store the value of selected checkboxes
|
||||
|
||||
// gets all the input tags in frm, and their number
|
||||
var inpfields = frm.getElementsByTagName('input');
|
||||
var nr_inpfields = inpfields.length;
|
||||
|
||||
// traverse the inpfields elements, and adds the value of selected (checked) checkbox in selchbox
|
||||
for(var i=0; i<nr_inpfields; i++) {
|
||||
if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(inpfields[i].value);
|
||||
//Functions for creating/appending elements
|
||||
function createNode(element) {
|
||||
return document.createElement(element);
|
||||
}
|
||||
function append(parent, el) {
|
||||
return parent.appendChild(el);
|
||||
}
|
||||
|
||||
return selchbox;
|
||||
}
|
||||
|
||||
/* Test this function */
|
||||
document.getElementById('firstname').innerHTML = settings.get('user.coins');
|
||||
// When click on #btntest, alert the selected values
|
||||
document.getElementById('saveCoins').onclick = function(){
|
||||
var coinForm = document.getElementById('coinlist');
|
||||
var selchb = getSelectedChbox(coinForm); // gets the array returned by getSelectedChbox()
|
||||
alert(selchb);
|
||||
|
||||
settings.set('user', {
|
||||
coins: selchb
|
||||
//user settings
|
||||
const settings = require('electron-settings');
|
||||
settings.set('name', {
|
||||
first: 'Nathan',
|
||||
last: 'Parikh'
|
||||
});
|
||||
|
||||
var selectedCoins = settings.get('user.coins');
|
||||
document.getElementById('firstname').innerHTML = selectedCoins;
|
||||
}
|
||||
// Returns an array with values of the selected (checked) checkboxes in "frm"
|
||||
function getSelectedChbox(frm) {
|
||||
var selchbox = []; // array that will store the value of selected checkboxes
|
||||
// gets all the input tags in frm, and their number
|
||||
var inpfields = frm.getElementsByTagName('input');
|
||||
var nr_inpfields = inpfields.length;
|
||||
// traverse the inpfields elements, and adds the value of selected (checked) checkbox in selchbox
|
||||
for(var i=0; i<nr_inpfields; i++) {
|
||||
if(inpfields[i].type == 'checkbox' && inpfields[i].checked == true) selchbox.push(inpfields[i].value);
|
||||
}
|
||||
return selchbox;
|
||||
}
|
||||
|
||||
const ul = document.getElementById('prices'); // Get the list where we will place our authors
|
||||
const url = 'https://min-api.cryptocompare.com/data/pricemultifull?fsyms='+settings.get('user.coins') +'&tsyms='+base +'&extraParams=your_app_name';
|
||||
/* Test this function */
|
||||
//document.getElementById('firstname').innerHTML = settings.get('user.coins');
|
||||
// Click on #saveCoins, save the coin selection to the user
|
||||
document.getElementById('saveCoins').onclick = function(){
|
||||
var coinForm = document.getElementById('coinlist');
|
||||
var selchb = getSelectedChbox(coinForm); // gets the array returned by getSelectedChbox()
|
||||
alert(selchb);
|
||||
|
||||
function initData() {
|
||||
fetch(url)
|
||||
.then(
|
||||
function(response) {
|
||||
if (response.status !== 200) {
|
||||
console.log('Looks like there was a problem. Status Code: ' +
|
||||
response.status);
|
||||
return;
|
||||
}
|
||||
settings.set('user', {
|
||||
coins: selchb
|
||||
});
|
||||
|
||||
// Examine the text in the response
|
||||
response.json().then(function(data) {
|
||||
//console.log(data);
|
||||
var selectedCoins = settings.get('user.coins');
|
||||
//document.getElementById('firstname').innerHTML = selectedCoins;
|
||||
}
|
||||
|
||||
let prices = data.DISPLAY;
|
||||
var i = 0;
|
||||
for (let key of Object.keys(prices)) {
|
||||
let coin = prices[key];
|
||||
//console.log(coin);
|
||||
let li = createNode('li'),
|
||||
span = createNode('span');
|
||||
li.setAttribute("class", "price");
|
||||
li.setAttribute("id", "coin-"+[key]);
|
||||
//alert("coin-"+[key])
|
||||
//console.log(settings.get('coin.'+[key]+'.order'));
|
||||
li.setAttribute("sortorder", settings.get(li.id+'.order'));
|
||||
//alert(settings.get(li.id+'.order'));
|
||||
span.innerHTML = coin.USD.FROMSYMBOL + ' ' + coin.USD.PRICE + settings.get('coin.'+i+'.order');
|
||||
append(li, span);
|
||||
append(ul, li);
|
||||
i++;
|
||||
}
|
||||
//console.log(data.RAW.BTC.USD.PRICE)
|
||||
const ul = document.getElementById('prices'); // Get the list where we will place coins
|
||||
const url = 'https://min-api.cryptocompare.com/data/pricemultifull?fsyms='+settings.get('user.coins') +'&tsyms='+base +'&extraParams=your_app_name';
|
||||
|
||||
sortChildren(
|
||||
document.getElementById('prices'),
|
||||
function(li) { return +li.getAttribute('sortorder') }
|
||||
);
|
||||
|
||||
//sort your coins
|
||||
sortable('#prices', {
|
||||
handle: 'span'
|
||||
})[0].addEventListener('sortstop', function(e) {
|
||||
|
||||
|
||||
// Declare variables
|
||||
var ul, li, i;
|
||||
ul = document.getElementById("prices");
|
||||
li = ul.getElementsByTagName('li');
|
||||
|
||||
// Loop through all list items, and hide those who don't match the search query
|
||||
for (i = 0; i < li.length; i++) {
|
||||
li[i].setAttribute("sortorder", i);
|
||||
var elementID = li[i].id;
|
||||
//alert(elementID);
|
||||
|
||||
settings.set(elementID, { // coin-BTC
|
||||
order: li[i].getAttribute('sortorder')
|
||||
});
|
||||
|
||||
//alert(settings.get(elementID + '.order'));
|
||||
}
|
||||
|
||||
//alert(settings.get('coin.'+e+'.order'));
|
||||
/*
|
||||
|
||||
*/
|
||||
//
|
||||
//now figure out how to sort by attribute sortorder on load
|
||||
/*
|
||||
|
||||
This event is triggered when the user stopped sorting and the DOM position has changed.
|
||||
|
||||
e.detail.item contains the current dragged element.
|
||||
e.detail.index contains the new index of the dragged element (considering only list items)
|
||||
e.detail.oldindex contains the old index of the dragged element (considering only list items)
|
||||
e.detail.elementIndex contains the new index of the dragged element (considering all items within sortable)
|
||||
e.detail.oldElementIndex contains the old index of the dragged element (considering all items within sortable)
|
||||
e.detail.startparent contains the element that the dragged item comes from
|
||||
e.detail.endparent contains the element that the dragged item was added to (new parent)
|
||||
e.detail.newEndList contains all elements in the list the dragged item was dragged to
|
||||
e.detail.newStartList contains all elements in the list the dragged item was dragged from
|
||||
e.detail.oldStartList contains all elements in the list the dragged item was dragged from BEFORE it was dragged from it
|
||||
*/
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
function initData() {
|
||||
fetch(url)
|
||||
.then(
|
||||
function(response) {
|
||||
if (response.status !== 200) {
|
||||
console.log('Looks like there was a problem. Status Code: ' +
|
||||
response.status);
|
||||
return;
|
||||
}
|
||||
)
|
||||
.catch(function(err) {
|
||||
console.log('Fetch Error :-S', err);
|
||||
});
|
||||
updateData();
|
||||
|
||||
// Examine the response
|
||||
response.json().then(function(data) {
|
||||
//console.log(data);
|
||||
let prices = data.DISPLAY;
|
||||
var i = 0;
|
||||
for (let key of Object.keys(prices)) {
|
||||
let coin = prices[key];
|
||||
//console.log(coin);
|
||||
let li = createNode('li'),
|
||||
span = createNode('span');
|
||||
li.setAttribute("class", "price");
|
||||
li.setAttribute("id", "coin-"+[key]);
|
||||
//alert("coin-"+[key])
|
||||
//console.log(settings.get('coin.'+[key]+'.order'));
|
||||
li.setAttribute("sortorder", settings.get(li.id+'.order'));
|
||||
//alert(settings.get(li.id+'.order'));
|
||||
span.innerHTML = coin.USD.FROMSYMBOL + ' ' + coin.USD.PRICE + settings.get('coin.'+i+'.order');
|
||||
append(li, span);
|
||||
append(ul, li);
|
||||
i++;
|
||||
}
|
||||
//console.log(data.RAW.BTC.USD.PRICE)
|
||||
|
||||
sortChildren(
|
||||
document.getElementById('prices'),
|
||||
function(li) { return +li.getAttribute('sortorder') }
|
||||
);
|
||||
|
||||
//sort your coins
|
||||
sortable('#prices', {
|
||||
handle: 'span'
|
||||
})[0].addEventListener('sortstop', function(e) {
|
||||
// Declare variables
|
||||
var ul, li, i;
|
||||
ul = document.getElementById("prices");
|
||||
li = ul.getElementsByTagName('li');
|
||||
|
||||
// Loop through all list items
|
||||
for (i = 0; i < li.length; i++) {
|
||||
li[i].setAttribute("sortorder", i);
|
||||
var elementID = li[i].id;
|
||||
//alert(elementID);
|
||||
settings.set(elementID, { // coin-BTC
|
||||
order: li[i].getAttribute('sortorder')
|
||||
});
|
||||
//alert(settings.get(elementID + '.order'));
|
||||
}
|
||||
//alert(settings.get('coin.'+e+'.order'));
|
||||
|
||||
/*
|
||||
This event is triggered when the user stopped sorting and the DOM position has changed.
|
||||
|
||||
e.detail.item contains the current dragged element.
|
||||
e.detail.index contains the new index of the dragged element (considering only list items)
|
||||
e.detail.oldindex contains the old index of the dragged element (considering only list items)
|
||||
e.detail.elementIndex contains the new index of the dragged element (considering all items within sortable)
|
||||
e.detail.oldElementIndex contains the old index of the dragged element (considering all items within sortable)
|
||||
e.detail.startparent contains the element that the dragged item comes from
|
||||
e.detail.endparent contains the element that the dragged item was added to (new parent)
|
||||
e.detail.newEndList contains all elements in the list the dragged item was dragged to
|
||||
e.detail.newStartList contains all elements in the list the dragged item was dragged from
|
||||
e.detail.oldStartList contains all elements in the list the dragged item was dragged from BEFORE it was dragged from it
|
||||
*/
|
||||
}); //sortable
|
||||
|
||||
}); //response.json
|
||||
} //function(response)
|
||||
) //.then
|
||||
.catch(function(err) {
|
||||
console.log('Fetch Error :-S', err);
|
||||
});
|
||||
updateData();
|
||||
}
|
||||
|
||||
function updateData() {
|
||||
@ -354,54 +428,58 @@ document.getElementById('saveCoins').onclick = function(){
|
||||
}
|
||||
// Examine the text in the response
|
||||
response.json().then(function(data) {
|
||||
let prices = data.DISPLAY;
|
||||
for (let key of Object.keys(prices)) {
|
||||
let coin = prices[key];
|
||||
//console.log(coin);
|
||||
let pricesDISPLAY = data.DISPLAY; // display for everything except coin symbol
|
||||
let pricesRAW = data.RAW; // raw to get BTC instead of bitcoin symbol
|
||||
for (let key of Object.keys(pricesRAW)) {
|
||||
let coinDISPLAY = pricesDISPLAY[key];
|
||||
let coinRAW = pricesRAW[key];
|
||||
console.log(coinDISPLAY);
|
||||
let li = document.getElementById("coin-"+[key]),
|
||||
span = document.querySelector("#coin-"+[key]+" span");
|
||||
//console.log(span);
|
||||
span.innerHTML = coin[base].FROMSYMBOL + ' ' + coin[base].PRICE;
|
||||
span.innerHTML = coinRAW[base].FROMSYMBOL + ' ' + coinDISPLAY[base].PRICE.replace(/ /g,''); //.replace(/ /g,'') removes space after $
|
||||
}
|
||||
});
|
||||
}
|
||||
)
|
||||
setTimeout(function(){updateData()}, 1000);
|
||||
setTimeout(function(){updateData()}, 1000); // run this once every second
|
||||
}
|
||||
|
||||
initData();
|
||||
// Let's do this thing!
|
||||
initData();
|
||||
|
||||
//controls
|
||||
const remote = require('electron').remote;
|
||||
document.getElementById("close-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.close();
|
||||
/*******
|
||||
* APP UI
|
||||
********/
|
||||
|
||||
//Window controls
|
||||
const remote = require('electron').remote;
|
||||
document.getElementById("close-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.close();
|
||||
});
|
||||
document.getElementById("min-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.minimize();
|
||||
});
|
||||
|
||||
document.getElementById("min-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.minimize();
|
||||
});
|
||||
//settings tab/icon
|
||||
function toggleSettings() {
|
||||
var divs = document.getElementsByClassName('panel'), i;
|
||||
for (i = 0; i < divs.length; ++i) {
|
||||
if(divs[i].classList.contains('inactive')) {
|
||||
divs[i].classList.remove('inactive');
|
||||
divs[i].classList.add('active');
|
||||
}
|
||||
else {
|
||||
divs[i].classList.remove('active');
|
||||
divs[i].classList.add('inactive');
|
||||
}
|
||||
}//for
|
||||
}//toggleSettings
|
||||
|
||||
//settings
|
||||
function toggleSettings() {
|
||||
//var div = document.getElementsByClassName("panel");
|
||||
var divs = document.getElementsByClassName('panel'), i;
|
||||
//console.log(div);
|
||||
for (i = 0; i < divs.length; ++i) {
|
||||
if(divs[i].classList.contains('inactive')) {
|
||||
divs[i].classList.remove('inactive');
|
||||
divs[i].classList.add('active');
|
||||
}
|
||||
else {
|
||||
divs[i].classList.remove('active');
|
||||
divs[i].classList.add('inactive');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//search
|
||||
function myFunction() {
|
||||
//Coin search filter
|
||||
function myFunction() {
|
||||
// Declare variables
|
||||
var input, filter, ul, li, a, i;
|
||||
input = document.getElementById('myInput');
|
||||
@ -411,18 +489,18 @@ function myFunction() {
|
||||
|
||||
// Loop through all list items, and hide those who don't match the search query
|
||||
for (i = 0; i < li.length; i++) {
|
||||
label = li[i].getElementsByTagName("label")[0];
|
||||
checkbox = li[i].getElementsByTagName("input")[0].value;
|
||||
if (label.innerHTML.toUpperCase().indexOf(filter) > -1) {
|
||||
li[i].style.display = "";
|
||||
} else {
|
||||
li[i].style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
label = li[i].getElementsByTagName("label")[0];
|
||||
checkbox = li[i].getElementsByTagName("input")[0].value;
|
||||
if (label.innerHTML.toUpperCase().indexOf(filter) > -1) {
|
||||
li[i].style.display = "";
|
||||
} else {
|
||||
li[i].style.display = "none";
|
||||
}
|
||||
} //for
|
||||
} //myFunction
|
||||
|
||||
//sort by attribute
|
||||
function sortChildren(wrap, f, isNum) {
|
||||
//sort by attribute
|
||||
function sortChildren(wrap, f, isNum) {
|
||||
var l = wrap.children.length,
|
||||
arr = new Array(l);
|
||||
for(var i=0; i<l; ++i)
|
||||
@ -436,16 +514,8 @@ function sortChildren(wrap, f, isNum) {
|
||||
par.removeChild(wrap);
|
||||
for(var i=0; i<l; ++i) wrap.appendChild(arr[i][1]);
|
||||
par.insertBefore(wrap, ref);
|
||||
}
|
||||
} //sortChildren
|
||||
|
||||
|
||||
</script>
|
||||
<script src="js/html.sortable.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
//sort your coins
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</script>
|
||||
<script src="js/html.sortable.min.js"></script>
|
||||
</html>
|
||||
2
main.js
2
main.js
@ -30,7 +30,7 @@ function createWindow () {
|
||||
y: mainWindowState.y,
|
||||
width: mainWindowState.width,
|
||||
height: mainWindowState.height,
|
||||
//maxWidth: 360,
|
||||
maxWidth: 360,
|
||||
minWidth: 160,
|
||||
minHeight: 150,
|
||||
maximizable: false,
|
||||
|
||||
482
package-lock.json
generated
482
package-lock.json
generated
@ -10,6 +10,12 @@
|
||||
"integrity": "sha512-KQHAZeVsk4UIT9XaR6cn4WpHZzimK6UBD1UomQKfQQFmTlUHaNBzeuov+TM4+kigLO0IJt4I5OOsshcCyA9gSA==",
|
||||
"dev": true
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
|
||||
"integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
|
||||
"dev": true
|
||||
},
|
||||
"acorn": {
|
||||
"version": "4.0.13",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
|
||||
@ -142,6 +148,37 @@
|
||||
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
|
||||
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0="
|
||||
},
|
||||
"asar": {
|
||||
"version": "0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/asar/-/asar-0.13.0.tgz",
|
||||
"integrity": "sha1-3zPdnQG/+EJGTQ2fCVdA1KYq+xQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chromium-pickle-js": "0.2.0",
|
||||
"commander": "2.11.0",
|
||||
"cuint": "0.2.2",
|
||||
"glob": "6.0.4",
|
||||
"minimatch": "3.0.4",
|
||||
"mkdirp": "0.5.0",
|
||||
"mksnapshot": "0.3.1",
|
||||
"tmp": "0.0.28"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
||||
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inflight": "1.0.6",
|
||||
"inherits": "2.0.3",
|
||||
"minimatch": "3.0.4",
|
||||
"once": "1.4.0",
|
||||
"path-is-absolute": "1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
|
||||
@ -1010,6 +1047,12 @@
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
|
||||
"integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=",
|
||||
"dev": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
|
||||
@ -1020,6 +1063,16 @@
|
||||
"tweetnacl": "0.14.5"
|
||||
}
|
||||
},
|
||||
"binary": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
|
||||
"integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffers": "0.1.1",
|
||||
"chainsaw": "0.1.0"
|
||||
}
|
||||
},
|
||||
"binary-extensions": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz",
|
||||
@ -1085,6 +1138,12 @@
|
||||
"resolved": "https://registry.npmjs.org/buffer-equals/-/buffer-equals-1.0.4.tgz",
|
||||
"integrity": "sha1-A1O1T9B/2VZBcGca5vZrnPENJ/U="
|
||||
},
|
||||
"buffers": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
|
||||
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
|
||||
"dev": true
|
||||
},
|
||||
"builtin-modules": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
|
||||
@ -1169,6 +1228,23 @@
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"dev": true
|
||||
},
|
||||
"chainsaw": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
|
||||
"integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"traverse": "0.3.9"
|
||||
},
|
||||
"dependencies": {
|
||||
"traverse": {
|
||||
"version": "0.3.9",
|
||||
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
|
||||
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
@ -1197,6 +1273,12 @@
|
||||
"readdirp": "2.1.0"
|
||||
}
|
||||
},
|
||||
"chromium-pickle-js": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
|
||||
"integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=",
|
||||
"dev": true
|
||||
},
|
||||
"ci-info": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz",
|
||||
@ -1291,6 +1373,12 @@
|
||||
"delayed-stream": "1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
|
||||
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
|
||||
"dev": true
|
||||
},
|
||||
"common-path-prefix": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz",
|
||||
@ -1301,6 +1389,12 @@
|
||||
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
|
||||
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
|
||||
},
|
||||
"compare-version": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz",
|
||||
"integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
@ -1428,6 +1522,12 @@
|
||||
"resolved": "https://registry.npmjs.org/cryptocurrencies/-/cryptocurrencies-1.0.0.tgz",
|
||||
"integrity": "sha1-ejLy8qIqDSU9x0i9F6423HXW4L0="
|
||||
},
|
||||
"cuint": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz",
|
||||
"integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=",
|
||||
"dev": true
|
||||
},
|
||||
"currently-unhandled": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
|
||||
@ -1479,6 +1579,21 @@
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
|
||||
},
|
||||
"decompress-zip": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz",
|
||||
"integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"binary": "0.3.0",
|
||||
"graceful-fs": "4.1.11",
|
||||
"mkpath": "0.1.0",
|
||||
"nopt": "3.0.6",
|
||||
"q": "1.5.0",
|
||||
"readable-stream": "1.1.14",
|
||||
"touch": "0.0.3"
|
||||
}
|
||||
},
|
||||
"deep-assign": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz",
|
||||
@ -1672,6 +1787,110 @@
|
||||
"sumchecker": "1.3.1"
|
||||
}
|
||||
},
|
||||
"electron-osx-sign": {
|
||||
"version": "0.4.7",
|
||||
"resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.7.tgz",
|
||||
"integrity": "sha1-HXVkeoJ0jqzUi+pwYW7IP/rePuU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bluebird": "3.5.0",
|
||||
"compare-version": "0.1.2",
|
||||
"debug": "2.6.8",
|
||||
"isbinaryfile": "3.0.2",
|
||||
"minimist": "1.2.0",
|
||||
"plist": "2.1.0"
|
||||
}
|
||||
},
|
||||
"electron-packager": {
|
||||
"version": "8.7.2",
|
||||
"resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-8.7.2.tgz",
|
||||
"integrity": "sha1-RX078kvJYHwGrUsettqkrMrcIQg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asar": "0.13.0",
|
||||
"debug": "2.6.8",
|
||||
"electron-download": "4.1.0",
|
||||
"electron-osx-sign": "0.4.7",
|
||||
"extract-zip": "1.6.5",
|
||||
"fs-extra": "3.0.1",
|
||||
"get-package-info": "1.0.0",
|
||||
"minimist": "1.2.0",
|
||||
"plist": "2.1.0",
|
||||
"rcedit": "0.9.0",
|
||||
"resolve": "1.4.0",
|
||||
"run-series": "1.1.4",
|
||||
"sanitize-filename": "1.6.1",
|
||||
"semver": "5.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"electron-download": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.0.tgz",
|
||||
"integrity": "sha1-v5MsdG8vh//MCdHdRy8v9rkYeEU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.8",
|
||||
"env-paths": "1.0.0",
|
||||
"fs-extra": "2.1.2",
|
||||
"minimist": "1.2.0",
|
||||
"nugget": "2.0.1",
|
||||
"path-exists": "3.0.0",
|
||||
"rc": "1.2.1",
|
||||
"semver": "5.4.1",
|
||||
"sumchecker": "2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"fs-extra": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz",
|
||||
"integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"jsonfile": "2.4.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
|
||||
"integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"jsonfile": "3.0.1",
|
||||
"universalify": "0.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"jsonfile": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz",
|
||||
"integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"dev": true
|
||||
},
|
||||
"sumchecker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz",
|
||||
"integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "2.6.8"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-settings": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/electron-settings/-/electron-settings-3.1.1.tgz",
|
||||
@ -1746,6 +1965,12 @@
|
||||
"iconv-lite": "0.4.18"
|
||||
}
|
||||
},
|
||||
"env-paths": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz",
|
||||
"integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=",
|
||||
"dev": true
|
||||
},
|
||||
"error-ex": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
|
||||
@ -2323,6 +2548,77 @@
|
||||
"is-property": "1.0.2"
|
||||
}
|
||||
},
|
||||
"get-package-info": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz",
|
||||
"integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bluebird": "3.5.0",
|
||||
"debug": "2.6.8",
|
||||
"lodash.get": "4.4.2",
|
||||
"read-pkg-up": "2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"find-up": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
|
||||
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "2.0.0"
|
||||
}
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
|
||||
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"parse-json": "2.2.0",
|
||||
"pify": "2.3.0",
|
||||
"strip-bom": "3.0.0"
|
||||
}
|
||||
},
|
||||
"path-type": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
|
||||
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pify": "2.3.0"
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
|
||||
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"load-json-file": "2.0.0",
|
||||
"normalize-package-data": "2.4.0",
|
||||
"path-type": "2.0.0"
|
||||
}
|
||||
},
|
||||
"read-pkg-up": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
|
||||
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "2.1.0",
|
||||
"read-pkg": "2.0.0"
|
||||
}
|
||||
},
|
||||
"strip-bom": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
|
||||
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"get-set-props": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/get-set-props/-/get-set-props-0.1.0.tgz",
|
||||
@ -2912,6 +3208,12 @@
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
||||
"dev": true
|
||||
},
|
||||
"isbinaryfile": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz",
|
||||
"integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=",
|
||||
"dev": true
|
||||
},
|
||||
"isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
@ -3145,6 +3447,24 @@
|
||||
"strip-bom": "2.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
|
||||
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-locate": "2.0.0",
|
||||
"path-exists": "3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
||||
@ -3185,6 +3505,12 @@
|
||||
"resolved": "https://registry.npmjs.org/lodash.findindex/-/lodash.findindex-4.6.0.tgz",
|
||||
"integrity": "sha1-oyRd7mH7m24GJLU1ElYku2nBEQY="
|
||||
},
|
||||
"lodash.get": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
|
||||
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.kebabcase": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
|
||||
@ -3366,6 +3692,38 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"mkpath": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz",
|
||||
"integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=",
|
||||
"dev": true
|
||||
},
|
||||
"mksnapshot": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz",
|
||||
"integrity": "sha1-JQHAVldDbXQs6Vik/5LHfkDdN+Y=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"decompress-zip": "0.3.0",
|
||||
"fs-extra": "0.26.7",
|
||||
"request": "2.81.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"fs-extra": {
|
||||
"version": "0.26.7",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
|
||||
"integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"jsonfile": "2.4.0",
|
||||
"klaw": "1.3.1",
|
||||
"path-is-absolute": "1.0.1",
|
||||
"rimraf": "2.6.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
@ -3401,6 +3759,15 @@
|
||||
"resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
|
||||
"integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
|
||||
},
|
||||
"nopt": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"abbrev": "1.1.0"
|
||||
}
|
||||
},
|
||||
"normalize-package-data": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
|
||||
@ -3542,6 +3909,21 @@
|
||||
"os-tmpdir": "1.0.2"
|
||||
}
|
||||
},
|
||||
"p-limit": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
|
||||
"integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
|
||||
"dev": true
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
|
||||
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-limit": "1.1.0"
|
||||
}
|
||||
},
|
||||
"package-hash": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz",
|
||||
@ -3676,6 +4058,17 @@
|
||||
"find-up": "1.1.2"
|
||||
}
|
||||
},
|
||||
"plist": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz",
|
||||
"integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"base64-js": "1.2.0",
|
||||
"xmlbuilder": "8.2.2",
|
||||
"xmldom": "0.1.27"
|
||||
}
|
||||
},
|
||||
"plur": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz",
|
||||
@ -3891,6 +4284,12 @@
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
||||
"dev": true
|
||||
},
|
||||
"q": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
|
||||
"integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
|
||||
@ -3949,6 +4348,12 @@
|
||||
"strip-json-comments": "2.0.1"
|
||||
}
|
||||
},
|
||||
"rcedit": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/rcedit/-/rcedit-0.9.0.tgz",
|
||||
"integrity": "sha1-ORDfVzRTmeKwMl9KUZAH+J5V7xw=",
|
||||
"dev": true
|
||||
},
|
||||
"read-all-stream": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
|
||||
@ -4279,6 +4684,12 @@
|
||||
"once": "1.4.0"
|
||||
}
|
||||
},
|
||||
"run-series": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.4.tgz",
|
||||
"integrity": "sha1-iac93F51ye+KtjIMChYA1qQRebk=",
|
||||
"dev": true
|
||||
},
|
||||
"rx-lite": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
|
||||
@ -4289,6 +4700,15 @@
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
||||
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
|
||||
},
|
||||
"sanitize-filename": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz",
|
||||
"integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"truncate-utf8-bytes": "1.0.2"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.4.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
||||
@ -4644,11 +5064,40 @@
|
||||
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
|
||||
"integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc="
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.28",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz",
|
||||
"integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-tmpdir": "1.0.2"
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
|
||||
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
|
||||
},
|
||||
"touch": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz",
|
||||
"integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nopt": "1.0.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"nopt": {
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
|
||||
"integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"abbrev": "1.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
|
||||
@ -4673,6 +5122,15 @@
|
||||
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
|
||||
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM="
|
||||
},
|
||||
"truncate-utf8-bytes": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
||||
"integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"utf8-byte-length": "1.0.4"
|
||||
}
|
||||
},
|
||||
"tryit": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
|
||||
@ -4742,6 +5200,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
|
||||
"integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
|
||||
"dev": true
|
||||
},
|
||||
"unzip-response": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
|
||||
@ -4778,6 +5242,12 @@
|
||||
"os-homedir": "1.0.2"
|
||||
}
|
||||
},
|
||||
"utf8-byte-length": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
|
||||
"integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=",
|
||||
"dev": true
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
@ -4916,6 +5386,18 @@
|
||||
"os-homedir": "1.0.2"
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "8.2.2",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
|
||||
"integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=",
|
||||
"dev": true
|
||||
},
|
||||
"xmldom": {
|
||||
"version": "0.1.27",
|
||||
"resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz",
|
||||
"integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=",
|
||||
"dev": true
|
||||
},
|
||||
"xo": {
|
||||
"version": "0.16.0",
|
||||
"resolved": "https://registry.npmjs.org/xo/-/xo-0.16.0.tgz",
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
"name": "crypto-price-widget",
|
||||
"productName": "crypto-price-widget",
|
||||
"version": "1.0.0",
|
||||
"description": "A cross-platform app for tracking Crypto prices",
|
||||
"main": "main.js",
|
||||
@ -18,7 +19,8 @@
|
||||
"author": "GitHub",
|
||||
"license": "CC0-1.0",
|
||||
"devDependencies": {
|
||||
"electron": "~1.6.2"
|
||||
"electron": "~1.6.2",
|
||||
"electron-packager": "^8.7.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ava": "^0.15.2",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user