UNPKG

uno-js

Version:

JS/TS common used functions, zero dependencies

37 lines (36 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sortNumericString = exports.sortComparer = exports.defaultStringFilter = exports.sanitizeNumericString = exports.stringTemplate = void 0; const stringTemplate = (template, isPrefix) => { if (typeof template === 'object') { return (value, index = 0) => { if (index > template.length - 1) return value; return isPrefix ? template[index] + value : value + template[index]; }; } return (value) => (isPrefix ? template + value : value + template); }; exports.stringTemplate = stringTemplate; const sanitizeNumericString = (str) => Number(str.replace(/[^0-9.-]+/g, '')); exports.sanitizeNumericString = sanitizeNumericString; const defaultStringFilter = (search) => (element) => Boolean(element && String(element).toLocaleLowerCase().includes(search.toLocaleLowerCase())); exports.defaultStringFilter = defaultStringFilter; const sortComparer = (left, right) => left.trim().localeCompare(right.trim(), undefined, { numeric: true, sensitivity: 'base', }); exports.sortComparer = sortComparer; const sortNumericString = (a, b) => { if ((a.includes('$') && b.includes('$')) || (a.includes('%') && b.includes('%'))) { const numStrA = (0, exports.sanitizeNumericString)(a); const numStrB = (0, exports.sanitizeNumericString)(b); if (typeof numStrA === 'number' && typeof numStrB === 'number') { const result = numStrA - numStrB; if (result !== 0) return result > 0 ? 1 : -1; } } return (0, exports.sortComparer)(a, b); }; exports.sortNumericString = sortNumericString;