Additional tests and updated hide footprint to match show

This commit is contained in:
Angelos Chalaris
2018-11-10 11:21:31 +02:00
parent 79ec21be2e
commit 761741f149
8 changed files with 4345 additions and 4329 deletions

410
dist/_30s.es5.js vendored
View File

@ -114,65 +114,9 @@
throw new TypeError("Invalid attempt to destructure non-iterable instance"); throw new TypeError("Invalid attempt to destructure non-iterable instance");
} }
var fs = typeof require !== "undefined" && require('fs');
var crypto = typeof require !== "undefined" && require('crypto'); var crypto = typeof require !== "undefined" && require('crypto');
var CSVToArray = function CSVToArray(data) { var fs = typeof require !== "undefined" && require('fs');
var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
var omitFirstRow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return data.slice(omitFirstRow ? data.indexOf('\n') + 1 : 0).split('\n').map(function (v) {
return v.split(delimiter);
});
};
var CSVToJSON = function CSVToJSON(data) {
var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
var titles = data.slice(0, data.indexOf('\n')).split(delimiter);
return data.slice(data.indexOf('\n') + 1).split('\n').map(function (v) {
var values = v.split(delimiter);
return titles.reduce(function (obj, title, index) {
return obj[title] = values[index], obj;
}, {});
});
};
var JSONToFile = function JSONToFile(obj, filename) {
return fs.writeFile("".concat(filename, ".json"), JSON.stringify(obj, null, 2));
};
var JSONtoCSV = function JSONtoCSV(arr, columns) {
var delimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ',';
return [columns.join(delimiter)].concat(_toConsumableArray(arr.map(function (obj) {
return columns.reduce(function (acc, key) {
return "".concat(acc).concat(!acc.length ? '' : delimiter, "\"").concat(!obj[key] ? '' : obj[key], "\"");
}, '');
}))).join('\n');
};
var RGBToHex = function RGBToHex(r, g, b) {
return ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
};
var URLJoin = function URLJoin() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return args.join('/').replace(/[\/]+/g, '/').replace(/^(.+):\//, '$1://').replace(/^file:/, 'file:/').replace(/\/(\?|&|#[^!])/g, '$1').replace(/\?/g, '&').replace('&', '?');
};
var UUIDGeneratorBrowser = function UUIDGeneratorBrowser() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
});
};
var UUIDGeneratorNode = function UUIDGeneratorNode() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
return (c ^ crypto.randomBytes(1)[0] & 15 >> c / 4).toString(16);
});
};
var all = function all(arr) { var all = function all(arr) {
var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean; var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Boolean;
@ -214,8 +158,8 @@
var ary = function ary(fn, n) { var ary = function ary(fn, n) {
return function () { return function () {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key2] = arguments[_key2]; args[_key] = arguments[_key];
} }
return fn.apply(void 0, _toConsumableArray(args.slice(0, n))); return fn.apply(void 0, _toConsumableArray(args.slice(0, n)));
@ -228,8 +172,8 @@
var attempt = function attempt(fn) { var attempt = function attempt(fn) {
try { try {
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key3 - 1] = arguments[_key3]; args[_key2 - 1] = arguments[_key2];
} }
return fn.apply(void 0, args); return fn.apply(void 0, args);
@ -239,8 +183,8 @@
}; };
var average = function average() { var average = function average() {
for (var _len4 = arguments.length, nums = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { for (var _len3 = arguments.length, nums = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
nums[_key4] = arguments[_key4]; nums[_key3] = arguments[_key3];
} }
return nums.reduce(function (acc, val) { return nums.reduce(function (acc, val) {
@ -269,13 +213,13 @@
}; };
var bind = function bind(fn, context) { var bind = function bind(fn, context) {
for (var _len5 = arguments.length, boundArgs = new Array(_len5 > 2 ? _len5 - 2 : 0), _key5 = 2; _key5 < _len5; _key5++) { for (var _len4 = arguments.length, boundArgs = new Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {
boundArgs[_key5 - 2] = arguments[_key5]; boundArgs[_key4 - 2] = arguments[_key4];
} }
return function () { return function () {
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
args[_key6] = arguments[_key6]; args[_key5] = arguments[_key5];
} }
return fn.apply(context, boundArgs.concat(args)); return fn.apply(context, boundArgs.concat(args));
@ -283,8 +227,8 @@
}; };
var bindAll = function bindAll(obj) { var bindAll = function bindAll(obj) {
for (var _len7 = arguments.length, fns = new Array(_len7 > 1 ? _len7 - 1 : 0), _key7 = 1; _key7 < _len7; _key7++) { for (var _len6 = arguments.length, fns = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
fns[_key7 - 1] = arguments[_key7]; fns[_key6 - 1] = arguments[_key6];
} }
return fns.forEach(function (fn) { return fns.forEach(function (fn) {
@ -295,13 +239,13 @@
}; };
var bindKey = function bindKey(context, fn) { var bindKey = function bindKey(context, fn) {
for (var _len8 = arguments.length, boundArgs = new Array(_len8 > 2 ? _len8 - 2 : 0), _key8 = 2; _key8 < _len8; _key8++) { for (var _len7 = arguments.length, boundArgs = new Array(_len7 > 2 ? _len7 - 2 : 0), _key7 = 2; _key7 < _len7; _key7++) {
boundArgs[_key8 - 2] = arguments[_key8]; boundArgs[_key7 - 2] = arguments[_key7];
} }
return function () { return function () {
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
args[_key9] = arguments[_key9]; args[_key8] = arguments[_key8];
} }
return context[fn].apply(context, boundArgs.concat(args)); return context[fn].apply(context, boundArgs.concat(args));
@ -336,8 +280,8 @@
}; };
var call = function call(key) { var call = function call(key) {
for (var _len10 = arguments.length, args = new Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) { for (var _len9 = arguments.length, args = new Array(_len9 > 1 ? _len9 - 1 : 0), _key9 = 1; _key9 < _len9; _key9++) {
args[_key10 - 1] = arguments[_key10]; args[_key9 - 1] = arguments[_key9];
} }
return function (context) { return function (context) {
@ -391,8 +335,8 @@
}; };
var coalesce = function coalesce() { var coalesce = function coalesce() {
for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
args[_key11] = arguments[_key11]; args[_key10] = arguments[_key10];
} }
return args.find(function (_) { return args.find(function (_) {
@ -402,8 +346,8 @@
var coalesceFactory = function coalesceFactory(valid) { var coalesceFactory = function coalesceFactory(valid) {
return function () { return function () {
for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) { for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
args[_key12] = arguments[_key12]; args[_key11] = arguments[_key11];
} }
return args.find(valid); return args.find(valid);
@ -412,8 +356,8 @@
var collectInto = function collectInto(fn) { var collectInto = function collectInto(fn) {
return function () { return function () {
for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) { for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
args[_key13] = arguments[_key13]; args[_key12] = arguments[_key12];
} }
return fn(args); return fn(args);
@ -421,8 +365,8 @@
}; };
var colorize = function colorize() { var colorize = function colorize() {
for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) { for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {
args[_key14] = arguments[_key14]; args[_key13] = arguments[_key13];
} }
return { return {
@ -450,8 +394,8 @@
}; };
var compose = function compose() { var compose = function compose() {
for (var _len15 = arguments.length, fns = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) { for (var _len14 = arguments.length, fns = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {
fns[_key15] = arguments[_key15]; fns[_key14] = arguments[_key14];
} }
return fns.reduce(function (f, g) { return fns.reduce(function (f, g) {
@ -462,8 +406,8 @@
}; };
var composeRight = function composeRight() { var composeRight = function composeRight() {
for (var _len16 = arguments.length, fns = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) { for (var _len15 = arguments.length, fns = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {
fns[_key16] = arguments[_key16]; fns[_key15] = arguments[_key15];
} }
return fns.reduce(function (f, g) { return fns.reduce(function (f, g) {
@ -475,8 +419,8 @@
var converge = function converge(converger, fns) { var converge = function converge(converger, fns) {
return function () { return function () {
for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) { for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {
args[_key17] = arguments[_key17]; args[_key16] = arguments[_key16];
} }
return converger.apply(void 0, _toConsumableArray(fns.map(function (fn) { return converger.apply(void 0, _toConsumableArray(fns.map(function (fn) {
@ -512,12 +456,6 @@
}, {}); }, {});
}; };
var countOccurrences = function countOccurrences(arr, val) {
return arr.reduce(function (a, v) {
return v === val ? a + 1 : a;
}, 0);
};
var counter = function counter(selector, start, end) { var counter = function counter(selector, start, end) {
var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
var duration = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2000; var duration = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2000;
@ -534,6 +472,12 @@
return timer; return timer;
}; };
var countOccurrences = function countOccurrences(arr, val) {
return arr.reduce(function (a, v) {
return v === val ? a + 1 : a;
}, 0);
};
var createElement = function createElement(str) { var createElement = function createElement(str) {
var el = document.createElement('div'); var el = document.createElement('div');
el.innerHTML = str; el.innerHTML = str;
@ -561,6 +505,25 @@
}; };
}; };
var CSVToArray = function CSVToArray(data) {
var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
var omitFirstRow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
return data.slice(omitFirstRow ? data.indexOf('\n') + 1 : 0).split('\n').map(function (v) {
return v.split(delimiter);
});
};
var CSVToJSON = function CSVToJSON(data) {
var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';
var titles = data.slice(0, data.indexOf('\n')).split(delimiter);
return data.slice(data.indexOf('\n') + 1).split('\n').map(function (v) {
var values = v.split(delimiter);
return titles.reduce(function (obj, title, index) {
return obj[title] = values[index], obj;
}, {});
});
};
var currentURL = function currentURL() { var currentURL = function currentURL() {
return window.location.href; return window.location.href;
}; };
@ -568,8 +531,8 @@
var curry = function curry(fn) { var curry = function curry(fn) {
var arity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fn.length; var arity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : fn.length;
for (var _len18 = arguments.length, args = new Array(_len18 > 2 ? _len18 - 2 : 0), _key18 = 2; _key18 < _len18; _key18++) { for (var _len17 = arguments.length, args = new Array(_len17 > 2 ? _len17 - 2 : 0), _key17 = 2; _key17 < _len17; _key17++) {
args[_key18 - 2] = arguments[_key18]; args[_key17 - 2] = arguments[_key17];
} }
return arity <= args.length ? fn.apply(void 0, args) : curry.bind.apply(curry, [null, fn, arity].concat(args)); return arity <= args.length ? fn.apply(void 0, args) : curry.bind.apply(curry, [null, fn, arity].concat(args));
@ -585,8 +548,8 @@
return function () { return function () {
var _this = this; var _this = this;
for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) { for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {
args[_key19] = arguments[_key19]; args[_key18] = arguments[_key18];
} }
clearTimeout(timeoutId); clearTimeout(timeoutId);
@ -628,16 +591,16 @@
}; };
var defaults = function defaults(obj) { var defaults = function defaults(obj) {
for (var _len20 = arguments.length, defs = new Array(_len20 > 1 ? _len20 - 1 : 0), _key20 = 1; _key20 < _len20; _key20++) { for (var _len19 = arguments.length, defs = new Array(_len19 > 1 ? _len19 - 1 : 0), _key19 = 1; _key19 < _len19; _key19++) {
defs[_key20 - 1] = arguments[_key20]; defs[_key19 - 1] = arguments[_key19];
} }
return Object.assign.apply(Object, [{}, obj].concat(_toConsumableArray(defs.reverse()), [obj])); return Object.assign.apply(Object, [{}, obj].concat(_toConsumableArray(defs.reverse()), [obj]));
}; };
var defer = function defer(fn) { var defer = function defer(fn) {
for (var _len21 = arguments.length, args = new Array(_len21 > 1 ? _len21 - 1 : 0), _key21 = 1; _key21 < _len21; _key21++) { for (var _len20 = arguments.length, args = new Array(_len20 > 1 ? _len20 - 1 : 0), _key20 = 1; _key20 < _len20; _key20++) {
args[_key21 - 1] = arguments[_key21]; args[_key20 - 1] = arguments[_key20];
} }
return setTimeout.apply(void 0, [fn, 1].concat(args)); return setTimeout.apply(void 0, [fn, 1].concat(args));
@ -648,8 +611,8 @@
}; };
var delay = function delay(fn, wait) { var delay = function delay(fn, wait) {
for (var _len22 = arguments.length, args = new Array(_len22 > 2 ? _len22 - 2 : 0), _key22 = 2; _key22 < _len22; _key22++) { for (var _len21 = arguments.length, args = new Array(_len21 > 2 ? _len21 - 2 : 0), _key21 = 2; _key21 < _len21; _key21++) {
args[_key22 - 2] = arguments[_key22]; args[_key21 - 2] = arguments[_key21];
} }
return setTimeout.apply(void 0, [fn, wait].concat(args)); return setTimeout.apply(void 0, [fn, wait].concat(args));
@ -897,8 +860,8 @@
var flip = function flip(fn) { var flip = function flip(fn) {
return function (first) { return function (first) {
for (var _len23 = arguments.length, rest = new Array(_len23 > 1 ? _len23 - 1 : 0), _key23 = 1; _key23 < _len23; _key23++) { for (var _len22 = arguments.length, rest = new Array(_len22 > 1 ? _len22 - 1 : 0), _key22 = 1; _key22 < _len22; _key22++) {
rest[_key23 - 1] = arguments[_key23]; rest[_key22 - 1] = arguments[_key22];
} }
return fn.apply(void 0, rest.concat([first])); return fn.apply(void 0, rest.concat([first]));
@ -909,18 +872,6 @@
return arr.slice(0).reverse().forEach(callback); return arr.slice(0).reverse().forEach(callback);
}; };
var forOwn = function forOwn(obj, fn) {
return Object.keys(obj).forEach(function (key) {
return fn(obj[key], key, obj);
});
};
var forOwnRight = function forOwnRight(obj, fn) {
return Object.keys(obj).reverse().forEach(function (key) {
return fn(obj[key], key, obj);
});
};
var formatDuration = function formatDuration(ms) { var formatDuration = function formatDuration(ms) {
if (ms < 0) ms = -ms; if (ms < 0) ms = -ms;
var time = { var time = {
@ -941,6 +892,18 @@
}).join(', '); }).join(', ');
}; };
var forOwn = function forOwn(obj, fn) {
return Object.keys(obj).forEach(function (key) {
return fn(obj[key], key, obj);
});
};
var forOwnRight = function forOwnRight(obj, fn) {
return Object.keys(obj).reverse().forEach(function (key) {
return fn(obj[key], key, obj);
});
};
var fromCamelCase = function fromCamelCase(str) { var fromCamelCase = function fromCamelCase(str) {
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_'; var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_';
return str.replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2').replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2').toLowerCase(); return str.replace(/([a-z\d])([A-Z])/g, '$1' + separator + '$2').replace(/([A-Z]+)([A-Z][a-z\d]+)/g, '$1' + separator + '$2').toLowerCase();
@ -962,8 +925,8 @@
return !y ? x : gcd(y, x % y); return !y ? x : gcd(y, x % y);
}; };
for (var _len24 = arguments.length, arr = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) { for (var _len23 = arguments.length, arr = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {
arr[_key24] = arguments[_key24]; arr[_key23] = arguments[_key23];
} }
return arr.concat().reduce(function (a, b) { return arr.concat().reduce(function (a, b) {
@ -982,8 +945,8 @@
}; };
var get = function get(from) { var get = function get(from) {
for (var _len25 = arguments.length, selectors = new Array(_len25 > 1 ? _len25 - 1 : 0), _key25 = 1; _key25 < _len25; _key25++) { for (var _len24 = arguments.length, selectors = new Array(_len24 > 1 ? _len24 - 1 : 0), _key24 = 1; _key24 < _len24; _key24++) {
selectors[_key25 - 1] = arguments[_key25]; selectors[_key24 - 1] = arguments[_key24];
} }
return selectors.concat().map(function (s) { return selectors.concat().map(function (s) {
@ -1057,8 +1020,8 @@
}; };
var hasFlags = function hasFlags() { var hasFlags = function hasFlags() {
for (var _len26 = arguments.length, flags = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) { for (var _len25 = arguments.length, flags = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {
flags[_key26] = arguments[_key26]; flags[_key25] = arguments[_key25];
} }
return flags.every(function (flag) { return flags.every(function (flag) {
@ -1101,8 +1064,12 @@
return 'rgb' + (alpha ? 'a' : '') + '(' + (h >>> (alpha ? 24 : 16)) + ', ' + ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) + ', ' + ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) + (alpha ? ", ".concat(h & 0x000000ff) : '') + ')'; return 'rgb' + (alpha ? 'a' : '') + '(' + (h >>> (alpha ? 24 : 16)) + ', ' + ((h & (alpha ? 0x00ff0000 : 0x00ff00)) >>> (alpha ? 16 : 8)) + ', ' + ((h & (alpha ? 0x0000ff00 : 0x0000ff)) >>> (alpha ? 8 : 0)) + (alpha ? ", ".concat(h & 0x000000ff) : '') + ')';
}; };
var hide = function hide(els) { var hide = function hide() {
return els.forEach(function (e) { for (var _len26 = arguments.length, el = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {
el[_key26] = arguments[_key26];
}
return el.concat().forEach(function (e) {
return e.style.display = 'none'; return e.style.display = 'none';
}); });
}; };
@ -1155,18 +1122,6 @@
return 1000 * iterations / (performance.now() - before); return 1000 * iterations / (performance.now() - before);
}; };
var inRange = function inRange(n, start) {
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (end && start > end) {
var _ref12 = [start, end];
end = _ref12[0];
start = _ref12[1];
}
return end == null ? n >= 0 && n < start : n >= start && n < end;
};
var indentString = function indentString(str, count) { var indentString = function indentString(str, count) {
var indent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' '; var indent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' ';
return str.replace(/^/gm, indent.repeat(count)); return str.replace(/^/gm, indent.repeat(count));
@ -1230,6 +1185,18 @@
}); });
}; };
var inRange = function inRange(n, start) {
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
if (end && start > end) {
var _ref12 = [start, end];
end = _ref12[0];
start = _ref12[1];
}
return end == null ? n >= 0 && n < start : n >= start && n < end;
};
var insertAfter = function insertAfter(el, htmlString) { var insertAfter = function insertAfter(el, htmlString) {
return el.insertAdjacentHTML('afterend', htmlString); return el.insertAdjacentHTML('afterend', htmlString);
}; };
@ -1459,6 +1426,19 @@
}, ''); }, '');
}; };
var JSONtoCSV = function JSONtoCSV(arr, columns) {
var delimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ',';
return [columns.join(delimiter)].concat(_toConsumableArray(arr.map(function (obj) {
return columns.reduce(function (acc, key) {
return "".concat(acc).concat(!acc.length ? '' : delimiter, "\"").concat(!obj[key] ? '' : obj[key], "\"");
}, '');
}))).join('\n');
};
var JSONToFile = function JSONToFile(obj, filename) {
return fs.writeFile("".concat(filename, ".json"), JSON.stringify(obj, null, 2));
};
var last = function last(arr) { var last = function last(arr) {
return arr[arr.length - 1]; return arr[arr.length - 1];
}; };
@ -1760,6 +1740,20 @@
if (opts.target) return delegatorFn; if (opts.target) return delegatorFn;
}; };
var once = function once(fn) {
var called = false;
return function () {
if (called) return;
called = true;
for (var _len34 = arguments.length, args = new Array(_len34), _key34 = 0; _key34 < _len34; _key34++) {
args[_key34] = arguments[_key34];
}
return fn.apply(this, args);
};
};
var onUserInputChange = function onUserInputChange(callback) { var onUserInputChange = function onUserInputChange(callback) {
var type = 'mouse', var type = 'mouse',
lastTime = 0; lastTime = 0;
@ -1776,20 +1770,6 @@
}); });
}; };
var once = function once(fn) {
var called = false;
return function () {
if (called) return;
called = true;
for (var _len34 = arguments.length, args = new Array(_len34), _key34 = 0; _key34 < _len34; _key34++) {
args[_key34] = arguments[_key34];
}
return fn.apply(this, args);
};
};
var orderBy = function orderBy(arr, props, orders) { var orderBy = function orderBy(arr, props, orders) {
return _toConsumableArray(arr).sort(function (a, b) { return _toConsumableArray(arr).sort(function (a, b) {
return props.reduce(function (acc, prop, i) { return props.reduce(function (acc, prop, i) {
@ -2157,6 +2137,15 @@
return asLink ? window.location.href = url : window.location.replace(url); return asLink ? window.location.href = url : window.location.replace(url);
}; };
var reducedFilter = function reducedFilter(data, keys, fn) {
return data.filter(fn).map(function (el) {
return keys.reduce(function (acc, key) {
acc[key] = el[key];
return acc;
}, {});
});
};
var reduceSuccessive = function reduceSuccessive(arr, fn, acc) { var reduceSuccessive = function reduceSuccessive(arr, fn, acc) {
return arr.reduce(function (res, val, i, arr) { return arr.reduce(function (res, val, i, arr) {
return res.push(fn(res.slice(-1)[0], val, i, arr)), res; return res.push(fn(res.slice(-1)[0], val, i, arr)), res;
@ -2172,15 +2161,6 @@
}); });
}; };
var reducedFilter = function reducedFilter(data, keys, fn) {
return data.filter(fn).map(function (el) {
return keys.reduce(function (acc, key) {
acc[key] = el[key];
return acc;
}, {});
});
};
var reject = function reject(pred, array) { var reject = function reject(pred, array) {
return array.filter(function () { return array.filter(function () {
return !pred.apply(void 0, arguments); return !pred.apply(void 0, arguments);
@ -2208,6 +2188,10 @@
return _toConsumableArray(str).reverse().join(''); return _toConsumableArray(str).reverse().join('');
}; };
var RGBToHex = function RGBToHex(r, g, b) {
return ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
};
var round = function round(n) { var round = function round(n) {
var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
return Number("".concat(Math.round("".concat(n, "e").concat(decimals)), "e-").concat(decimals)); return Number("".concat(Math.round("".concat(n, "e").concat(decimals)), "e-").concat(decimals));
@ -2569,13 +2553,6 @@
}; };
}; };
var timeTaken = function timeTaken(callback) {
console.time('timeTaken');
var r = callback();
console.timeEnd('timeTaken');
return r;
};
var times = function times(n, fn) { var times = function times(n, fn) {
var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined; var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
var i = 0; var i = 0;
@ -2583,6 +2560,13 @@
while (fn.call(context, i) !== false && ++i < n) {} while (fn.call(context, i) !== false && ++i < n) {}
}; };
var timeTaken = function timeTaken(callback) {
console.time('timeTaken');
var r = callback();
console.timeEnd('timeTaken');
return r;
};
var toCamelCase = function toCamelCase(str) { var toCamelCase = function toCamelCase(str) {
var s = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) { var s = str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g).map(function (x) {
return x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase(); return x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase();
@ -2602,6 +2586,10 @@
return num.toLocaleString('en-US'); return num.toLocaleString('en-US');
}; };
var toggleClass = function toggleClass(el, className) {
return el.classList.toggle(className);
};
var toHash = function toHash(object, key) { var toHash = function toHash(object, key) {
return Array.prototype.reduce.call(object, function (acc, data, index) { return Array.prototype.reduce.call(object, function (acc, data, index) {
return acc[!key ? index : data[key]] = data, acc; return acc[!key ? index : data[key]] = data, acc;
@ -2614,6 +2602,14 @@
}).join('-'); }).join('-');
}; };
var tomorrow = function tomorrow() {
var long = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var t = new Date();
t.setDate(t.getDate() + 1);
var ret = "".concat(t.getFullYear(), "-").concat(String(t.getMonth() + 1).padStart(2, '0'), "-").concat(String(t.getDate()).padStart(2, '0'));
return !long ? ret : "".concat(ret, "T00:00:00");
};
var toOrdinalSuffix = function toOrdinalSuffix(num) { var toOrdinalSuffix = function toOrdinalSuffix(num) {
var int = parseInt(num), var int = parseInt(num),
digits = [int % 10, int % 100], digits = [int % 10, int % 100],
@ -2639,18 +2635,6 @@
}).join(' '); }).join(' ');
}; };
var toggleClass = function toggleClass(el, className) {
return el.classList.toggle(className);
};
var tomorrow = function tomorrow() {
var long = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var t = new Date();
t.setDate(t.getDate() + 1);
var ret = "".concat(t.getFullYear(), "-").concat(String(t.getMonth() + 1).padStart(2, '0'), "-").concat(String(t.getDate()).padStart(2, '0'));
return !long ? ret : "".concat(ret, "T00:00:00");
};
var transform = function transform(obj, fn, acc) { var transform = function transform(obj, fn, acc) {
return Object.keys(obj).reduce(function (a, k) { return Object.keys(obj).reduce(function (a, k) {
return fn(a, obj[k], k, obj); return fn(a, obj[k], k, obj);
@ -2818,6 +2802,26 @@
}); });
}; };
var URLJoin = function URLJoin() {
for (var _len52 = arguments.length, args = new Array(_len52), _key52 = 0; _key52 < _len52; _key52++) {
args[_key52] = arguments[_key52];
}
return args.join('/').replace(/[\/]+/g, '/').replace(/^(.+):\//, '$1://').replace(/^file:/, 'file:/').replace(/\/(\?|&|#[^!])/g, '$1').replace(/\?/g, '&').replace('&', '?');
};
var UUIDGeneratorBrowser = function UUIDGeneratorBrowser() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
});
};
var UUIDGeneratorNode = function UUIDGeneratorNode() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
return (c ^ crypto.randomBytes(1)[0] & 15 >> c / 4).toString(16);
});
};
var validateNumber = function validateNumber(n) { var validateNumber = function validateNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n; return !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
}; };
@ -2829,8 +2833,8 @@
}; };
var without = function without(arr) { var without = function without(arr) {
for (var _len52 = arguments.length, args = new Array(_len52 > 1 ? _len52 - 1 : 0), _key52 = 1; _key52 < _len52; _key52++) { for (var _len53 = arguments.length, args = new Array(_len53 > 1 ? _len53 - 1 : 0), _key53 = 1; _key53 < _len53; _key53++) {
args[_key52 - 1] = arguments[_key52]; args[_key53 - 1] = arguments[_key53];
} }
return arr.filter(function (v) { return arr.filter(function (v) {
@ -2857,8 +2861,8 @@
}; };
var zip = function zip() { var zip = function zip() {
for (var _len53 = arguments.length, arrays = new Array(_len53), _key53 = 0; _key53 < _len53; _key53++) { for (var _len54 = arguments.length, arrays = new Array(_len54), _key54 = 0; _key54 < _len54; _key54++) {
arrays[_key53] = arguments[_key53]; arrays[_key54] = arguments[_key54];
} }
var maxLength = Math.max.apply(Math, _toConsumableArray(arrays.map(function (x) { var maxLength = Math.max.apply(Math, _toConsumableArray(arrays.map(function (x) {
@ -2882,8 +2886,8 @@
}; };
var zipWith = function zipWith() { var zipWith = function zipWith() {
for (var _len54 = arguments.length, array = new Array(_len54), _key54 = 0; _key54 < _len54; _key54++) { for (var _len55 = arguments.length, array = new Array(_len55), _key55 = 0; _key55 < _len55; _key55++) {
array[_key54] = arguments[_key54]; array[_key55] = arguments[_key55];
} }
var fn = typeof array[array.length - 1] === 'function' ? array.pop() : undefined; var fn = typeof array[array.length - 1] === 'function' ? array.pop() : undefined;
@ -2901,14 +2905,6 @@
}; };
module.exports = { module.exports = {
CSVToArray: CSVToArray,
CSVToJSON: CSVToJSON,
JSONToFile: JSONToFile,
JSONtoCSV: JSONtoCSV,
RGBToHex: RGBToHex,
URLJoin: URLJoin,
UUIDGeneratorBrowser: UUIDGeneratorBrowser,
UUIDGeneratorNode: UUIDGeneratorNode,
all: all, all: all,
allEqual: allEqual, allEqual: allEqual,
any: any, any: any,
@ -2947,10 +2943,12 @@
converge: converge, converge: converge,
copyToClipboard: copyToClipboard, copyToClipboard: copyToClipboard,
countBy: countBy, countBy: countBy,
countOccurrences: countOccurrences,
counter: counter, counter: counter,
countOccurrences: countOccurrences,
createElement: createElement, createElement: createElement,
createEventHub: createEventHub, createEventHub: createEventHub,
CSVToArray: CSVToArray,
CSVToJSON: CSVToJSON,
currentURL: currentURL, currentURL: currentURL,
curry: curry, curry: curry,
dayOfYear: dayOfYear, dayOfYear: dayOfYear,
@ -2994,9 +2992,9 @@
flattenObject: flattenObject, flattenObject: flattenObject,
flip: flip, flip: flip,
forEachRight: forEachRight, forEachRight: forEachRight,
formatDuration: formatDuration,
forOwn: forOwn, forOwn: forOwn,
forOwnRight: forOwnRight, forOwnRight: forOwnRight,
formatDuration: formatDuration,
fromCamelCase: fromCamelCase, fromCamelCase: fromCamelCase,
functionName: functionName, functionName: functionName,
functions: functions, functions: functions,
@ -3024,7 +3022,6 @@
httpPost: httpPost, httpPost: httpPost,
httpsRedirect: httpsRedirect, httpsRedirect: httpsRedirect,
hz: hz, hz: hz,
inRange: inRange,
indentString: indentString, indentString: indentString,
indexOfAll: indexOfAll, indexOfAll: indexOfAll,
initial: initial, initial: initial,
@ -3033,6 +3030,7 @@
initializeArrayWithRangeRight: initializeArrayWithRangeRight, initializeArrayWithRangeRight: initializeArrayWithRangeRight,
initializeArrayWithValues: initializeArrayWithValues, initializeArrayWithValues: initializeArrayWithValues,
initializeNDArray: initializeNDArray, initializeNDArray: initializeNDArray,
inRange: inRange,
insertAfter: insertAfter, insertAfter: insertAfter,
insertBefore: insertBefore, insertBefore: insertBefore,
intersection: intersection, intersection: intersection,
@ -3075,6 +3073,8 @@
isValidJSON: isValidJSON, isValidJSON: isValidJSON,
isWritableStream: isWritableStream, isWritableStream: isWritableStream,
join: join, join: join,
JSONtoCSV: JSONtoCSV,
JSONToFile: JSONToFile,
last: last, last: last,
lcm: lcm, lcm: lcm,
longestItem: longestItem, longestItem: longestItem,
@ -3111,8 +3111,8 @@
omit: omit, omit: omit,
omitBy: omitBy, omitBy: omitBy,
on: on, on: on,
onUserInputChange: onUserInputChange,
once: once, once: once,
onUserInputChange: onUserInputChange,
orderBy: orderBy, orderBy: orderBy,
over: over, over: over,
overArgs: overArgs, overArgs: overArgs,
@ -3147,14 +3147,15 @@
rearg: rearg, rearg: rearg,
recordAnimationFrames: recordAnimationFrames, recordAnimationFrames: recordAnimationFrames,
redirect: redirect, redirect: redirect,
reducedFilter: reducedFilter,
reduceSuccessive: reduceSuccessive, reduceSuccessive: reduceSuccessive,
reduceWhich: reduceWhich, reduceWhich: reduceWhich,
reducedFilter: reducedFilter,
reject: reject, reject: reject,
remove: remove, remove: remove,
removeNonASCII: removeNonASCII, removeNonASCII: removeNonASCII,
renameKeys: renameKeys, renameKeys: renameKeys,
reverseString: reverseString, reverseString: reverseString,
RGBToHex: RGBToHex,
round: round, round: round,
runAsync: runAsync, runAsync: runAsync,
runPromisesInSeries: runPromisesInSeries, runPromisesInSeries: runPromisesInSeries,
@ -3195,19 +3196,19 @@
takeRightWhile: takeRightWhile, takeRightWhile: takeRightWhile,
takeWhile: takeWhile, takeWhile: takeWhile,
throttle: throttle, throttle: throttle,
timeTaken: timeTaken,
times: times, times: times,
timeTaken: timeTaken,
toCamelCase: toCamelCase, toCamelCase: toCamelCase,
toCurrency: toCurrency, toCurrency: toCurrency,
toDecimalMark: toDecimalMark, toDecimalMark: toDecimalMark,
toggleClass: toggleClass,
toHash: toHash, toHash: toHash,
toKebabCase: toKebabCase, toKebabCase: toKebabCase,
tomorrow: tomorrow,
toOrdinalSuffix: toOrdinalSuffix, toOrdinalSuffix: toOrdinalSuffix,
toSafeInteger: toSafeInteger, toSafeInteger: toSafeInteger,
toSnakeCase: toSnakeCase, toSnakeCase: toSnakeCase,
toTitleCase: toTitleCase, toTitleCase: toTitleCase,
toggleClass: toggleClass,
tomorrow: tomorrow,
transform: transform, transform: transform,
triggerEvent: triggerEvent, triggerEvent: triggerEvent,
truncateString: truncateString, truncateString: truncateString,
@ -3227,6 +3228,9 @@
untildify: untildify, untildify: untildify,
unzip: unzip, unzip: unzip,
unzipWith: unzipWith, unzipWith: unzipWith,
URLJoin: URLJoin,
UUIDGeneratorBrowser: UUIDGeneratorBrowser,
UUIDGeneratorNode: UUIDGeneratorNode,
validateNumber: validateNumber, validateNumber: validateNumber,
when: when, when: when,
without: without, without: without,

File diff suppressed because one or more lines are too long

790
dist/_30s.esm.js vendored

File diff suppressed because it is too large Load Diff

170
dist/_30s.js vendored
View File

@ -4,56 +4,9 @@
(factory()); (factory());
}(this, (function () { 'use strict'; }(this, (function () { 'use strict';
const fs = typeof require !== "undefined" && require('fs');
const crypto = typeof require !== "undefined" && require('crypto'); const crypto = typeof require !== "undefined" && require('crypto');
const fs = typeof require !== "undefined" && require('fs');
const CSVToArray = (data, delimiter = ',', omitFirstRow = false) =>
data
.slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
.split('\n')
.map(v => v.split(delimiter));
const CSVToJSON = (data, delimiter = ',') => {
const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
return data
.slice(data.indexOf('\n') + 1)
.split('\n')
.map(v => {
const values = v.split(delimiter);
return titles.reduce((obj, title, index) => ((obj[title] = values[index]), obj), {});
});
};
const JSONToFile = (obj, filename) =>
fs.writeFile(`${filename}.json`, JSON.stringify(obj, null, 2));
const JSONtoCSV = (arr, columns, delimiter = ',') =>
[
columns.join(delimiter),
...arr.map(obj =>
columns.reduce(
(acc, key) => `${acc}${!acc.length ? '' : delimiter}"${!obj[key] ? '' : obj[key]}"`,
''
)
)
].join('\n');
const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0');
const URLJoin = (...args) =>
args
.join('/')
.replace(/[\/]+/g, '/')
.replace(/^(.+):\//, '$1://')
.replace(/^file:/, 'file:/')
.replace(/\/(\?|&|#[^!])/g, '$1')
.replace(/\?/g, '&')
.replace('&', '?');
const UUIDGeneratorBrowser = () =>
([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
);
const UUIDGeneratorNode = () =>
([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ (crypto.randomBytes(1)[0] & (15 >> (c / 4)))).toString(16)
);
const all = (arr, fn = Boolean) => arr.every(fn); const all = (arr, fn = Boolean) => arr.every(fn);
@ -172,7 +125,6 @@
bgGreen: `\x1b[42m${args.join(' ')}\x1b[0m`, bgGreen: `\x1b[42m${args.join(' ')}\x1b[0m`,
bgYellow: `\x1b[43m${args.join(' ')}\x1b[0m`, bgYellow: `\x1b[43m${args.join(' ')}\x1b[0m`,
bgBlue: `\x1b[44m${args.join(' ')}\x1b[0m`, bgBlue: `\x1b[44m${args.join(' ')}\x1b[0m`,
const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0);
bgMagenta: `\x1b[45m${args.join(' ')}\x1b[0m`, bgMagenta: `\x1b[45m${args.join(' ')}\x1b[0m`,
bgCyan: `\x1b[46m${args.join(' ')}\x1b[0m`, bgCyan: `\x1b[46m${args.join(' ')}\x1b[0m`,
bgWhite: `\x1b[47m${args.join(' ')}\x1b[0m` bgWhite: `\x1b[47m${args.join(' ')}\x1b[0m`
@ -184,6 +136,7 @@
const composeRight = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args))); const composeRight = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
const converge = (converger, fns) => (...args) => converger(...fns.map(fn => fn.apply(null, args)));
const copyToClipboard = str => { const copyToClipboard = str => {
const el = document.createElement('textarea'); const el = document.createElement('textarea');
@ -203,6 +156,21 @@
} }
}; };
const countBy = (arr, fn) =>
arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce((acc, val) => {
acc[val] = (acc[val] || 0) + 1;
return acc;
}, {});
const counter = (selector, start, end, step = 1, duration = 2000) => {
let current = start,
_step = (end - start) * step < 0 ? -step : step,
timer = setInterval(() => {
current += _step;
document.querySelector(selector).innerHTML = current;
if (current >= end) document.querySelector(selector).innerHTML = end;
if (current >= end) clearInterval(timer);
}, Math.abs(Math.floor(duration / (end - start))));
return timer; return timer;
}; };
@ -364,11 +332,6 @@
if (a === b) return true; if (a === b) return true;
if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime(); if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b; if (!a || !b || (typeof a !== 'object' && typeof b !== 'object')) return a === b;
const forOwn = (obj, fn) => Object.keys(obj).forEach(key => fn(obj[key], key, obj));
const forOwnRight = (obj, fn) =>
Object.keys(obj)
.reverse()
.forEach(key => fn(obj[key], key, obj));
if (a === null || a === undefined || b === null || b === undefined) return false; if (a === null || a === undefined || b === null || b === undefined) return false;
if (a.prototype !== b.prototype) return false; if (a.prototype !== b.prototype) return false;
let keys = Object.keys(a); let keys = Object.keys(a);
@ -383,6 +346,11 @@
({ ({
'&': '&amp;', '&': '&amp;',
'<': '&lt;', '<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;'
}[tag] || tag)
);
const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@ -488,7 +456,7 @@
const gcd = (...arr) => { const gcd = (...arr) => {
const _gcd = (x, y) => (!y ? x : gcd(y, x % y)); const _gcd = (x, y) => (!y ? x : gcd(y, x % y));
return [...arr].reduce((a, b) => _gcd(a, b)); return [...arr].reduce((a, b) => _gcd(a, b));
const hide = els => els.forEach(e => (e.style.display = 'none')); };
const geometricProgression = (end, start = 1, step = 2) => const geometricProgression = (end, start = 1, step = 2) =>
Array.from({ length: Math.floor(Math.log(end / start) / Math.log(step)) + 1 }).map( Array.from({ length: Math.floor(Math.log(end / start) / Math.log(step)) + 1 }).map(
@ -512,10 +480,6 @@
const getImages = (el, includeDuplicates = false) => { const getImages = (el, includeDuplicates = false) => {
const images = [...el.getElementsByTagName('img')].map(img => img.getAttribute('src')); const images = [...el.getElementsByTagName('img')].map(img => img.getAttribute('src'));
return includeDuplicates ? images : [...new Set(images)]; return includeDuplicates ? images : [...new Set(images)];
const inRange = (n, start, end = null) => {
if (end && start > end) [end, start] = [start, end];
return end == null ? n >= 0 && n < start : n >= start && n < end;
};
}; };
const getMeridiemSuffixOfInteger = num => const getMeridiemSuffixOfInteger = num =>
@ -532,6 +496,10 @@
y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop
}); });
const getStyle = (el, ruleName) => getComputedStyle(el)[ruleName];
const getType = v =>
v === undefined ? 'undefined' : v === null ? 'null' : v.constructor.name.toLowerCase();
const getURLParameters = url => const getURLParameters = url =>
(url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce( (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
@ -642,6 +610,19 @@
const initializeArrayWithRangeRight = (end, start = 0, step = 1) => const initializeArrayWithRangeRight = (end, start = 0, step = 1) =>
Array.from({ length: Math.ceil((end + 1 - start) / step) }).map( Array.from({ length: Math.ceil((end + 1 - start) / step) }).map(
(v, i, arr) => (arr.length - i - 1) * step + start (v, i, arr) => (arr.length - i - 1) * step + start
);
const initializeArrayWithValues = (n, val = 0) => Array(n).fill(val);
const initializeNDArray = (val, ...args) =>
args.length === 0
? val
: Array.from({ length: args[0] }).map(() => initializeNDArray(val, ...args.slice(1)));
const inRange = (n, start, end = null) => {
if (end && start > end) [end, start] = [start, end];
return end == null ? n >= 0 && n < start : n >= start && n < end;
};
const insertAfter = (el, htmlString) => el.insertAdjacentHTML('afterend', htmlString); const insertAfter = (el, htmlString) => el.insertAdjacentHTML('afterend', htmlString);
@ -773,6 +754,14 @@
JSON.parse(obj); JSON.parse(obj);
return true; return true;
} catch (e) { } catch (e) {
return false;
}
};
const isWritableStream = val =>
val !== null &&
typeof val === 'object' &&
typeof val.pipe === 'function' &&
typeof val._write === 'function' && typeof val._write === 'function' &&
typeof val._writableState === 'object'; typeof val._writableState === 'object';
@ -787,14 +776,6 @@
'' ''
); );
const once = fn => {
let called = false;
return function(...args) {
if (called) return;
called = true;
return fn.apply(this, args);
};
};
const JSONtoCSV = (arr, columns, delimiter = ',') => const JSONtoCSV = (arr, columns, delimiter = ',') =>
[ [
columns.join(delimiter), columns.join(delimiter),
@ -954,10 +935,6 @@
options options
) )
); );
const reduceSuccessive = (arr, fn, acc) =>
arr.reduce((res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res), [acc]);
const reduceWhich = (arr, comparator = (a, b) => a - b) =>
arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));
return observer; return observer;
}; };
@ -965,6 +942,10 @@
const offset = (arr, offset) => [...arr.slice(offset), ...arr.slice(0, offset)]; const offset = (arr, offset) => [...arr.slice(offset), ...arr.slice(0, offset)];
const omit = (obj, arr) =>
Object.keys(obj)
.filter(k => !arr.includes(k))
.reduce((acc, key) => ((acc[key] = obj[key]), acc), {});
const omitBy = (obj, fn) => const omitBy = (obj, fn) =>
Object.keys(obj) Object.keys(obj)
@ -983,6 +964,7 @@
if (called) return; if (called) return;
called = true; called = true;
return fn.apply(this, args); return fn.apply(this, args);
};
}; };
const onUserInputChange = callback => { const onUserInputChange = callback => {
@ -1157,16 +1139,16 @@
Array.from({ length: n }, () => Math.floor(Math.random() * (max - min + 1)) + min); Array.from({ length: n }, () => Math.floor(Math.random() * (max - min + 1)) + min);
const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
const randomNumberInRange = (min, max) => Math.random() * (max - min) + min;
const readFileLines = filename => const readFileLines = filename =>
fs fs
.readFileSync(filename) .readFileSync(filename)
.toString('UTF8') .toString('UTF8')
.split('\n'); .split('\n');
const times = (n, fn, context = undefined) => {
let i = 0;
while (fn.call(context, i) !== false && ++i < n) {}
};
const rearg = (fn, indexes) => (...args) => fn(...indexes.map(i => args[i])); const rearg = (fn, indexes) => (...args) => fn(...indexes.map(i => args[i]));
const recordAnimationFrames = (callback, autoStart = true) => { const recordAnimationFrames = (callback, autoStart = true) => {
@ -1179,6 +1161,7 @@
const start = () => { const start = () => {
running = true; running = true;
run(); run();
};
const run = () => { const run = () => {
raf = requestAnimationFrame(() => { raf = requestAnimationFrame(() => {
callback(); callback();
@ -1191,6 +1174,14 @@
const redirect = (url, asLink = true) => const redirect = (url, asLink = true) =>
asLink ? (window.location.href = url) : window.location.replace(url); asLink ? (window.location.href = url) : window.location.replace(url);
const reducedFilter = (data, keys, fn) =>
data.filter(fn).map(el =>
keys.reduce((acc, key) => {
acc[key] = el[key];
return acc;
}, {})
);
const reduceSuccessive = (arr, fn, acc) => const reduceSuccessive = (arr, fn, acc) =>
arr.reduce((res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res), [acc]); arr.reduce((res, val, i, arr) => (res.push(fn(res.slice(-1)[0], val, i, arr)), res), [acc]);
@ -1214,15 +1205,6 @@
Object.keys(obj).reduce( Object.keys(obj).reduce(
(acc, key) => ({ (acc, key) => ({
...acc, ...acc,
const toggleClass = (el, className) => el.classList.toggle(className);
const tomorrow = (long = false) => {
let t = new Date();
t.setDate(t.getDate() + 1);
const ret = `${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, '0')}-${String(
t.getDate()
).padStart(2, '0')}`;
return !long ? ret : `${ret}T00:00:00`;
};
...{ [keysMap[key] || key]: obj[key] } ...{ [keysMap[key] || key]: obj[key] }
}), }),
{} {}
@ -1307,6 +1289,24 @@
const size = val => const size = val =>
Array.isArray(val) Array.isArray(val)
? val.length
: val && typeof val === 'object'
? val.size || val.length || Object.keys(val).length
: typeof val === 'string'
? new Blob([val]).size
: 0;
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
const smoothScroll = element =>
document.querySelector(element).scrollIntoView({
behavior: 'smooth'
});
const sortCharactersInString = str => [...str].sort((a, b) => a.localeCompare(b)).join('');
const sortedIndex = (arr, n) => {
const isDescending = arr[0] > arr[arr.length - 1];
const index = arr.findIndex(el => (isDescending ? n >= el : n <= el)); const index = arr.findIndex(el => (isDescending ? n >= el : n <= el));
return index === -1 ? arr.length : index; return index === -1 ? arr.length : index;
}; };
@ -1331,6 +1331,6 @@
.map(fn) .map(fn)
.reverse() .reverse()
.findIndex(el => (isDescending ? val <= el : val >= el)); .findIndex(el => (isDescending ? val <= el : val >= el));
module.exports = {CSVToArray,CSVToJSON,JSONToFile,JSONtoCSV,RGBToHex,URLJoin,UUIDGeneratorBrowser,UUIDGeneratorNode,all,allEqual,any,approximatelyEqual,arrayToCSV,arrayToHtmlList,ary,atob,attempt,average,averageBy,bifurcate,bifurcateBy,bind,bindAll,bindKey,binomialCoefficient,bottomVisible,btoa,byteSize,call,capitalize,capitalizeEveryWord,castArray,chainAsync,chunk,clampNumber,cloneRegExp,coalesce,coalesceFactory,collectInto,colorize,compact,compose,composeRight,converge,copyToClipboard,countBy,countOccurrences,counter,createElement,createEventHub,currentURL,curry,dayOfYear,debounce,decapitalize,deepClone,deepFlatten,deepFreeze,defaults,defer,degreesToRads,delay,detectDeviceType,difference,differenceBy,differenceWith,dig,digitize,distance,drop,dropRight,dropRightWhile,dropWhile,elementContains,elementIsVisibleInViewport,elo,equals,escapeHTML,escapeRegExp,everyNth,extendHex,factorial,fibonacci,filterNonUnique,filterNonUniqueBy,findKey,findLast,findLastIndex,findLastKey,flatten,flattenObject,flip,forEachRight,forOwn,forOwnRight,formatDuration,fromCamelCase,functionName,functions,gcd,geometricProgression,get,getColonTimeFromDate,getDaysDiffBetweenDates,getImages,getMeridiemSuffixOfInteger,getScrollPosition,getStyle,getType,getURLParameters,groupBy,hammingDistance,hasClass,hasFlags,hashBrowser,hashNode,head,hexToRGB,hide,httpGet,httpPost,httpsRedirect,hz,inRange,indentString,indexOfAll,initial,initialize2DArray,initializeArrayWithRange,initializeArrayWithRangeRight,initializeArrayWithValues,initializeNDArray,insertAfter,insertBefore,intersection,intersectionBy,intersectionWith,invertKeyValues,is,isAbsoluteURL,isAfterDate,isAnagram,isArrayLike,isBeforeDate,isBoolean,isBrowser,isBrowserTabFocused,isDivisible,isDuplexStream,isEmpty,isEven,isFunction,isLowerCase,isNil,isNull,isNumber,isObject,isObjectLike,isPlainObject,isPrime,isPrimitive,isPromiseLike,isReadableStream,isSameDate,isSorted,isStream,isString,isSymbol,isTravisCI,isUndefined,isUpperCase,isValidJSON,isWritableStream,join,last,lcm,longestItem,lowercaseKeys,luhnCheck,mapKeys,mapObject,mapString,mapValues,mask,matches,matchesWith,maxBy,maxDate,maxN,median,memoize,merge,minBy,minDate,minN,mostPerformant,negate,nest,nodeListToArray,none,nthArg,nthElement,objectFromPairs,objectToPairs,observeMutations,off,offset,omit,omitBy,on,onUserInputChange,once,orderBy,over,overArgs,pad,palindrome,parseCookie,partial,partialRight,partition,percentile,permutations,pick,pickBy,pipeAsyncFunctions,pipeFunctions,pluralize,powerset,prefix,prettyBytes,primes,promisify,pull,pullAtIndex,pullAtValue,pullBy,radsToDegrees,randomHexColorCode,randomIntArrayInRange,randomIntegerInRange,randomNumberInRange,readFileLines,rearg,recordAnimationFrames,redirect,reduceSuccessive,reduceWhich,reducedFilter,reject,remove,removeNonASCII,renameKeys,reverseString,round,runAsync,runPromisesInSeries,sample,sampleSize,scrollToTop,sdbm,serializeCookie,setStyle,shallowClone,shank,show,shuffle,similarity,size,sleep,smoothScroll,sortCharactersInString,sortedIndex,sortedIndexBy,sortedLastIndex,sortedLastIndexBy,splitLines,spreadOver,stableSort,standardDeviation,stringPermutations,stripHTMLTags,sum,sumBy,sumPower,symmetricDifference,symmetricDifferenceBy,symmetricDifferenceWith,tail,take,takeRight,takeRightWhile,takeWhile,throttle,timeTaken,times,toCamelCase,toCurrency,toDecimalMark,toHash,toKebabCase,toOrdinalSuffix,toSafeInteger,toSnakeCase,toTitleCase,toggleClass,tomorrow,transform,triggerEvent,truncateString,truthCheckCollection,unary,uncurry,unescapeHTML,unflattenObject,unfold,union,unionBy,unionWith,uniqueElements,uniqueElementsBy,uniqueElementsByRight,uniqueSymmetricDifference,untildify,unzip,unzipWith,validateNumber,when,without,words,xProd,yesNo,zip,zipObject,zipWith}; return index === -1 ? 0 : arr.length - index;
}; };

View File

@ -5,7 +5,7 @@ Hides all the elements specified.
Use `NodeList.prototype.forEach()` to apply `display: none` to each element specified. Use `NodeList.prototype.forEach()` to apply `display: none` to each element specified.
```js ```js
const hide = els => els.forEach(e => (e.style.display = 'none')); const hide = (...el) => [...el].forEach(e => (e.style.display = 'none'));
``` ```
```js ```js

File diff suppressed because it is too large Load Diff

View File

@ -4,3 +4,9 @@ const {hide} = require('./_30s.js');
test('hide is a Function', () => { test('hide is a Function', () => {
expect(hide).toBeInstanceOf(Function); expect(hide).toBeInstanceOf(Function);
}); });
test('hide hides an element', () => {
let el = document.createElement('div');
el.setAttribute('style', 'display: block;');
hide(el);
expect(el.style.display).toBe('none');
});

View File

@ -4,3 +4,9 @@ const {show} = require('./_30s.js');
test('show is a Function', () => { test('show is a Function', () => {
expect(show).toBeInstanceOf(Function); expect(show).toBeInstanceOf(Function);
}); });
test('show shows an element', () => {
let el = document.createElement('div');
el.setAttribute('style', 'display: none;');
show(el);
expect(el.style.display).not.toBe('none');
});