carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 1.51 kB
JavaScript
const y=["d M yyyy","dd M yyyy","d MM yyyy","dd MM yyyy","d M yy","dd M yy","d MM yy","dd MM yy","d","d M","dd","d MM","dd M","dd MM"],d=["M","M d","MM","M dd","MM d","MM dd","M d yy","MM d yy","M dd yy","MM dd yy","M d yyyy","MM d yyyy","M dd yyyy","MM dd yyyy"],M=["yyyy M","yyyy M d","yyyy MM d","yyyy M dd","yyyy MM dd","yy M","yy MM","yy M d","yy MM d","yy M dd","yy MM dd","M","M d","MM","M dd","MM d","MM dd"],t=["",".",",","-","/",":"],r=(y,d,M)=>{const r=t.includes(d)?t:[...t,d];return y.reduce(((y,t)=>{const a=[...y,t];return t.includes(" ")&&r.forEach((y=>{d===y&&M&&a.push(`${t.replace(/ /g,y)}${M}`),a.push(t.replace(/ /g,y))})),a}),[])},a=t=>t.startsWith("y")?M:t.startsWith("M")?d:y,o=y=>{const d=y.split("").pop();return["y","M","d"].includes(d)?"":d},e=(y,d)=>{const M=(null==y?void 0:y.code)||"en-GB",{format:t,separator:e}=(y=>{const d={day:"dd",month:"MM",year:"yyyy"},M=new Intl.DateTimeFormat(y);let t="";const r=M.formatToParts(new Date).map((({type:y,value:M})=>["day","month","year"].includes(y)?d[y]:(t||(t=M),M))).join("");return y.startsWith("bg")?{format:r.substring(0,10),separator:t}:{format:r,separator:t}})(M),n={"en-CA":{format:"MM/dd/yyyy",separator:"/"},"en-US":{format:"MM/dd/yyyy",separator:"/"},"fr-CA":{format:"dd/MM/yyyy"},"en-ZA":{format:"dd/MM/yyyy"},"ar-EG":{format:"dd/MM/yyyy"}}[M]||{};var s;const l=null!==(s=null!=d?d:n.format)&&void 0!==s?s:t;var u;const c=null!==(u=n.separator)&&void 0!==u?u:e;return{format:l,formats:r(a(l),c,o(l))}};export{e as default};