UNPKG

@nexusui/components

Version:

These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.

2 lines (1 loc) 1.76 kB
const t=/^-?\d+(\s\d+)?\/?\d*\.?\d*|\.\d+|\d+\s?$/,e=(t,e)=>!(!t||!e.has(t.toLowerCase()))&&e.get(t.toLowerCase()),r=e=>t.test(e),n=t=>{const e=t.split(" "),r=e[e.length-1].split("/");return r.length>1&&r[0].length>0&&r[1].length>0},s=t=>{const e=n(t)?i(t):Number(t);return Math.log2(e)%1==0},u=t=>{const e=n(t)?i(t):Number(t),r=e-Math.floor(e);return Math.log2(r)%1==0},a=t=>{const e=(t,r)=>r?e(r,t%r):t,r=10**(t.toString().length-2),n=t*r,s=e(n,r);return`${n/s}/${r/s}`},i=t=>{const e=t.replace("-","").split(" "),r=e[e.length-1].split("/"),n=(e.length>1?Number(e[0]):0)+Number(r[0])/Number(r[1]);return t.startsWith("-")?-n:n},o=t=>{const e=Math.floor(t),r=a(t-e);return e>0?`${e} ${r}`:r},l=e=>{if(!e)return{value:"",unit:""};const r=String(e),n=r.match(t);if(n){const t=n[0],e=r.replace(t,"").trim();return e&&(e.startsWith("/")||e.startsWith(".")||e.startsWith(" "))?{value:t||"0",unit:String(e).replace("/","").replace(".","").trim()}:{value:t,unit:e}}return{value:"",unit:e.length>0?e.trim():""}},c=t=>{if(t&&t.length>0){const e=t.charAt(0);if(Number.isNaN(Number(e))&&"-"!==e&&"."!==e)return!1}const{value:e,unit:r}=l(t);return n(e)?{value:i(e),unit:r}:!Number.isNaN(Number(e))&&{value:Number(e),unit:r}},h=t=>{const e=new Map;return Object.entries(t).forEach((([,t])=>{const{type:r,secondaryDisplayStrings:n}=t;e.set(r,r),n&&n.forEach((t=>{e.set(t.toLowerCase(),r)}))})),e},g=c,m=s,N=u;export{t as NUMBER_REGEX,a as decimalToFraction,o as decimalToMixedNumber,i as fractionToDecimal,e as getValidUnit,c as handleUnitValue,m as isBaseTwoFraction,s as isBinaryFraction,n as isFraction,u as isMixedNumberBasedOnBinaryFraction,N as isMixedNumberWithBaseTwoFraction,r as isNumber,l as splitUnitValue,g as stringToUnitValue,h as unitDisplayStringMapGenerator};