UNPKG

@meve/ui

Version:

Argon design system components library

159 lines (144 loc) 3.88 kB
export var isString = function isString(val) { return typeof val === 'string'; }; export var toNumber = function toNumber(val) { if (val == null) return 0; if (isString(val)) { val = parseFloat(val); val = Number.isNaN(val) ? 0 : val; return val; } if (isBoolean(val)) return Number(val); return val; }; export var isBoolean = function isBoolean(val) { return typeof val === 'boolean'; }; export var isFunction = function isFunction(val) { return typeof val === 'function'; }; export var isNumber = function isNumber(val) { return typeof val === 'number'; }; export var isPlainObject = function isPlainObject(val) { return Object.prototype.toString.call(val) === '[object Object]'; }; export var isObject = function isObject(val) { return typeof val === 'object' && val !== null; }; export var isArray = function isArray(val) { return Array.isArray(val); }; export var isEmpty = function isEmpty(val) { return val === undefined || val === null || val === '' || Array.isArray(val) && !val.length; }; export var removeItem = function removeItem(arr, item) { if (arr.length) { var index = arr.indexOf(item); if (index > -1) { return arr.splice(index, 1); } } }; export var toggleItem = function toggleItem(arr, item) { arr.includes(item) ? removeItem(arr, item) : arr.push(item); }; export var throttle = function throttle(method, mustRunDelay) { if (mustRunDelay === void 0) { mustRunDelay = 200; } var timer; var start = 0; return function loop() { var _this = this; for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } var now = Date.now(); var elapsed = now - start; if (!start) { start = now; } if (timer) { window.clearTimeout(timer); } if (elapsed >= mustRunDelay) { method.apply(this, args); start = now; } else { timer = window.setTimeout(function () { loop.apply(_this, args); }, mustRunDelay - elapsed); } }; }; export var debounce = function debounce(method, delay) { if (delay === void 0) { delay = 200; } var timer; return function () { var _this2 = this; for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } timer && window.clearTimeout(timer); timer = window.setTimeout(function () { method.apply(_this2, args); }, delay); }; }; export function kebabCase(str) { var reg = /([^-])([A-Z])/g; return str.replace(reg, '$1-$2').replace(reg, '$1-$2').toLowerCase(); } export var camelize = function camelize(s) { return s.replace(/-(\w)/g, function (_, p) { return p.toUpperCase(); }); }; export var bigCamelize = function bigCamelize(s) { return camelize(s).replace(s.charAt(0), s.charAt(0).toUpperCase()); }; export var range = function range(num, left, right) { if (num < left) { return left; } if (num > right) { return right; } return num; }; export var delay = function delay(time) { return new Promise(function (resolve) { return setTimeout(resolve, time); }); }; export var inBrowser = function inBrowser() { return typeof window !== 'undefined'; }; export var createCache = function createCache(max) { var cache = []; return { cache: cache, has: function has(key) { return this.cache.includes(key); }, add: function add(key) { if (this.has(key)) { return; } this.cache.length === max && cache.shift(); this.cache.push(key); }, remove: function remove(key) { this.has(key) && removeItem(this.cache, key); }, clear: function clear() { this.cache.length = 0; } }; }; export var uniq = function uniq(arr) { return [].concat(new Set(arr)); };