@anoki/fse-ui
Version:
FSE UI components library
3 lines (2 loc) • 6.19 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index.cjs231.js"),p=require("./index.cjs228.js"),L=require("./index.cjs229.js"),O=require("./index.cjs239.js"),U=require("./index.cjs225.js"),c=require("./index.cjs243.js"),C=require("./index.cjs237.js"),H="missing Intl.DateTimeFormat.formatToParts support";function i(e,r=t=>t){return{regex:e,deser:([t])=>r(c.parseDigits(t))}}const N=" ",R=`[ ${N}]`,w=new RegExp(R,"g");function b(e){return e.replace(/\./g,"\\.?").replace(w,R)}function T(e){return e.replace(/\./g,"").replace(w," ").toLowerCase()}function d(e,r){return e===null?null:{regex:RegExp(e.map(b).join("|")),deser:([t])=>e.findIndex(n=>T(t)===T(n))+r}}function M(e,r){return{regex:e,deser:([,t,n])=>l.signedOffset(t,n),groups:r}}function y(e){return{regex:e,deser:([r])=>r}}function z(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function I(e,r){const t=c.digitRegex(r),n=c.digitRegex(r,"{2}"),a=c.digitRegex(r,"{3}"),u=c.digitRegex(r,"{4}"),o=c.digitRegex(r,"{6}"),s=c.digitRegex(r,"{1,2}"),f=c.digitRegex(r,"{1,3}"),q=c.digitRegex(r,"{1,6}"),F=c.digitRegex(r,"{1,9}"),m=c.digitRegex(r,"{2,4}"),P=c.digitRegex(r,"{4,6}"),x=g=>({regex:RegExp(z(g.val)),deser:([$])=>$,literal:!0}),k=(g=>{if(e.literal)return x(g);switch(g.val){case"G":return d(r.eras("short"),0);case"GG":return d(r.eras("long"),0);case"y":return i(q);case"yy":return i(m,l.untruncateYear);case"yyyy":return i(u);case"yyyyy":return i(P);case"yyyyyy":return i(o);case"M":return i(s);case"MM":return i(n);case"MMM":return d(r.months("short",!0),1);case"MMMM":return d(r.months("long",!0),1);case"L":return i(s);case"LL":return i(n);case"LLL":return d(r.months("short",!1),1);case"LLLL":return d(r.months("long",!1),1);case"d":return i(s);case"dd":return i(n);case"o":return i(f);case"ooo":return i(a);case"HH":return i(n);case"H":return i(s);case"hh":return i(n);case"h":return i(s);case"mm":return i(n);case"m":return i(s);case"q":return i(s);case"qq":return i(n);case"s":return i(s);case"ss":return i(n);case"S":return i(f);case"SSS":return i(a);case"u":return y(F);case"uu":return y(s);case"uuu":return i(t);case"a":return d(r.meridiems(),0);case"kkkk":return i(u);case"kk":return i(m,l.untruncateYear);case"W":return i(s);case"WW":return i(n);case"E":case"c":return i(t);case"EEE":return d(r.weekdays("short",!1),1);case"EEEE":return d(r.weekdays("long",!1),1);case"ccc":return d(r.weekdays("short",!0),1);case"cccc":return d(r.weekdays("long",!0),1);case"Z":case"ZZ":return M(new RegExp(`([+-]${s.source})(?::(${n.source}))?`),2);case"ZZZ":return M(new RegExp(`([+-]${s.source})(${n.source})?`),2);case"z":return y(/[a-z_+-/]{1,256}?/i);case" ":return y(/[^\S\n\r]/);default:return x(g)}})(e)||{invalidReason:H};return k.token=e,k}const D={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function G(e,r,t){const{type:n,value:a}=e;if(n==="literal"){const f=/^\s+$/.test(a);return{literal:!f,val:f?" ":a}}const u=r[n];let o=n;n==="hour"&&(r.hour12!=null?o=r.hour12?"hour12":"hour24":r.hourCycle!=null?r.hourCycle==="h11"||r.hourCycle==="h12"?o="hour12":o="hour24":o=t.hour12?"hour12":"hour24");let s=D[o];if(typeof s=="object"&&(s=s[u]),s)return{literal:!1,val:s}}function j(e){return[`^${e.map(t=>t.regex).reduce((t,n)=>`${t}(${n.source})`,"")}$`,e]}function W(e,r,t){const n=e.match(r);if(n){const a={};let u=1;for(const o in t)if(l.hasOwnProperty(t,o)){const s=t[o],f=s.groups?s.groups+1:1;!s.literal&&s.token&&(a[s.token.val[0]]=s.deser(n.slice(u,u+f))),u+=f}return[n,a]}else return[n,{}]}function A(e){const r=u=>{switch(u){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let t=null,n;return l.isUndefined(e.z)||(t=O.create(e.z)),l.isUndefined(e.Z)||(t||(t=new L(e.Z)),n=e.Z),l.isUndefined(e.q)||(e.M=(e.q-1)*3+1),l.isUndefined(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),l.isUndefined(e.u)||(e.S=l.parseMillis(e.u)),[Object.keys(e).reduce((u,o)=>{const s=r(o);return s&&(u[s]=e[o]),u},{}),t,n]}let h=null;function B(){return h||(h=U.default.fromMillis(1555555555555)),h}function V(e,r){if(e.literal)return e;const t=p.macroTokenToFormatOpts(e.val),n=Z(t,r);return n==null||n.includes(void 0)?e:n}function E(e,r){return Array.prototype.concat(...e.map(t=>V(t,r)))}class S{constructor(r,t){if(this.locale=r,this.format=t,this.tokens=E(p.parseFormat(t),r),this.units=this.tokens.map(n=>I(n,r)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){const[n,a]=j(this.units);this.regex=RegExp(n,"i"),this.handlers=a}}explainFromTokens(r){if(this.isValid){const[t,n]=W(r,this.regex,this.handlers),[a,u,o]=n?A(n):[null,null,void 0];if(l.hasOwnProperty(n,"a")&&l.hasOwnProperty(n,"H"))throw new C.ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format");return{input:r,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:a,zone:u,specificOffset:o}}else return{input:r,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function v(e,r,t){return new S(e,t).explainFromTokens(r)}function Y(e,r,t){const{result:n,zone:a,specificOffset:u,invalidReason:o}=v(e,r,t);return[n,a,u,o]}function Z(e,r){if(!e)return null;const n=p.create(r,e).dtFormatter(B()),a=n.formatToParts(),u=n.resolvedOptions();return a.map(o=>G(o,e,u))}exports.TokenParser=S;exports.expandMacroTokens=E;exports.explainFromTokens=v;exports.formatOptsToTokens=Z;exports.parseFromTokens=Y;
//# sourceMappingURL=index.cjs234.js.map