UNPKG

@synerty/vortexjs

Version:

Custom observable data serialisation and routing based on Angular 2+

44 lines 6.58 kB
function parseCurrency(value) { return Number(value.replace(/[^0-9\.\-]+/g, "")); } function parseDate(date) { if (date.toString() .match(/^\d{4}-\d{2}-\d{2}$/g)) { date += " 00:00:00"; } return Date.parse(date); } function compareText(a, b) { const x = a.toLowerCase(); const y = b.toLowerCase(); return x > y ? 1 : x < y ? -1 : 0; } function compareNumeric(a, b) { return a - b; } function compareCurrency(a, b) { return parseCurrency(a) - parseCurrency(b); } function compareDate(a, b) { return parseDate(a) - parseDate(b); } function getKey(object, key) { if (key == null) return key; if (typeof key === "function") return key(object); return object[key]; } export function sortText(collection, key = null) { return collection.sort((a, b) => compareText(getKey(a, key), getKey(b, key))); } export function sortNumeric(collection, key = null) { return collection.sort((a, b) => compareNumeric(getKey(a, key), getKey(b, key))); } export function sortCurrency(collection, key = null) { return collection.sort((a, b) => compareCurrency(getKey(a, key), getKey(b, key))); } export function sortDate(collection, key = null) { return collection.sort((a, b) => compareDate(getKey(a, key), getKey(b, key))); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbFNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdm9ydGV4L1V0aWxTb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsYUFBYSxDQUFDLEtBQUs7SUFDeEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNwRCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsSUFBSTtJQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7U0FDZCxLQUFLLENBQUMsc0JBQXNCLENBQUMsRUFBRTtRQUNoQyxJQUFJLElBQUksV0FBVyxDQUFBO0tBQ3RCO0lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQzNCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDaEIsQ0FBQyxFQUNELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBRXpCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDbkIsQ0FBQyxFQUNELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDaEIsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUNwQixDQUFDLEVBQ0QsQ0FBQztJQUVELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM5QyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2hCLENBQUMsRUFDRCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FDWCxNQUFXLEVBQ1gsR0FBRztJQUVILElBQUksR0FBRyxJQUFJLElBQUk7UUFDWCxPQUFPLEdBQUcsQ0FBQTtJQUVkLElBQUksT0FBTyxHQUFHLEtBQUssVUFBVTtRQUN6QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUV0QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUN0QixDQUFDO0FBTUQsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsVUFBaUIsRUFDakIsTUFBd0MsSUFBSTtJQUU1QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FDbkIsQ0FBQyxFQUNELENBQUMsRUFDSCxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3ZCLFVBQWlCLEVBQ2pCLE1BQXdDLElBQUk7SUFFNUMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQ25CLENBQUMsRUFDRCxDQUFDLEVBQ0gsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUN4QixVQUFpQixFQUNqQixNQUF3QyxJQUFJO0lBRTVDLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUNuQixDQUFDLEVBQ0QsQ0FBQyxFQUNILEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN6RCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsVUFBaUIsRUFDakIsTUFBd0MsSUFBSTtJQUU1QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FDbkIsQ0FBQyxFQUNELENBQUMsRUFDSCxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHBhcnNlQ3VycmVuY3kodmFsdWUpIHtcbiAgICByZXR1cm4gTnVtYmVyKHZhbHVlLnJlcGxhY2UoL1teMC05XFwuXFwtXSsvZywgXCJcIikpXG59XG5cbmZ1bmN0aW9uIHBhcnNlRGF0ZShkYXRlKSB7XG4gICAgaWYgKGRhdGUudG9TdHJpbmcoKVxuICAgICAgICAubWF0Y2goL15cXGR7NH0tXFxkezJ9LVxcZHsyfSQvZykpIHtcbiAgICAgICAgZGF0ZSArPSBcIiAwMDowMDowMFwiXG4gICAgfVxuICAgIFxuICAgIHJldHVybiBEYXRlLnBhcnNlKGRhdGUpXG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVUZXh0KFxuICAgIGEsXG4gICAgYlxuKSB7XG4gICAgY29uc3QgeCA9IGEudG9Mb3dlckNhc2UoKVxuICAgIGNvbnN0IHkgPSBiLnRvTG93ZXJDYXNlKClcbiAgICBcbiAgICByZXR1cm4geCA+IHkgPyAxIDogeCA8IHkgPyAtMSA6IDBcbn1cblxuZnVuY3Rpb24gY29tcGFyZU51bWVyaWMoXG4gICAgYSxcbiAgICBiXG4pIHtcbiAgICByZXR1cm4gYSAtIGJcbn1cblxuZnVuY3Rpb24gY29tcGFyZUN1cnJlbmN5KFxuICAgIGEsXG4gICAgYlxuKSB7XG4gICAgcmV0dXJuIHBhcnNlQ3VycmVuY3koYSkgLSBwYXJzZUN1cnJlbmN5KGIpXG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVEYXRlKFxuICAgIGEsXG4gICAgYlxuKSB7XG4gICAgcmV0dXJuIHBhcnNlRGF0ZShhKSAtIHBhcnNlRGF0ZShiKVxufVxuXG5mdW5jdGlvbiBnZXRLZXkoXG4gICAgb2JqZWN0OiBhbnksXG4gICAga2V5XG4pOiBhbnkge1xuICAgIGlmIChrZXkgPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIGtleVxuICAgIFxuICAgIGlmICh0eXBlb2Yga2V5ID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIHJldHVybiBrZXkob2JqZWN0KVxuICAgIFxuICAgIHJldHVybiBvYmplY3Rba2V5XVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRLZXlDYWxsYWJsZUkge1xuICAgIChvYmplY3Q6IGFueSk6IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRUZXh0KFxuICAgIGNvbGxlY3Rpb246IGFueVtdLFxuICAgIGtleTogU29ydEtleUNhbGxhYmxlSSB8IHN0cmluZyB8IG51bGwgPSBudWxsXG4pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uc29ydCgoXG4gICAgICAgIGEsXG4gICAgICAgIGJcbiAgICApID0+IGNvbXBhcmVUZXh0KGdldEtleShhLCBrZXkpLCBnZXRLZXkoYiwga2V5KSkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0TnVtZXJpYyhcbiAgICBjb2xsZWN0aW9uOiBhbnlbXSxcbiAgICBrZXk6IFNvcnRLZXlDYWxsYWJsZUkgfCBzdHJpbmcgfCBudWxsID0gbnVsbFxuKTogYW55W10ge1xuICAgIHJldHVybiBjb2xsZWN0aW9uLnNvcnQoKFxuICAgICAgICBhLFxuICAgICAgICBiXG4gICAgKSA9PiBjb21wYXJlTnVtZXJpYyhnZXRLZXkoYSwga2V5KSwgZ2V0S2V5KGIsIGtleSkpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydEN1cnJlbmN5KFxuICAgIGNvbGxlY3Rpb246IGFueVtdLFxuICAgIGtleTogU29ydEtleUNhbGxhYmxlSSB8IHN0cmluZyB8IG51bGwgPSBudWxsXG4pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb24uc29ydCgoXG4gICAgICAgIGEsXG4gICAgICAgIGJcbiAgICApID0+IGNvbXBhcmVDdXJyZW5jeShnZXRLZXkoYSwga2V5KSwgZ2V0S2V5KGIsIGtleSkpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydERhdGUoXG4gICAgY29sbGVjdGlvbjogYW55W10sXG4gICAga2V5OiBTb3J0S2V5Q2FsbGFibGVJIHwgc3RyaW5nIHwgbnVsbCA9IG51bGxcbik6IGFueVtdIHtcbiAgICByZXR1cm4gY29sbGVjdGlvbi5zb3J0KChcbiAgICAgICAgYSxcbiAgICAgICAgYlxuICAgICkgPT4gY29tcGFyZURhdGUoZ2V0S2V5KGEsIGtleSksIGdldEtleShiLCBrZXkpKSlcbn1cbiJdfQ==