@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
JavaScript
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
};