UNPKG

@base-framework/ui

Version:

This is a UI package that adds components and atoms that use Tailwind CSS and a theme based on Shadcn.

123 lines (122 loc) 3.52 kB
import { DateTime as e } from "@base-framework/base"; const a = (r, n) => (typeof r == "string" && (r = [r]), Array.isArray(r) ? (r.push(n), r) : { ...r, callBack: n }), s = (r, n = "") => r ?? n, B = { /** * Formats a number with commas. * * @param {string|number|object|array} watcher * @param {string|null} defaultValue - Value if original is null or undefined. * @returns {object|array} */ number(r, n = null) { return a(r, (t) => { if (!isNaN(t)) { const c = /\B(?=(\d{3})+(?!\d))/g; return t.toString().replace(c, ","); } return n || ""; }); }, /** * Formats a boolean value as a yes/no string. * * @param {string|number|object|array} watcher * @param {string} yes - Text for true values. * @param {string} no - Text for false values. * @returns {object|array} */ yesno(r, n = "Yes", l = "No") { return a(r, (c) => c ? n : l); }, /** * Formats a value as money with two decimals. * * @param {string|number|object|array} watcher * @param {string} currency - Currency symbol. * @param {*} defaultValue - Value if original is invalid. * @returns {object|array} */ money(r, n = "$", l = null) { return a(r, (c) => { const o = parseFloat(c); if (isNaN(o)) return l || ""; const i = /\B(?=(\d{3})+(?!\d))/g; return n + o.toFixed(2).toString().replace(i, ","); }); }, /** * Formats a value as a US phone number (10 digits). * * @param {string|object|array} watcher * @param {*} defaultValue - Value if original is invalid. * @returns {object|array} */ phone(r, n = null) { return a(r, (t) => { t = t || ""; const c = String(t.toString()).replace(/\D/g, ""); return c.length === 10 ? "(" + c.slice(0, 3) + ") " + c.slice(3, 6) + "-" + c.slice(6) : t || n; }); }, /** * Formats a value as an integer (rounds down). * * @param {string|number|object|array} watcher * @param {*} defaultValue - Value if original is invalid. * @returns {object|array} */ integer(r, n = null) { return a(r, (t) => { t = s(t, n); const c = parseInt(t, 10); return isNaN(c) ? n : c.toString(); }); }, /** * Formats a date value to a standard date format. * * @param {string|number|object|array} watcher * @param {*} defaultValue - Value if original is invalid. * @returns {object|array} */ date(r, n = null) { return a(r, (t) => t ? e.format("standard", t) : n || ""); }, /** * Formats a date and time value to a standard date and time format. * * @param {string|number|object|array} watcher * @param {*} defaultValue - Value if original is invalid. * @returns {object|array} */ dateTime(r, n = null) { return a(r, (t) => t ? e.format("standard", t) + " " + e.formatTime(t, 12) : n || ""); }, /** * Formats a time value to a standard time format. * * @param {string|number|object|array} watcher * @param {*} defaultValue - Value if original is invalid. * @returns {object|array} */ time(r, n = null) { return a(r, (t) => t ? e.formatTime(t, 12) : n || ""); }, /** * Formats a value with a default value if null or undefined. * * @param {string|number|object|array} watcher * @param {string|null} defaultValue - Value if original is null or undefined. * @returns {object|array} */ default(r, n = null) { return a(r, (t) => s(t, n)); } }; export { B as F, a as c };