@hakit/components
Version:
A series of components to work with @hakit/core
3 lines (2 loc) • 2.19 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../emotion-react-jsx-runtime.browser.esm-CgJouFLh.cjs"),p=require("./shared.js"),g=new Map,P=[{weekday:"long",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},{month:"long",hour:"2-digit",hour12:!1}];function D(e){return function(r,n,s){const o=F(r,s);return j(e,n,o,r)}}const M=e=>P.map(t=>new Intl.DateTimeFormat(e.locale,{...t,timeZone:e.timezone})),$=e=>e.type!=="literal"?{type:`l${e.type}`,value:e.value}:e,k=(e,t)=>(e[t.type]=t.value,e),x=(e,t)=>e.formatToParts(t).filter(r=>r.type!=="literal"),w=e=>(e.dayPeriod=e.dayPeriod||e.dayperiod||"",delete e.dayperiod,e.lhour=("0"+Number(e.lhour)%24).slice(-2),e),b=e=>{const[t,r]=M(e);return function(s){const o=x(t,s),l=x(r,s).map($),a=[...o,...l].reduce(k,{});return w(a)}};function F(e,t={}){const r=`${t.locale}${t.timezone}`;let n=g.get(r);return n||(n=b(t),g.set(r,n)),n(e)}function m(e){let t="";switch(e){case 1:case 21:case 31:t="st";break;case 2:case 22:t="nd";break;case 3:case 23:t="rd";break;default:t="th"}return t}const T="[YMDxdAaHhms]+",I={YYYY:e=>e.year,YY:e=>e.year.slice(-2),MMMM:e=>e.lmonth,MMM:e=>e.lmonth.slice(0,3),MM:e=>e.month,DD:e=>e.day,DDx:e=>`${e.day}${m(parseInt(e.day))}`,dd:e=>`${parseInt(e.day,10)}`,ddx:e=>`${parseInt(e.day,10)}${m(parseInt(e.day))}`,dddd:e=>e.weekday,ddd:e=>e.weekday.slice(0,3),A:e=>i.jsx(p.AmOrPm,{className:"time-suffix",children:e.dayPeriod}),a:e=>i.jsx(p.AmOrPm,{className:"time-suffix",children:e.dayPeriod.toLowerCase()}),HH:e=>("0"+Number(e.lhour)%24).slice(-2),hh:e=>e.hour,mm:e=>e.minute,ss:e=>e.second},Y=e=>Object.keys(e).reduce((t,r)=>`|${r}`,"");function j(e,t,r,n){const s="\\[([^\\]]+)\\]|",o=Y(e),l=new RegExp(`${s}${T}${o}`,"g"),h={...I,...e},a=[];let c=0;return t.replace(l,(y,f,d)=>{if(d>c){const u=t.slice(c,d);u.length>0&&u.trim().length===0?a.push(i.jsx("span",{className:"whitespace",children:" "})):a.push(u)}return c=d+y.length,f?a.push(f):a.push(h[y](r,n)),""}),c<t.length&&a.push(t.slice(c)),i.jsx(i.Fragment,{children:a})}exports.createDateFormatter=D;exports.daySuffix=m;
//# sourceMappingURL=formatter.js.map