UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 7.29 kB
"use strict";const c=require("./index.cjs231.js"),h=require("./index.cjs275.js"),d=require("./index.cjs4.js"),l=require("./index.cjs225.js"),I=require("./index.cjs239.js");let T={};function W(n,e={}){const t=JSON.stringify([n,e]);let s=T[t];return s||(s=new Intl.ListFormat(n,e),T[t]=s),s}const g=new Map;function p(n,e={}){const t=JSON.stringify([n,e]);let s=g.get(t);return s===void 0&&(s=new Intl.DateTimeFormat(n,e),g.set(t,s)),s}const C=new Map;function v(n,e={}){const t=JSON.stringify([n,e]);let s=C.get(t);return s===void 0&&(s=new Intl.NumberFormat(n,e),C.set(t,s)),s}const k=new Map;function D(n,e={}){const{base:t,...s}=e,i=JSON.stringify([n,s]);let r=k.get(i);return r===void 0&&(r=new Intl.RelativeTimeFormat(n,e),k.set(i,r)),r}let m=null;function x(){return m||(m=new Intl.DateTimeFormat().resolvedOptions().locale,m)}const w=new Map;function N(n){let e=w.get(n);return e===void 0&&(e=new Intl.DateTimeFormat(n).resolvedOptions(),w.set(n,e)),e}const b=new Map;function Z(n){let e=b.get(n);if(!e){const t=new Intl.Locale(n);e="getWeekInfo"in t?t.getWeekInfo():t.weekInfo,"minimalDays"in e||(e={...S,...e}),b.set(n,e)}return e}function L(n){const e=n.indexOf("-x-");e!==-1&&(n=n.substring(0,e));const t=n.indexOf("-u-");if(t===-1)return[n];{let s,i;try{s=p(n).resolvedOptions(),i=n}catch{const u=n.substring(0,t);s=p(u).resolvedOptions(),i=u}const{numberingSystem:r,calendar:a}=s;return[i,r,a]}}function M(n,e,t){return(t||e)&&(n.includes("-u-")||(n+="-u"),t&&(n+=`-ca-${t}`),e&&(n+=`-nu-${e}`)),n}function R(n){const e=[];for(let t=1;t<=12;t++){const s=l.default.utc(2009,t,1);e.push(n(s))}return e}function E(n){const e=[];for(let t=1;t<=7;t++){const s=l.default.utc(2016,11,13+t);e.push(n(s))}return e}function y(n,e,t,s){const i=n.listingMode();return i==="error"?null:i==="en"?t(e):s(e)}function P(n){return n.numberingSystem&&n.numberingSystem!=="latn"?!1:n.numberingSystem==="latn"||!n.locale||n.locale.startsWith("en")||N(n.locale).numberingSystem==="latn"}class z{constructor(e,t,s){this.padTo=s.padTo||0,this.floor=s.floor||!1;const{padTo:i,floor:r,...a}=s;if(!t||Object.keys(a).length>0){const o={useGrouping:!1,...s};s.padTo>0&&(o.minimumIntegerDigits=s.padTo),this.inf=v(e,o)}}format(e){if(this.inf){const t=this.floor?Math.floor(e):e;return this.inf.format(t)}else{const t=this.floor?Math.floor(e):c.roundTo(e,3);return c.padStart(t,this.padTo)}}}class ${constructor(e,t,s){this.opts=s,this.originalZone=void 0;let i;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const a=-1*(e.offset/60),o=a>=0?`Etc/GMT+${a}`:`Etc/GMT${a}`;e.offset!==0&&I.create(o).valid?(i=o,this.dt=e):(i="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,i=e.zone.name):(i="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const r={...this.opts};r.timeZone=r.timeZone||i,this.dtf=p(t,r)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(t=>{if(t.type==="timeZoneName"){const s=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...t,value:s}}else return t}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class q{constructor(e,t,s){this.opts={style:"long",...s},!t&&c.hasRelative()&&(this.rtf=D(e,s))}format(e,t){return this.rtf?this.rtf.format(e,t):h.formatRelativeTime(t,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}}const S={firstDay:1,minimalDays:4,weekend:[6,7]};class f{static fromOpts(e){return f.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,t,s,i,r=!1){const a=e||d.defaultLocale,o=a||(r?"en-US":x()),u=t||d.defaultNumberingSystem,O=s||d.defaultOutputCalendar,F=c.validateWeekSettings(i)||d.defaultWeekSettings;return new f(o,u,O,F,a)}static resetCache(){m=null,g.clear(),C.clear(),k.clear(),w.clear(),b.clear()}static fromObject({locale:e,numberingSystem:t,outputCalendar:s,weekSettings:i}={}){return f.create(e,t,s,i)}constructor(e,t,s,i,r){const[a,o,u]=L(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=s||u||null,this.weekSettings=i,this.intl=M(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=r,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=P(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&t?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:f.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,c.validateWeekSettings(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return y(this,e,h.months,()=>{const s=t?{month:e,day:"numeric"}:{month:e},i=t?"format":"standalone";return this.monthsCache[i][e]||(this.monthsCache[i][e]=R(r=>this.extract(r,s,"month"))),this.monthsCache[i][e]})}weekdays(e,t=!1){return y(this,e,h.weekdays,()=>{const s=t?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},i=t?"format":"standalone";return this.weekdaysCache[i][e]||(this.weekdaysCache[i][e]=E(r=>this.extract(r,s,"weekday"))),this.weekdaysCache[i][e]})}meridiems(){return y(this,void 0,()=>h.meridiems,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[l.default.utc(2016,11,13,9),l.default.utc(2016,11,13,19)].map(t=>this.extract(t,e,"dayperiod"))}return this.meridiemCache})}eras(e){return y(this,e,h.eras,()=>{const t={era:e};return this.eraCache[e]||(this.eraCache[e]=[l.default.utc(-40,1,1),l.default.utc(2017,1,1)].map(s=>this.extract(s,t,"era"))),this.eraCache[e]})}extract(e,t,s){const i=this.dtFormatter(e,t),r=i.formatToParts(),a=r.find(o=>o.type.toLowerCase()===s);return a?a.value:null}numberFormatter(e={}){return new z(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new $(e,this.intl,t)}relFormatter(e={}){return new q(this.intl,this.isEnglish(),e)}listFormatter(e={}){return W(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||N(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:c.hasLocaleWeekInfo()?Z(this.locale):S}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}module.exports=f; //# sourceMappingURL=index.cjs230.js.map